[MERGE] Sync with trunk.

bzr revid: tde@openerp.com-20121112105022-lnr1cx6mmxlertoe
This commit is contained in:
Thibault Delavallée 2012-11-12 11:50:22 +01:00
commit e45a70df87
66 changed files with 268 additions and 227 deletions

View File

@ -983,13 +983,13 @@ class account_invoice(osv.osv):
for i in line:
i[2]['period_id'] = period_id
ctx.update(invoice=inv)
move_id = move_obj.create(cr, uid, move, context=ctx)
new_move_name = move_obj.browse(cr, uid, move_id, context=ctx).name
# 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)
# 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:
ctx.update({'invoice':inv})
move_obj.post(cr, uid, [move_id], context=ctx)
self._log_event(cr, uid, ids)
return True

View File

@ -208,7 +208,7 @@ class account_move_line(osv.osv):
if type(period_id) == str:
ids = period_obj.search(cr, uid, [('name', 'ilike', period_id)])
context.update({
'period_id': ids[0]
'period_id': ids and ids[0] or False
})
return context
@ -917,7 +917,7 @@ class account_move_line(osv.osv):
if lines and lines[0]:
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)
return r_id

View File

@ -41,13 +41,5 @@
groups="group_account_user,group_account_manager"
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>
</openerp>

View File

@ -306,7 +306,7 @@
<field name="name">Unrealized Gain or Loss</field>
<field name="model">account.account</field>
<field name="arch" type="xml">
<tree string="Unrealized Gains and losses">
<tree string="Unrealized Gains and losses" create="false">
<field name="code"/>
<field name="name"/>
<field name="parent_id" invisible="1"/>
@ -2159,7 +2159,8 @@
<field name="visible" />
<field name="complete_tax_set" />
</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"/>
<group col="4">
<field name="property_account_receivable" domain="[('id', 'child_of', [account_root_id])]"/>

View File

@ -6,7 +6,7 @@
<field name="name">account.fiscal.position.form</field>
<field name="model">account.fiscal.position</field>
<field name="arch" type="xml">
<form string="Fiscal Position">
<form string="Fiscal Position" version="7.0">
<group col="4">
<field name="name"/>
<field name="active"/>
@ -114,7 +114,7 @@
context="{'search_default_partner_id':[active_id], 'default_partner_id': active_id}"
src_model="res.partner"
view_type="form"
view_mode="tree,form,calendar"/>
view_mode="tree,form"/>
</data>
</openerp>

View File

@ -170,12 +170,12 @@
<tr>
<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">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>
<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_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') ]]
<tr>
<td><para style="terp_tblheader_General_Centre">Start Date</para></td>

View File

@ -299,10 +299,10 @@ class general_ledger(report_sxw.rml_parse, common_report_header):
def _get_sortby(self, data):
if self.sortby == 'sort_date':
return 'Date'
return self._translate('Date')
elif self.sortby == 'sort_journal_partner':
return 'Journal & Partner'
return 'Date'
return self._translate('Journal & Partner')
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_landscape', 'account.account', 'addons/account/report/account_general_ledger_landscape.rml', parser=general_ledger, header='internal landscape')

View File

@ -94,10 +94,10 @@ class common_report_header(object):
def _get_filter(self, data):
if data.get('form', False) and data['form'].get('filter', False):
if data['form']['filter'] == 'filter_date':
return 'Date'
return self._translate('Date')
elif data['form']['filter'] == 'filter_period':
return 'Periods'
return 'No Filter'
return self._translate('Periods')
return self._translate('No Filters')
def _sum_debit_period(self, period_id, journal_id=None):
journals = journal_id or self.journal_ids

View File

@ -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}):
balance_in_currency = 0.0
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 ' \
'AND ' + query_line + ' ' \
'AND currency_id = %s', (account.id, account.currency_id.id))

View File

@ -119,7 +119,11 @@ class account_common_report(osv.osv_memory):
def _get_fiscalyear(self, cr, uid, context=None):
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 = None
ids = context.get('active_ids', [])
for wiz in self.browse(cr, uid, ids, context=context):
company_id = wiz.company_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
def _get_all_journal(self, cr, uid, context=None):

View File

@ -21,17 +21,17 @@
<field name="inherit_id" ref="account.view_move_form"/>
<field name="arch" type="xml">
<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 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>
</field>
</record>
<record id="journal_col11" model="account.journal.column">
<field eval="&quot;&quot;&quot;Analytic Distribution&quot;&quot;&quot;" name="name"/>
<field eval="11" name="sequence"/>
<field eval="15" name="sequence"/>
<field name="view_id" ref="account.account_journal_view"/>
<field eval="0" name="required"/>
<field eval="&quot;&quot;&quot;analytics_id&quot;&quot;&quot;" name="field"/>

View File

@ -40,7 +40,7 @@ class account_invoice_line(osv.osv):
if inv.type in ('out_invoice','out_refund'):
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':
# debit account dacc will be the output account
# 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'):
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':
# 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

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-02-09 19:28+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2012-11-09 12:09+0000\n"
"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\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-10-30 05:36+0000\n"
"X-Generator: Launchpad (build 16206)\n"
"X-Launchpad-Export-Date: 2012-11-10 04:59+0000\n"
"X-Generator: Launchpad (build 16251)\n"
#. module: account_check_writing
#: selection:res.company,check_layout:0
@ -154,7 +154,7 @@ msgstr "Compañías"
#. module: account_check_writing
#: view:res.company:0
msgid "Default Check Layout"
msgstr ""
msgstr "Comprobar formato por defecto"
#. module: account_check_writing
#: constraint:account.journal:0

View File

@ -43,6 +43,18 @@
<field eval="True" name="required"/>
<field eval="2" name="sequence"/>
</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>
</openerp>

View File

