[UPD] resolve conflicts with main branch and fix bug introduced in rev 10015 lp:1313622
lp bug: https://launchpad.net/bugs/1313622 fixed bzr revid: yannick.vaucher@camptocamp.com-20140428142017-3warx1ai72cfetj1
This commit is contained in:
commit
22d1c0956f
|
@ -0,0 +1,62 @@
|
||||||
|
# Slovak translation for openobject-addons
|
||||||
|
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
|
||||||
|
# This file is distributed under the same license as the openobject-addons package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: openobject-addons\n"
|
||||||
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"POT-Creation-Date: 2013-06-07 19:36+0000\n"
|
||||||
|
"PO-Revision-Date: 2014-04-26 16:04+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Slovak <sk@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: 2014-04-27 06:18+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16985)\n"
|
||||||
|
|
||||||
|
#. module: account_anglo_saxon
|
||||||
|
#: model:ir.model,name:account_anglo_saxon.model_product_category
|
||||||
|
msgid "Product Category"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_anglo_saxon
|
||||||
|
#: model:ir.model,name:account_anglo_saxon.model_account_invoice_line
|
||||||
|
msgid "Invoice Line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_anglo_saxon
|
||||||
|
#: model:ir.model,name:account_anglo_saxon.model_purchase_order
|
||||||
|
msgid "Purchase Order"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_anglo_saxon
|
||||||
|
#: model:ir.model,name:account_anglo_saxon.model_product_template
|
||||||
|
msgid "Product Template"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_anglo_saxon
|
||||||
|
#: field:product.category,property_account_creditor_price_difference_categ:0
|
||||||
|
#: field:product.template,property_account_creditor_price_difference:0
|
||||||
|
msgid "Price Difference Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_anglo_saxon
|
||||||
|
#: model:ir.model,name:account_anglo_saxon.model_account_invoice
|
||||||
|
msgid "Invoice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_anglo_saxon
|
||||||
|
#: model:ir.model,name:account_anglo_saxon.model_stock_picking
|
||||||
|
msgid "Picking List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_anglo_saxon
|
||||||
|
#: help:product.category,property_account_creditor_price_difference_categ:0
|
||||||
|
#: help:product.template,property_account_creditor_price_difference:0
|
||||||
|
msgid ""
|
||||||
|
"This account will be used to value price difference between purchase price "
|
||||||
|
"and cost price."
|
||||||
|
msgstr ""
|
|
@ -0,0 +1,62 @@
|
||||||
|
# Macedonian translation for openobject-addons
|
||||||
|
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
|
||||||
|
# This file is distributed under the same license as the openobject-addons package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: openobject-addons\n"
|
||||||
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"POT-Creation-Date: 2013-06-07 19:36+0000\n"
|
||||||
|
"PO-Revision-Date: 2014-04-26 12:11+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Macedonian <mk@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: 2014-04-27 06:18+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16985)\n"
|
||||||
|
|
||||||
|
#. module: account_report_company
|
||||||
|
#: field:res.partner,display_name:0
|
||||||
|
msgid "Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_report_company
|
||||||
|
#: field:account.invoice,commercial_partner_id:0
|
||||||
|
#: help:account.invoice.report,commercial_partner_id:0
|
||||||
|
msgid "Commercial Entity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_report_company
|
||||||
|
#: field:account.invoice.report,commercial_partner_id:0
|
||||||
|
msgid "Partner Company"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_report_company
|
||||||
|
#: model:ir.model,name:account_report_company.model_account_invoice
|
||||||
|
msgid "Invoice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_report_company
|
||||||
|
#: view:account.invoice:0
|
||||||
|
#: view:account.invoice.report:0
|
||||||
|
#: model:ir.model,name:account_report_company.model_res_partner
|
||||||
|
msgid "Partner"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_report_company
|
||||||
|
#: model:ir.model,name:account_report_company.model_account_invoice_report
|
||||||
|
msgid "Invoices Statistics"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_report_company
|
||||||
|
#: view:res.partner:0
|
||||||
|
msgid "True"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: account_report_company
|
||||||
|
#: help:account.invoice,commercial_partner_id:0
|
||||||
|
msgid ""
|
||||||
|
"The commercial entity that will be used on Journal Entries for this invoice"
|
||||||
|
msgstr ""
|
|
@ -0,0 +1,135 @@
|
||||||
|
# Slovak translation for openobject-addons
|
||||||
|
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
|
||||||
|
# This file is distributed under the same license as the openobject-addons package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
|
||||||
|
#
|
||||||
|
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: 2014-04-26 16:22+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Slovak <sk@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: 2014-04-27 06:18+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16985)\n"
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: field:profile.association.config.install_modules_wizard,wiki:0
|
||||||
|
msgid "Wiki"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: view:profile.association.config.install_modules_wizard:0
|
||||||
|
msgid "Event Management"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: field:profile.association.config.install_modules_wizard,project_gtd:0
|
||||||
|
msgid "Getting Things Done"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: model:ir.module.module,description:association.module_meta_information
|
||||||
|
msgid "This module is to create Profile for Associates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: field:profile.association.config.install_modules_wizard,progress:0
|
||||||
|
msgid "Configuration Progress"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: view:profile.association.config.install_modules_wizard:0
|
||||||
|
msgid ""
|
||||||
|
"Here are specific applications related to the Association Profile you "
|
||||||
|
"selected."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: view:profile.association.config.install_modules_wizard:0
|
||||||
|
msgid "title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: help:profile.association.config.install_modules_wizard,event_project:0
|
||||||
|
msgid "Helps you to manage and organize your events."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: field:profile.association.config.install_modules_wizard,config_logo:0
|
||||||
|
msgid "Image"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: help:profile.association.config.install_modules_wizard,hr_expense:0
|
||||||
|
msgid ""
|
||||||
|
"Tracks and manages employee expenses, and can automatically re-invoice "
|
||||||
|
"clients if the expenses are project-related."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: help:profile.association.config.install_modules_wizard,project_gtd:0
|
||||||
|
msgid ""
|
||||||
|
"GTD is a methodology to efficiently organise yourself and your tasks. This "
|
||||||
|
"module fully integrates GTD principle with OpenERP's project management."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: view:profile.association.config.install_modules_wizard:0
|
||||||
|
msgid "Resources Management"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: model:ir.module.module,shortdesc:association.module_meta_information
|
||||||
|
msgid "Association profile"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: field:profile.association.config.install_modules_wizard,hr_expense:0
|
||||||
|
msgid "Expenses Tracking"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: model:ir.actions.act_window,name:association.action_config_install_module
|
||||||
|
#: view:profile.association.config.install_modules_wizard:0
|
||||||
|
msgid "Association Application Configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: help:profile.association.config.install_modules_wizard,wiki:0
|
||||||
|
msgid ""
|
||||||
|
"Lets you create wiki pages and page groups in order to keep track of "
|
||||||
|
"business knowledge and share it with and between your employees."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: help:profile.association.config.install_modules_wizard,project:0
|
||||||
|
msgid ""
|
||||||
|
"Helps you manage your projects and tasks by tracking them, generating "
|
||||||
|
"plannings, etc..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: model:ir.model,name:association.model_profile_association_config_install_modules_wizard
|
||||||
|
msgid "profile.association.config.install_modules_wizard"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: field:profile.association.config.install_modules_wizard,event_project:0
|
||||||
|
msgid "Events"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: view:profile.association.config.install_modules_wizard:0
|
||||||
|
#: field:profile.association.config.install_modules_wizard,project:0
|
||||||
|
msgid "Project Management"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: association
|
||||||
|
#: view:profile.association.config.install_modules_wizard:0
|
||||||
|
msgid "Configure"
|
||||||
|
msgstr ""
|
|
@ -26,9 +26,9 @@ from pytz import timezone
|
||||||
import pytz
|
import pytz
|
||||||
|
|
||||||
from openerp.osv import fields, osv
|
from openerp.osv import fields, osv
|
||||||
|
from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
|
||||||
from openerp.tools.translate import _
|
from openerp.tools.translate import _
|
||||||
from openerp import netsvc
|
from openerp import netsvc
|
||||||
from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
|
|
||||||
|
|
||||||
class hr_timesheet_sheet(osv.osv):
|
class hr_timesheet_sheet(osv.osv):
|
||||||
_name = "hr_timesheet_sheet.sheet"
|
_name = "hr_timesheet_sheet.sheet"
|
||||||
|
@ -393,29 +393,53 @@ class hr_attendance(osv.osv):
|
||||||
attendance_ids.extend([row[0] for row in cr.fetchall()])
|
attendance_ids.extend([row[0] for row in cr.fetchall()])
|
||||||
return attendance_ids
|
return attendance_ids
|
||||||
|
|
||||||
|
def _get_attendance_employee_tz(self, cr, uid, employee_id, date, context=None):
|
||||||
|
""" Simulate timesheet in employee timezone
|
||||||
|
|
||||||
|
Return the attendance datetime as date in string format in employee
|
||||||
|
tz converted from utc timezone as we consider date of employee
|
||||||
|
timesheet is in employee timezone
|
||||||
|
"""
|
||||||
|
employee_obj = self.pool['hr.employee']
|
||||||
|
|
||||||
|
tz = False
|
||||||
|
if employee_id:
|
||||||
|
employee = employee_obj.browse(cr, uid, employee_id, context=context)
|
||||||
|
tz = employee.user_id.partner_id.tz
|
||||||
|
|
||||||
|
att_tz = timezone(tz or 'utc')
|
||||||
|
|
||||||
|
attendance_dt = datetime.strptime(date, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
|
att_tz_dt = pytz.utc.localize(attendance_dt)
|
||||||
|
att_tz_dt = att_tz_dt.astimezone(att_tz)
|
||||||
|
# We take only the date omiting the hours as we compare with timesheet
|
||||||
|
# date_from which is a date format thus using hours would lead to
|
||||||
|
# be out of scope of timesheet
|
||||||
|
att_tz_date_str = datetime.strftime(att_tz_dt, DEFAULT_SERVER_DATE_FORMAT)
|
||||||
|
return att_tz_date_str
|
||||||
|
|
||||||
|
def _get_current_sheet(self, cr, uid, employee_id, date=False, context=None):
|
||||||
|
|
||||||
|
sheet_obj = self.pool['hr_timesheet_sheet.sheet']
|
||||||
|
if not date:
|
||||||
|
date = time.strftime(DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
|
|
||||||
|
att_tz_date_str = self._get_attendance_employee_tz(
|
||||||
|
cr, uid, employee_id,
|
||||||
|
date=date, context=context)
|
||||||
|
sheet_ids = sheet_obj.search(cr, uid,
|
||||||
|
[('date_from', '<=', att_tz_date_str),
|
||||||
|
('date_to', '>=', att_tz_date_str),
|
||||||
|
('employee_id', '=', employee_id)],
|
||||||
|
context=context)
|
||||||
|
return sheet_ids and sheet_ids[0] or False
|
||||||
|
|
||||||
def _sheet(self, cursor, user, ids, name, args, context=None):
|
def _sheet(self, cursor, user, ids, name, args, context=None):
|
||||||
sheet_obj = self.pool.get('hr_timesheet_sheet.sheet')
|
|
||||||
res = {}.fromkeys(ids, False)
|
res = {}.fromkeys(ids, False)
|
||||||
for attendance in self.browse(cursor, user, ids, context=context):
|
for attendance in self.browse(cursor, user, ids, context=context):
|
||||||
|
res[attendance.id] = self._get_current_sheet(
|
||||||
# Simulate timesheet in employee timezone
|
cursor, user, attendance.employee_id.id, attendance.name,
|
||||||
att_tz = timezone(attendance.employee_id.user_id.partner_id.tz or 'utc')
|
context=context)
|
||||||
|
|
||||||
attendance_dt = datetime.strptime(attendance.name, DEFAULT_SERVER_DATETIME_FORMAT)
|
|
||||||
att_tz_dt = pytz.utc.localize(attendance_dt)
|
|
||||||
att_tz_dt = att_tz_dt.astimezone(att_tz)
|
|
||||||
# We take only the date omiting the hours as we compare with timesheet
|
|
||||||
# date_from which is a date format thus using hours would lead to
|
|
||||||
# be out of scope of timesheet
|
|
||||||
att_tz_date_str = datetime.strftime(att_tz_dt, DEFAULT_SERVER_DATE_FORMAT)
|
|
||||||
sheet_ids = sheet_obj.search(cursor, user,
|
|
||||||
[('date_from', '<=', att_tz_date_str),
|
|
||||||
('date_to', '>=', att_tz_date_str),
|
|
||||||
('employee_id', '=', attendance.employee_id.id)],
|
|
||||||
context=context)
|
|
||||||
if sheet_ids:
|
|
||||||
# [0] because only one sheet possible for an employee between 2 dates
|
|
||||||
res[attendance.id] = sheet_obj.name_get(cursor, user, sheet_ids, context=context)[0]
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
|
@ -434,16 +458,18 @@ class hr_attendance(osv.osv):
|
||||||
def create(self, cr, uid, vals, context=None):
|
def create(self, cr, uid, vals, context=None):
|
||||||
if context is None:
|
if context is None:
|
||||||
context = {}
|
context = {}
|
||||||
if 'sheet_id' in context:
|
|
||||||
ts = self.pool.get('hr_timesheet_sheet.sheet').browse(cr, uid, context['sheet_id'], context=context)
|
sheet_id = context.get('sheet_id') or self._get_current_sheet(cr, uid, vals.get('employee_id'), vals.get('name'), context=context)
|
||||||
|
if sheet_id:
|
||||||
|
att_tz_date_str = self._get_attendance_employee_tz(
|
||||||
|
cr, uid, vals.get('employee_id'),
|
||||||
|
date=vals.get('name'), context=context)
|
||||||
|
ts = self.pool.get('hr_timesheet_sheet.sheet').browse(cr, uid, sheet_id, context=context)
|
||||||
if ts.state not in ('draft', 'new'):
|
if ts.state not in ('draft', 'new'):
|
||||||
raise osv.except_osv(_('Error!'), _('You cannot modify an entry in a confirmed timesheet.'))
|
raise osv.except_osv(_('Error!'), _('You can not enter an attendance in a submitted timesheet. Ask your manager to reset it before adding attendance.'))
|
||||||
res = super(hr_attendance,self).create(cr, uid, vals, context=context)
|
elif ts.date_from > att_tz_date_str or ts.date_to < att_tz_date_str:
|
||||||
if 'sheet_id' in context:
|
raise osv.except_osv(_('User Error!'), _('You can not enter an attendance date outside the current timesheet dates.'))
|
||||||
if context['sheet_id'] != self.browse(cr, uid, res, context=context).sheet_id.id:
|
return super(hr_attendance,self).create(cr, uid, vals, context=context)
|
||||||
raise osv.except_osv(_('User Error!'), _('You cannot enter an attendance ' \
|
|
||||||
'date outside the current timesheet dates.'))
|
|
||||||
return res
|
|
||||||
|
|
||||||
def unlink(self, cr, uid, ids, *args, **kwargs):
|
def unlink(self, cr, uid, ids, *args, **kwargs):
|
||||||
if isinstance(ids, (int, long)):
|
if isinstance(ids, (int, long)):
|
||||||
|
@ -597,4 +623,3 @@ class res_company(osv.osv):
|
||||||
res_company()
|
res_company()
|
||||||
|
|
||||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
<record id="res_company_oerp_us" model="res.company">
|
<record id="res_company_oerp_us" model="res.company">
|
||||||
<field name="partner_id" ref="res_partner_oerp_us"/>
|
<field name="partner_id" ref="res_partner_oerp_us"/>
|
||||||
<field name="parent_id" ref="res_company_oerp_editor"/>
|
<field name="parent_id" ref="res_company_oerp_editor"/>
|
||||||
<field name="currency_id" ref="base.EUR"/>
|
<field name="currency_id" ref="base.USD"/>
|
||||||
<field name="name">OpenERP US</field>
|
<field name="name">OpenERP US</field>
|
||||||
</record>
|
</record>
|
||||||
<record id="res_company_oerp_be" model="res.company">
|
<record id="res_company_oerp_be" model="res.company">
|
||||||
|
@ -450,7 +450,7 @@
|
||||||
</record>
|
</record>
|
||||||
<record id="project.project_project_3" model="project.project">
|
<record id="project.project_project_3" model="project.project">
|
||||||
<field name="company_id" ref="res_company_oerp_us"/>
|
<field name="company_id" ref="res_company_oerp_us"/>
|
||||||
<field name="currency_id" ref="base.EUR"/>
|
<field name="currency_id" ref="base.USD"/>
|
||||||
</record>
|
</record>
|
||||||
<record id="project.project_project_4" model="project.project">
|
<record id="project.project_project_4" model="project.project">
|
||||||
<field name="company_id" ref="res_company_oerp_be"/>
|
<field name="company_id" ref="res_company_oerp_be"/>
|
||||||
|
|
|
@ -24,7 +24,7 @@ import re
|
||||||
|
|
||||||
from _common import ceiling
|
from _common import ceiling
|
||||||
|
|
||||||
from openerp import tools
|
from openerp import tools, SUPERUSER_ID
|
||||||
from openerp.osv import osv, fields
|
from openerp.osv import osv, fields
|
||||||
from openerp.tools.translate import _
|
from openerp.tools.translate import _
|
||||||
|
|
||||||
|
@ -703,7 +703,7 @@ class product_product(osv.osv):
|
||||||
|
|
||||||
res = {}
|
res = {}
|
||||||
product_uom_obj = self.pool.get('product.uom')
|
product_uom_obj = self.pool.get('product.uom')
|
||||||
for product in self.browse(cr, uid, ids, context=context):
|
for product in self.browse(cr, SUPERUSER_ID, ids, context=context):
|
||||||
res[product.id] = product[ptype] or 0.0
|
res[product.id] = product[ptype] or 0.0
|
||||||
if ptype == 'list_price':
|
if ptype == 'list_price':
|
||||||
res[product.id] = (res[product.id] * (product.price_margin or 1.0)) + \
|
res[product.id] = (res[product.id] * (product.price_margin or 1.0)) + \
|
||||||
|
|
Loading…
Reference in New Issue