@ -953,6 +953,9 @@ class account_voucher(osv.osv):
if voucher_brw.number:
name = voucher_brw.number
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)
else:
raise osv.except_osv(_('Error!'),

View File

@ -54,6 +54,8 @@
<form string="Bill Payment" version="7.0">
<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="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="journal_id"
domain="[('type','in',['bank', 'cash'])]"

View File

@ -50,7 +50,7 @@
<field name="res_model">account.voucher</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="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="target">current</field>
</record>

View File

@ -98,6 +98,10 @@ class account_analytic_account(osv.osv):
def name_get(self, cr, uid, ids, context=None):
res = []
if not ids:
return res
if isinstance(ids, (int, long)):
ids = [ids]
for id in ids:
elmt = self.browse(cr, uid, id, context=context)
res.append((id, self._get_one_full_name(elmt)))

View File

@ -388,6 +388,8 @@ class audittrail_objects_proxy(object_proxy):
}
# loop on all the fields
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 field_list and field_name not in field_list:
continue

View File

@ -99,7 +99,7 @@
<field name="res_id" readonly="1"/>
<field name="object_id" readonly="1"/>
</group>
<field name="line_ids" mode="tree,form"
<field name="line_ids" mode="tree"
widget="one2many_list" readonly="1">
<form string="Log Lines" version="7.0">
<group col="4">

View File

@ -8,15 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-05-10 17:24+0000\n"
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
"<jesteve@zikzakmedia.com>\n"
"PO-Revision-Date: 2012-11-09 12:09+0000\n"
"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\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-10-30 05:32+0000\n"
"X-Generator: Launchpad (build 16206)\n"
"X-Launchpad-Export-Date: 2012-11-10 04:59+0000\n"
"X-Generator: Launchpad (build 16251)\n"
#. module: base_action_rule
#: 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
#, python-format
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
#: field:base.action.rule,act_remind_user:0

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
"PO-Revision-Date: 2012-02-10 17:48+0000\n"
"Last-Translator: Carlos Ch. <Unknown>\n"
"PO-Revision-Date: 2012-11-09 12:10+0000\n"
"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-30 04:57+0000\n"
"X-Generator: Launchpad (build 16206)\n"
"X-Launchpad-Export-Date: 2012-11-10 04:59+0000\n"
"X-Generator: Launchpad (build 16251)\n"
#. module: crm
#: view:crm.lead.report:0
@ -172,7 +172,7 @@ msgstr "Mes esperado de cierre"
#. module: crm
#: view:crm.lead2opportunity.partner.mass:0
msgid "Assigned Opportunities to"
msgstr ""
msgstr "Oportunidades asignadas a"
#. module: crm
#: 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
#: view:crm.opportunity2phonecall:0 view:crm.phonecall2phonecall:0
msgid "Schedule/Log a Call"
msgstr ""
msgstr "Planificar/Registrar una llamada"
#. module: crm
#: constraint:base.action.rule:0
@ -792,7 +792,7 @@ msgstr "Siguiente"
#. module: crm
#: field:crm.segmentation,som_interval:0
msgid "Days per Period"
msgstr ""
msgstr "Días por periodo"
#. module: crm
#: field:crm.meeting,byday:0
@ -959,7 +959,7 @@ msgstr "Días para abrir"
#. module: crm
#: view:crm.meeting:0
msgid "Show Time as"
msgstr ""
msgstr "Mostrar hora como"
#. module: crm
#: view:crm.phonecall2partner:0
@ -1342,7 +1342,7 @@ msgstr "Fecha escritura"
#. module: crm
#: view:crm.meeting:0
msgid "End of Recurrency"
msgstr ""
msgstr "Fin de recurrencia"
#. module: crm
#: view:crm.meeting:0
@ -1392,6 +1392,12 @@ msgid ""
" \n"
"If the call needs to be done then the state is set to 'Not Held'."
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
#: selection:crm.meeting,week_list:0
@ -1449,7 +1455,7 @@ msgstr "Oportunidades por categorías"
#. module: crm
#: model:crm.case.section,name:crm.section_sales_marketing_department
msgid "Sales Marketing Department"
msgstr ""
msgstr "Departamento de ventas y marketing"
#. module: crm
#: view:crm.phonecall.report:0
@ -1900,7 +1906,7 @@ msgstr "Responder a"
#. module: crm
#: view:crm.case.section:0
msgid "Select Stages for this Sales Team"
msgstr ""
msgstr "Seleccione etapas para este equipo de ventas"
#. module: crm
#: view:board.board:0
@ -2015,7 +2021,7 @@ msgstr "Ubicación"
#. module: crm
#: model:ir.model,name:crm.model_crm_lead2opportunity_partner_mass
msgid "Mass Lead To Opportunity Partner"
msgstr ""
msgstr "Transformación masiva de iniciativa a oportunidad"
#. module: crm
#: view:crm.lead:0
@ -2777,7 +2783,7 @@ msgstr "e-mail del contacto"
#. module: crm
#: field:crm.lead,referred:0
msgid "Referred by"
msgstr ""
msgstr "Referido por"
#. module: crm
#: 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
#, python-format
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
#: field:crm.lead.report,email:0
@ -3561,7 +3567,7 @@ msgstr "Oportunidades por usuario y equipo"
#. module: crm
#: view:crm.phonecall:0
msgid "Reset to Todo"
msgstr ""
msgstr "Cambiar a 'Para hacer'"
#. module: crm
#: 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 "
"call, a meeting or an opportunity."
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
#: 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 "
"system. Some examples of channels can be: Website, Phone Call, Reseller, etc."
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
#: selection:crm.lead2opportunity.partner,name:0
@ -3740,7 +3754,7 @@ msgstr "Año"
#. module: crm
#: constraint:res.partner:0
msgid "Error ! You cannot create recursive associated members."
msgstr ""
msgstr "¡Error! No puede crear miembros asociados recursivamente."
#. module: crm
#: model:crm.case.resource.type,name:crm.type_lead8

View File

@ -91,7 +91,7 @@
<field name="res_model">crm.phonecall.report</field>
<field name="view_type">form</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="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>

View File

@ -105,7 +105,7 @@ class crm_claim(base_stage, osv.osv):
'email_from': fields.char('Email', size=128, help="Destination email for email gateway."),
'partner_phone': fields.char('Phone', size=32),
'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'),
'state': fields.related('stage_id', 'state', type="selection", store=True,
selection=crm.AVAILABLE_STATES, string="Status", readonly=True,

View File

@ -43,38 +43,32 @@
-->
<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="sequence">26</field>
<field name="case_default" eval="True"/>
</record>
<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="sequence">27</field>
<field name="case_default" eval="True"/>
</record>
<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="sequence">28</field>
<field name="case_default" eval="True"/>
</record>
<record model="crm.claim.stage" id="stage_claim3">
<field name="name">Refused</field>
<field name="state">done</field>
<field name="name">Rejected</field>
<field name="state">cancel</field>
<field name="sequence">29</field>
<field name="case_default" eval="True"/>
<field name="case_refused" eval="True"/>
<field name="fold" eval="True"/>
</record>
<record model="crm.claim.stage" id="stage_claim3">
<field name="name">Cancelled</field>
<field name="state">cancel</field>
<field name="sequence">30</field>
<field name="case_default" eval="True"/>
<field name="fold" eval="True"/>
</record>
</data>
</openerp>

View File

@ -102,16 +102,11 @@
<field name="arch" type="xml">
<form string="Claim" version="7.0">
<header>
<button name="case_open" string="Open" type="object" class="oe_highlight"
states="draft,pending" groups="base.group_user"/>
<button name="case_close" string="Done" type="object" class="oe_highlight"
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"
<button name="case_close" string="Settle" type="object" class="oe_highlight"
states="draft,open,pending" groups="base.group_user"/>
<button name="case_cancel" string="Reject" type="object" groups="base.group_user"
states="draft,open,pending"/>
<field name="stage_id" widget="statusbar"
on_change="onchange_stage_id(stage_id)"/>
<field name="stage_id" widget="statusbar" clickable="True"/>
</header>
<sheet string="Claims">
<group>

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2011-01-16 17:13+0000\n"
"Last-Translator: mgaja (GrupoIsep.com) <Unknown>\n"
"PO-Revision-Date: 2012-11-09 12:10+0000\n"
"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\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-10-30 05:33+0000\n"
"X-Generator: Launchpad (build 16206)\n"
"X-Launchpad-Export-Date: 2012-11-10 04:59+0000\n"
"X-Generator: Launchpad (build 16251)\n"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,send_to:0
@ -25,12 +25,12 @@ msgstr "Enviar a"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,subtype:0
msgid "Message type"
msgstr ""
msgstr "Tipo de mensaje"
#. module: crm_partner_assign
#: help:crm.lead.forward.to.partner,auto_delete:0
msgid "Permanently delete emails after sending"
msgstr ""
msgstr "Eliminar permanentemente los emails depués de su envío"
#. module: crm_partner_assign
#: field:crm.lead.report.assign,delay_close:0
@ -40,7 +40,7 @@ msgstr "Retraso para cerrar"
#. module: crm_partner_assign
#: help:crm.lead.forward.to.partner,email_to:0
msgid "Message recipients"
msgstr ""
msgstr "Destinatarios del mensaje"
#. module: crm_partner_assign
#: field:crm.lead.report.assign,planned_revenue:0
@ -61,7 +61,7 @@ msgstr "Agrupar por..."
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,template_id:0
msgid "Template"
msgstr ""
msgstr "Plantilla"
#. module: crm_partner_assign
#: view:crm.lead:0
@ -76,12 +76,12 @@ msgstr "Geo localizar"
#. module: crm_partner_assign
#: help:crm.lead.forward.to.partner,body:0
msgid "Plain-text version of the message"
msgstr ""
msgstr "Versión en texto plano del mensaje"
#. module: crm_partner_assign
#: view:crm.lead.forward.to.partner:0
msgid "Body"
msgstr ""
msgstr "Cuerpo"
#. module: crm_partner_assign
#: selection:crm.lead.report.assign,month:0
@ -101,7 +101,7 @@ msgstr "Demora cierre"
#. module: crm_partner_assign
#: view:crm.partner.report.assign:0
msgid "#Partner"
msgstr ""
msgstr "Nº empresa"
#. module: crm_partner_assign
#: selection:crm.lead.forward.to.partner,history:0
@ -137,7 +137,7 @@ msgstr "Más alta"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,body:0
msgid "Text contents"
msgstr ""
msgstr "Contenido del texto"
#. module: crm_partner_assign
#: view:crm.lead.report.assign:0
@ -148,7 +148,7 @@ msgstr "Día"
#. module: crm_partner_assign
#: help:crm.lead.forward.to.partner,message_id:0
msgid "Message unique identifier"
msgstr ""
msgstr "Identificador único del mensaje"
#. module: crm_partner_assign
#: 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 "
"Email."
msgstr ""
"Añada aquí todos los datos adjuntos del documento que quiere incluir en el "
"correo."
#. module: crm_partner_assign
#: selection:crm.lead.report.assign,state:0
@ -195,17 +197,17 @@ msgstr ""
#. module: crm_partner_assign
#: help:crm.lead.forward.to.partner,body_html:0
msgid "Rich-text/HTML version of the message"
msgstr ""
msgstr "Versión en texto enriquecido / HTML del mensaje"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,auto_delete:0
msgid "Auto Delete"
msgstr ""
msgstr "Auto eliminar"
#. module: crm_partner_assign
#: help:crm.lead.forward.to.partner,email_bcc:0
msgid "Blind carbon copy message recipients"
msgstr ""
msgstr "Destinatarios de la copia oculta"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,partner_id:0
@ -254,7 +256,7 @@ msgstr "Sección"
#. module: crm_partner_assign
#: view:crm.lead.forward.to.partner:0
msgid "Send"
msgstr ""
msgstr "Enviar"
#. module: crm_partner_assign
#: view:res.partner:0
@ -286,7 +288,7 @@ msgstr "Tipo"
#. module: crm_partner_assign
#: view:crm.partner.report.assign:0
msgid "Name"
msgstr ""
msgstr "Nombre"
#. module: crm_partner_assign
#: 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 "
"text contents accordingly"
msgstr ""
"Tipo de mensaje, normalmente 'html' o 'plano', utilizado para seleccionar "
"contenidos en texto plano o en texto enriquecido"
#. module: crm_partner_assign
#: view:crm.lead.report.assign:0
msgid "Assign Date"
msgstr ""
msgstr "Fecha de asignación"
#. module: crm_partner_assign
#: view:crm.lead.report.assign:0
@ -318,7 +322,7 @@ msgstr "Fecha creación"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,res_id:0
msgid "Related Document ID"
msgstr ""
msgstr "ID del docuemtno relacionado"
#. module: crm_partner_assign
#: view:crm.lead.report.assign:0
@ -349,7 +353,7 @@ msgstr "Etapa"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,model:0
msgid "Related Document model"
msgstr ""
msgstr "Modelo del documento relacionado"
#. module: crm_partner_assign
#: code:addons/crm_partner_assign/wizard/crm_forward_to_partner.py:192
@ -392,7 +396,7 @@ msgstr "Cerrar"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,use_template:0
msgid "Use Template"
msgstr ""
msgstr "Usar plantilla"
#. module: crm_partner_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
#: view:crm.lead:0
msgid "Team"
msgstr ""
msgstr "Equipo"
#. module: crm_partner_assign
#: view:crm.lead:0
msgid "Referred Partner"
msgstr ""
msgstr "Empresa referida"
#. module: crm_partner_assign
#: selection:crm.lead.report.assign,state:0
@ -490,7 +494,7 @@ msgstr "Cerrado"
#. module: crm_partner_assign
#: model:ir.actions.act_window,name:crm_partner_assign.action_crm_send_mass_forward
msgid "Mass forward to partner"
msgstr ""
msgstr "Envío masivo a empresa"
#. module: crm_partner_assign
#: view:res.partner:0
@ -570,7 +574,7 @@ msgstr "Longitud Geo"
#. module: crm_partner_assign
#: field:crm.partner.report.assign,opp:0
msgid "# of Opportunity"
msgstr ""
msgstr "Nº oportunidad"
#. module: crm_partner_assign
#: 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
#: field:crm.lead.forward.to.partner,date:0
msgid "Date"
msgstr ""
msgstr "Fecha"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,body_html:0
msgid "Rich-text contents"
msgstr ""
msgstr "Contenido en texto enriquecido"
#. module: crm_partner_assign
#: view:crm.lead.report.assign:0
@ -620,18 +624,18 @@ msgstr "res.empresa.nivel"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,message_id:0
msgid "Message-Id"
msgstr ""
msgstr "Id del mensaje"
#. module: crm_partner_assign
#: view:crm.lead.forward.to.partner:0
#: field:crm.lead.forward.to.partner,attachment_ids:0
msgid "Attachments"
msgstr ""
msgstr "Adjuntos"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,email_cc:0
msgid "Cc"
msgstr ""
msgstr "Cc"
#. module: crm_partner_assign
#: selection:crm.lead.report.assign,month:0
@ -641,7 +645,7 @@ msgstr "Septiembre"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,references:0
msgid "References"
msgstr ""
msgstr "Referencias"
#. module: crm_partner_assign
#: view:crm.lead.report.assign:0
@ -668,7 +672,7 @@ msgstr "Abierto"
#. module: crm_partner_assign
#: help:crm.lead.forward.to.partner,email_cc:0
msgid "Carbon copy message recipients"
msgstr ""
msgstr "Destinatarios de la copia"
#. module: crm_partner_assign
#: help:crm.lead.forward.to.partner,headers:0
@ -676,6 +680,8 @@ msgid ""
"Full message headers, e.g. SMTP session headers (usually available on "
"inbound messages only)"
msgstr ""
"Cabeceras completas del mensaje, por ejemplo las cabeceras de sesión SMTP "
"(normalmente disponibles sólo en mensajes entrantes)"
#. module: crm_partner_assign
#: field:res.partner,date_localization:0
@ -698,11 +704,13 @@ msgid ""
"Message sender, taken from user preferences. If empty, this is not a mail "
"but a message."
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
#: field:crm.partner.report.assign,nbr:0
msgid "# of Partner"
msgstr ""
msgstr "Nº empresa"
#. module: crm_partner_assign
#: view:crm.lead.forward.to.partner:0
@ -713,7 +721,7 @@ msgstr "Reenviar a empresa"
#. module: crm_partner_assign
#: field:crm.partner.report.assign,name:0
msgid "Partner name"
msgstr ""
msgstr "Nombre de la empresa"
#. module: crm_partner_assign
#: selection:crm.lead.report.assign,month:0
@ -728,7 +736,7 @@ msgstr "Ingreso estimado"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,reply_to:0
msgid "Reply-To"
msgstr ""
msgstr "Responder a"
#. module: crm_partner_assign
#: field:crm.lead,partner_assigned_id:0
@ -748,7 +756,7 @@ msgstr "Oportunidad"
#. module: crm_partner_assign
#: view:crm.lead.forward.to.partner:0
msgid "Send Mail"
msgstr ""
msgstr "Enviar correo"
#. module: crm_partner_assign
#: field:crm.lead.report.assign,partner_id:0
@ -776,7 +784,7 @@ msgstr "País"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,headers:0
msgid "Message headers"
msgstr ""
msgstr "Cabeceras del mensaje"
#. module: crm_partner_assign
#: view:res.partner:0
@ -786,7 +794,7 @@ msgstr "Convertir en oportunidad"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,email_bcc:0
msgid "Bcc"
msgstr ""
msgstr "Cco"
#. module: crm_partner_assign
#: 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.ui.menu,name:crm_partner_assign.menu_report_crm_partner_assign_tree
msgid "Partnership Analysis"
msgstr ""
msgstr "Análisis de la relación"
#. module: crm_partner_assign
#: model:ir.model,name:crm_partner_assign.model_crm_lead
@ -817,7 +825,7 @@ msgstr "Pendiente"
#. module: crm_partner_assign
#: view:crm.partner.report.assign:0
msgid "Partner assigned Analysis"
msgstr ""
msgstr "Análisis de la empresa asignada"
#. module: crm_partner_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
msgid "Message references, such as identifiers of previous messages"
msgstr ""
"Referencias del mensaje, tales como identificadores de mensajes anteriores"
#. module: crm_partner_assign
#: constraint:res.partner:0
msgid "Error ! You cannot create recursive associated members."
msgstr ""
msgstr "¡Error! No puede crear miembros asociados recursivamente."
#. module: crm_partner_assign
#: selection:crm.lead.forward.to.partner,history:0
@ -847,12 +856,12 @@ msgstr "Secuencia"
#. module: crm_partner_assign
#: model:ir.model,name:crm_partner_assign.model_crm_partner_report_assign
msgid "CRM Partner Report"
msgstr ""
msgstr "Informe de la empresa CRM"
#. module: crm_partner_assign
#: model:ir.model,name:crm_partner_assign.model_crm_lead_forward_to_partner
msgid "Email composition wizard"
msgstr ""
msgstr "Asistente de composición de e-mail"
#. module: crm_partner_assign
#: selection:crm.lead.report.assign,priority:0
@ -873,7 +882,7 @@ msgstr "Fecha de creación"
#. module: crm_partner_assign
#: field:crm.lead.forward.to.partner,filter_id:0
msgid "Filters"
msgstr ""
msgstr "Filtros"
#. module: crm_partner_assign
#: view:crm.lead.report.assign:0
@ -884,7 +893,7 @@ msgstr "Año"
#. module: crm_partner_assign
#: help:crm.lead.forward.to.partner,reply_to:0
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"
#~ msgstr "\"Responder a\" del equipo de ventas definido en este caso"
@ -941,3 +950,6 @@ msgstr ""
#~ "partners o asesores,\n"
#~ "basándose en geo-localización.\n"
#~ " "
#~ msgid "E-mail composition wizard"
#~ msgstr "Asistente de composición de e-mail"

View File

@ -823,6 +823,7 @@ class node_res_dir(node_class):
uid = self.context.uid
ctx = self.context.context.copy()
ctx.update(self.dctx)
ctx.update(self.context.extra_ctx)
where = []
if self.domain:
app = safe_eval(self.domain, ctx)

View File

@ -43,7 +43,7 @@ class showdiff(osv.osv_memory):
elif len(ids) == 1:
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()
diff = history.getDiff(cr, uid, ids[0], nids[-1])
else:

View File

@ -51,9 +51,10 @@ class document_davdir(osv.osv):
# that might be not worth preparing.
nctx.extra_ctx['webdav_path'] = '/'+config.get_misc('webdav','vdir','webdav')
usr_obj = self.pool.get('res.users')
res = usr_obj.read(cr, uid, uid, ['login'])
res = usr_obj.read(cr, uid, uid, ['login','context_lang'])
if res:
nctx.extra_ctx['username'] = res['login']
nctx.extra_ctx['lang'] = res['context_lang']
# TODO group
return

View File

@ -56,7 +56,10 @@ class fleet_vehicle_cost(osv.Model):
def _year_get_fnc(self, cr, uid, ids, name, unknow_none, context=None):
res = {}
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
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):
res = []
today = fields.date.today(self, cr, uid, context=context)
for field, operator, value in args:
assert operator in ('=', '!=', '<>') and value in (True, False), 'Operation not supported'
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'),
'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'),
'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),
'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'),
@ -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'),
'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'),
'insurer_id' :fields.many2one('res.partner', 'Supplier', domain="[('supplier','=',True)]"),
'purchaser_id': fields.many2one('res.partner', 'Contractor', domain="['|', ('customer','=',True), ('employee','=',True)]",help='Person to which the contract is signed for'),
'insurer_id' :fields.many2one('res.partner', 'Supplier'),
'purchaser_id': fields.many2one('res.partner', 'Contractor', help='Person to which the contract is signed for'),
'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'),
'notes': fields.text('Terms and Conditions', help='Write here all supplementary informations relative to this contract'),

View File

@ -43,7 +43,7 @@
<field name="view_id" ref="fleet_vehicle_kanban"></field>
<field name="view_type">form</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">
<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.

View File

@ -256,7 +256,7 @@
<field name="location"/>
<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>
</field>
</record>

View File

@ -8,15 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
"PO-Revision-Date: 2012-01-03 02:55+0000\n"
"Last-Translator: Christopher Ormaza - (Ecuadorenlinea.net) "
"<chris.ormaza@gmail.com>\n"
"PO-Revision-Date: 2012-11-10 17:20+0000\n"
"Last-Translator: Cristian Salamea (Gnuthink) <ovnicraft@gmail.com>\n"
"Language-Team: Spanish (Ecuador) <es_EC@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-10-30 05:17+0000\n"
"X-Generator: Launchpad (build 16206)\n"
"X-Launchpad-Export-Date: 2012-11-11 04:57+0000\n"
"X-Generator: Launchpad (build 16251)\n"
#. module: hr
#: model:process.node,name:hr.process_node_openerpuser0
@ -199,6 +198,8 @@ msgstr "Mujer"
msgid ""
"Expected number of employees for this job position after new recruitment."
msgstr ""
"Número de Empleados para este puesto de trabajo después de las nuevas "
"contrataciones"
#. module: hr
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
@ -291,7 +292,7 @@ msgstr "Categorías"
#. module: hr
#: field:hr.job,expected_employees:0
msgid "Total Employees"
msgstr ""
msgstr "Total de Empleados"
#. module: hr
#: selection:hr.employee,marital:0
@ -435,7 +436,7 @@ msgstr "Estado"
#: model:ir.actions.act_window,name:hr.open_view_categ_tree
#: model:ir.ui.menu,name:hr.menu_view_employee_category_tree
msgid "Categories Structure"
msgstr ""
msgstr "Estructura de categorías"
#. module: hr
#: field:hr.employee,partner_id:0
@ -465,7 +466,7 @@ msgstr "¡Error! No se puede crear una jerarquía recursiva de empleados."
#. module: hr
#: model:ir.actions.act_window,name:hr.action2
msgid "Subordinate Hierarchy"
msgstr ""
msgstr "Jerarquía subirdinada"
#. module: hr
#: model:ir.actions.act_window,help:hr.view_department_form_installer
@ -715,12 +716,12 @@ msgstr "Subordinados"
#. module: hr
#: field:hr.job,no_of_employee:0
msgid "Number of employees currently occupying this job position."
msgstr ""
msgstr "Número de empleados ocupando actualmente este puesto de trabajo"
#. module: hr
#: field:hr.job,no_of_recruitment:0
msgid "Number of new employees you expect to recruit."
msgstr ""
msgstr "Número de empleados que espera contratar"
#~ msgid "Working Time Categories"
#~ msgstr "Categorías de Horarios de Trabajo"

View File

@ -31,6 +31,7 @@ from report.interface import toxml
from report import report_sxw
from tools import ustr
from tools.translate import _
from tools import to_xml
one_day = relativedelta(days=1)
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>
<company>%s</company>
</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)
som = datetime.strptime(first_date, '%Y-%m-%d %H:%M:%S')

View File

@ -236,16 +236,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."),
}
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()
class hr_expense_line(osv.osv):

View File

@ -195,7 +195,7 @@
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<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"/>
</div>
</field>

View File

@ -90,6 +90,18 @@ class hr_holidays_status(osv.osv):
'color_name': 'red',
'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()
class hr_holidays(osv.osv):

View File

@ -31,6 +31,7 @@ import time
from report import report_sxw
from tools import ustr
from tools.translate import _
from tools import to_xml
def lengthmonth(year, month):
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>
<company>%s</company>
</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
xml='''<?xml version="1.0" encoding="UTF-8" ?>

View File

@ -326,6 +326,7 @@ class hr_payslip(osv.osv):
return self.write(cr, uid, ids, {'paid': True, 'state': 'done'}, context=context)
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)
def refund_sheet(self, cr, uid, ids, context=None):

View File

@ -28,6 +28,7 @@ import time
import pooler
from report import report_sxw
from tools import ustr
from tools import to_xml
def lengthmonth(year, month):
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>
<company>%s</company>
</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 = []
for account, telems in accounts.iteritems():

View File

@ -27,8 +27,9 @@ class analytical_timesheet_employee(osv.osv_memory):
_name = 'hr.analytical.timesheet.employee'
_description = 'Print Employee Timesheet & Print My Timesheet'
_columns = {
'month': fields.selection([(x, datetime.date(2000, x, 1).strftime('%B')) for x in range(1, 13)],
'Month', required=True),
'month': fields.selection([(1,'January'), (2,'February'), (3,'March'), (4,'April'),
(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),
'employee_id': fields.many2one('hr.employee', 'Employee', required=True)

View File

@ -27,8 +27,9 @@ class analytical_timesheet_employees(osv.osv_memory):
_name = 'hr.analytical.timesheet.users'
_description = 'Print Employees Timesheet'
_columns = {
'month': fields.selection([(x, datetime.date(2000, x, 1).strftime('%B')) for x in range(1, 13)],
'Month', required=True),
'month': fields.selection([(1,'January'), (2,'February'), (3,'March'), (4,'April'),
(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),
'employee_ids': fields.many2many('hr.employee', 'timesheet_employee_rel', 'timesheet_id', 'employee_id', 'employees', required=True)
}

View File

@ -52,21 +52,6 @@ class ResPartnerBank(osv.osv):
'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):
"Hook to get bank number of bank account"
res = u''

View File

@ -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
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
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

1 code id name parent_id:id
60 IVC21Idet40 template_impcode_pagata_21det40 IVA a credito 21% detraibile 40% (imponibile) template_impcode_pagata
61 IVC21det50 template_ivacode_pagata_21det50 IVA a credito 21% detraibile 50% template_ivacode_pagata
62 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

View File

@ -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
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,,
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

1 id description chart_template_id:id name sequence amount parent_id:id child_depend type account_collected_id:id account_paid_id:id type_tax_use base_code_id:id tax_code_id:id ref_base_code_id:id ref_tax_code_id:id ref_base_sign ref_tax_sign price_include base_sign tax_sign
62 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
63 21I5b 21I5b l10n_it_chart_template_generic IVA al 21% detraibile al 50% (I) 1 0.5 21I5 False percent purchase False
64 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

View File

@ -111,7 +111,7 @@ class report_custom(report_rml):
<PageWidth>595.27</PageWidth>
<PageHeight>841.88</PageHeight>
<tableSize>55.00mm,58.00mm,29.00mm,29.00mm,29.00mm</tableSize>
""" % (user_pool.browse(cr, uid, uid).company_id.name)
""" % to_xml(user_pool.browse(cr, uid, uid).company_id.name)
config_stop = """
<report-footer>Generated by OpenERP</report-footer>
</config>

View File

@ -28,10 +28,6 @@ class mrp_config_settings(osv.osv_memory):
_inherit = 'res.config.settings'
_columns = {
'module_stock_planning': fields.boolean('Manage master production shedule',
help ="""This allows to create a manual procurement plan apart of the normal MRP scheduling,
which works automatically based on minimum stock rules.
This installs the module stock_planning."""),
'module_mrp_repair': fields.boolean("Manage repairs of products ",
help="""Allows to manage all product repairs.
* Add/remove products in the reparation

View File

@ -56,10 +56,6 @@
<field name="module_mrp_operations" class="oe_inline"/>
<label for="module_mrp_operations" />
</div>
<div>
<field name="module_stock_planning" class="oe_inline"/>
<label for="module_stock_planning"/>
</div>
</div>
</group>
<separator string="Master Data"/>

View File

@ -690,7 +690,7 @@ class mrp_repair_line(osv.osv, ProductChangeMixin):
'repair_id': fields.many2one('mrp.repair', 'Repair Order Reference',ondelete='cascade', select=True),
'type': fields.selection([('add','Add'),('remove','Remove')],'Type', required=True),
'to_invoice': fields.boolean('To Invoice'),
'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok','=',True)], required=True),
'product_id': fields.many2one('product.product', 'Product', required=True),
'invoiced': fields.boolean('Invoiced',readonly=True),
'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price')),
'price_subtotal': fields.function(_amount_line, string='Subtotal',digits_compute= dp.get_precision('Account')),

View File

@ -49,8 +49,8 @@
padding: 8px;
margin-left: 3px;
margin-right: 3px;
padding-bottom: 16px;
margin-bottom: 16px;
padding-bottom: 8px;
margin-bottom: 10px;
-webkit-transform: rotate(-2deg);
-o-transform: rotate(-2deg);
-moz-transform: rotate(-2deg);

View File

@ -53,8 +53,8 @@
padding: 8px
margin-left: 3px
margin-right: 3px
padding-bottom: 16px
margin-bottom: 16px
padding-bottom: 8px
margin-bottom: 10px
@include rotate(-2deg)
@include transition(all, 300ms)
.oe_kanban_record:nth-of-type(even)

View File

@ -34,7 +34,7 @@ class order(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(order, self).__init__(cr, uid, name, context=context)
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid)
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid, context=context)
partner = user.company_id.partner_id
self.localcontext.update({

View File

@ -941,8 +941,10 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
var self = this;
var x = new module.PaymentlineWidget(null, {
payment_line: newPaymentLine
});
x.on('delete_payment_line', self, self.deleteLine);
});
x.on('delete_payment_line', self, function(r) {
self.deleteLine(r);
});
x.appendTo(this.$('#paymentlines'));
},
renderElement: function() {

View File

@ -315,7 +315,7 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
this._super();
this.$('input').keyup(_.bind(this.changeAmount, this));
this.$('.delete-payment-line').click(function() {
self.trigger('delete_payment_line');
self.trigger('delete_payment_line', self);
});
},
});
@ -1051,7 +1051,8 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
this.pos.barcode_reader.disconnect();
return new instance.web.Model("ir.model.data").get_func("search_read")([['name', '=', 'action_client_pos_menu']], ['res_id']).pipe(
_.bind(function(res) {
return this.rpc('/web/action/load', {'action_id': res[0]['res_id']}).pipe(_.bind(function(action) {
return this.rpc('/web/action/load', {'action_id': res[0]['res_id']}).pipe(_.bind(function(result) {
var action = result;
action.context = _.extend(action.context || {}, {'cancel_action': {type: 'ir.actions.client', tag: 'reload'}});
//self.destroy();
this.do_action(action);

View File

@ -35,8 +35,8 @@ class share_wizard_portal(osv.TransientModel):
def _user_type_selection(self, cr, uid, context=None):
selection = super(share_wizard_portal, self)._user_type_selection(cr, uid, context=context)
selection.extend([('existing','Users you already shared with'),
('groups','Existing Groups (e.g Portal Groups)')])
selection.extend([('existing',_('Users you already shared with')),
('groups',_('Existing Groups (e.g Portal Groups)'))])
return selection
_columns = {

View File

@ -166,17 +166,17 @@ class project(osv.osv):
res[id]['progress_rate'] = 0.0
return res
def unlink(self, cr, uid, ids, *args, **kwargs):
def unlink(self, cr, uid, ids, context=None):
alias_ids = []
mail_alias = self.pool.get('mail.alias')
for proj in self.browse(cr, uid, ids):
for proj in self.browse(cr, uid, ids, context=context):
if proj.tasks:
raise osv.except_osv(_('Invalid Action!'),
_('You cannot delete a project containing tasks. You can either delete all the project\'s tasks and then delete the project or simply deactivate the project.'))
elif proj.alias_id:
alias_ids.append(proj.alias_id.id)
res = super(project, self).unlink(cr, uid, ids, *args, **kwargs)
mail_alias.unlink(cr, uid, alias_ids, *args, **kwargs)
res = super(project, self).unlink(cr, uid, ids, context=context)
mail_alias.unlink(cr, uid, alias_ids, context=context)
return res
def _get_attached_docs(self, cr, uid, ids, field_name, arg, context):
@ -204,8 +204,8 @@ class project(osv.osv):
def attachment_tree_view(self, cr, uid, ids, context):
task_ids = self.pool.get('project.task').search(cr, uid, [('project_id', 'in', ids)])
domain = [
('|',
'&', 'res_model', '=', 'project.project'), ('res_id', 'in', ids),
'|',
'&', ('res_model', '=', 'project.project'), ('res_id', 'in', ids),
'&', ('res_model', '=', 'project.task'), ('res_id', 'in', task_ids)
]
res_id = ids and ids[0] or False

View File

@ -164,7 +164,7 @@
<field name="model">project.project</field>
<field name="arch" type="xml">
<search string="Search Project">
<field name="complete_name" string="Project Name"/>
<field name="name" string="Project Name"/>
<filter icon="terp-mail-message-new" string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
<separator/>
<filter icon="terp-check" string="Open" name="Current" domain="[('state', '=','open')]" help="Open Projects"/>

View File

@ -46,7 +46,7 @@ class purchase_order(osv.osv):
cur = order.pricelist_id.currency_id
for line in order.order_line:
val1 += line.price_subtotal
for c in self.pool.get('account.tax').compute_all(cr, uid, line.taxes_id, line.price_unit, line.product_qty, line.product_id.id, order.partner_id)['taxes']:
for c in self.pool.get('account.tax').compute_all(cr, uid, line.taxes_id, line.price_unit, line.product_qty, line.product_id, order.partner_id)['taxes']:
val += c.get('amount', 0.0)
res[order.id]['amount_tax']=cur_obj.round(cr, uid, cur, val)
res[order.id]['amount_untaxed']=cur_obj.round(cr, uid, cur, val1)
@ -293,6 +293,27 @@ class purchase_order(osv.osv):
fiscal_position = supplier.property_account_position and supplier.property_account_position.id or False
return {'value':{'pricelist_id': pricelist, 'fiscal_position': fiscal_position}}
def invoice_open(self, cr, uid, ids, context=None):
mod_obj = self.pool.get('ir.model.data')
act_obj = self.pool.get('ir.actions.act_window')
result = mod_obj.get_object_reference(cr, uid, 'account', 'action_invoice_tree2')
id = result and result[1] or False
result = act_obj.read(cr, uid, [id], context=context)[0]
inv_ids = []
for po in self.browse(cr, uid, ids, context=context):
inv_ids+= [invoice.id for invoice in po.invoice_ids]
if not inv_ids:
raise osv.except_osv(_('Error!'), _('Please create Invoices.'))
#choose the view_mode accordingly
if len(inv_ids)>1:
result['domain'] = "[('id','in',["+','.join(map(str, inv_ids))+"])]"
else:
res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_supplier_form')
result['views'] = [(res and res[1] or False, 'form')]
result['res_id'] = inv_ids and inv_ids[0] or False
return result
def view_invoice(self, cr, uid, ids, context=None):
'''
This function returns an action that display existing invoices of given sale order ids. It can either be a in a list or in a form view, if there is only one invoice to show.
@ -547,7 +568,6 @@ class purchase_order(osv.osv):
'invoice_state': '2binvoiced' if order.invoice_method == 'picking' else 'none',
'type': 'in',
'partner_id': order.dest_address_id.id or order.partner_id.id,
'invoice_state': '2binvoiced' if order.invoice_method == 'picking' else 'none',
'purchase_id': order.id,
'company_id': order.company_id.id,
'move_lines' : [],
@ -803,7 +823,7 @@ class purchase_order_line(osv.osv):
cur_obj=self.pool.get('res.currency')
tax_obj = self.pool.get('account.tax')
for line in self.browse(cr, uid, ids, context=context):
taxes = tax_obj.compute_all(cr, uid, line.taxes_id, line.price_unit, line.product_qty)
taxes = tax_obj.compute_all(cr, uid, line.taxes_id, line.price_unit, line.product_qty, line.product_id, line.order_id.partner_id)
cur = line.order_id.pricelist_id.currency_id
res[line.id] = cur_obj.round(cr, uid, cur, taxes['total'])
return res

View File

@ -282,8 +282,6 @@
<field name="date_approve" groups="base.group_no_one"/>
</group>
</group>
<separator string="Invoices"/>
<field name="invoice_ids" context="{'type':'in_invoice', 'journal_type':'purchase'}"/>
</page>
</notebook>
</sheet>

View File

@ -48,6 +48,8 @@
<button type="object"
name="view_picking"
string="Incoming Shipments" states="approved"/>
<button type="object" name="invoice_open"
string="Invoices" attrs="{'invisible': [('state', '=', 'draft')]}"/>
</div>
</xpath>
</field>

View File

@ -903,7 +903,7 @@ class sale_order_line(osv.osv):
result = {}
warning_msgs = {}
product_obj = product_obj.browse(cr, uid, product, context=context)
product_obj = product_obj.browse(cr, uid, product, context=context_partner)
uom2 = False
if uom:
@ -922,7 +922,7 @@ class sale_order_line(osv.osv):
result['tax_id'] = self.pool.get('account.fiscal.position').map_tax(cr, uid, fpos, product_obj.taxes_id)
if not flag:
result['name'] = self.pool.get('product.product').name_get(cr, uid, [product_obj.id], context=context_partner)[0][1]
result['name'] = product_obj.name_get(cr, uid, [product_obj.id], context=context_partner)[0][1]
if product_obj.description_sale:
result['name'] += '\n'+product_obj.description_sale
domain = {}

View File

@ -74,7 +74,7 @@ class share_wizard(osv.TransientModel):
def _user_type_selection(self, cr, uid, context=None):
"""Selection values may be easily overridden/extended via inheritance"""
return [('embedded', 'Direct link or embed code'), ('emails','Emails'), ]
return [('embedded', _('Direct link or embed code')), ('emails',_('Emails')), ]
"""Override of create() to auto-compute the action name"""
def create(self, cr, uid, values, context=None):

View File

@ -1351,14 +1351,14 @@ class stock_picking(osv.osv):
wf_service.trg_validate(uid, 'stock.picking', new_picking, 'button_confirm', cr)
# Then we finish the good picking
self.write(cr, uid, [pick.id], {'backorder_id': new_picking})
self.action_move(cr, uid, [new_picking])
self.action_move(cr, uid, [new_picking], context=context)
wf_service.trg_validate(uid, 'stock.picking', new_picking, 'button_done', cr)
wf_service.trg_write(uid, 'stock.picking', pick.id, cr)
delivered_pack_id = new_picking
back_order_name = self.browse(cr, uid, delivered_pack_id, context=context).name
self.back_order_send_note(cr, uid, ids, back_order_name, context)
else:
self.action_move(cr, uid, [pick.id])
self.action_move(cr, uid, [pick.id], context=context)
wf_service.trg_validate(uid, 'stock.picking', pick.id, 'button_done', cr)
delivered_pack_id = pick.id
self.ship_done_send_note(cr, uid, ids, context)
@ -2123,7 +2123,7 @@ class stock_move(osv.osv):
old_ptype = location_obj.picking_type_get(cr, uid, picking.move_lines[0].location_id, picking.move_lines[0].location_dest_id)
if old_ptype != picking.type:
old_pick_name = seq_obj.get(cr, uid, 'stock.picking.' + old_ptype)
self.pool.get('stock.picking').write(cr, uid, [picking.id], {'name': old_pick_name}, context=context)
self.pool.get('stock.picking').write(cr, uid, [picking.id], {'name': old_pick_name, 'type': old_ptype}, context=context)
else:
pickid = False
for move, (loc, dummy, delay, dummy, company_id, ptype) in todo:

View File

@ -17,7 +17,7 @@
<record id="seq_type_picking_internal" model="ir.sequence.type">
<field name="name">Picking INT</field>
<field name="code">stock.picking.internal</field>
<field name="code">stock.picking</field>
</record>
<!--
@ -42,7 +42,7 @@
<record id="seq_picking_internal" model="ir.sequence">
<field name="name">Picking INT</field>
<field name="code">stock.picking.internal</field>
<field name="code">stock.picking</field>
<field name="prefix">INT/</field>
<field name="padding">5</field>
<field name="company_id" eval="False"/>

View File

@ -79,8 +79,6 @@ class stock_fill_inventory(osv.osv_memory):
inventory_line_obj = self.pool.get('stock.inventory.line')
location_obj = self.pool.get('stock.location')
product_obj = self.pool.get('product.product')
stock_location_obj = self.pool.get('stock.location')
move_obj = self.pool.get('stock.move')
uom_obj = self.pool.get('product.uom')
if ids and len(ids):