avanzosc team mailing list archive
-
avanzosc team
-
Mailing list archive
-
Message #00511
Re: [Merge] lp:~alfredodelafuente/avanzosc/dos_services_to_invoice into lp:~avanzosc-security-team/avanzosc/72horas
Review: Needs Fixing code review
Sólo un pequeño error en comentarios inline.
Un saludo
Diff comments:
> === modified file 'dos_services_to_invoice/__init__.py'
> --- dos_services_to_invoice/__init__.py 2014-06-11 10:23:47 +0000
> +++ dos_services_to_invoice/__init__.py 2014-06-25 13:59:59 +0000
> @@ -18,10 +18,4 @@
> # along with this program. If not, see <http://www.gnu.org/licenses/>.
> #
> ##############################################################################
> -
> -
> -import product
> -import sale
> -import sale_order_line
> -
> -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> +from . import models
> \ No newline at end of file
>
> === modified file 'dos_services_to_invoice/__openerp__.py'
> --- dos_services_to_invoice/__openerp__.py 2014-06-11 10:23:47 +0000
> +++ dos_services_to_invoice/__openerp__.py 2014-06-25 13:59:59 +0000
> @@ -18,20 +18,18 @@
> # along with this program. If not, see <http://www.gnu.org/licenses/>.
> #
> ##############################################################################
> -
> -
> {
> - "name" : "DOS Services To Invoice",
> - "version" : "1.0",
> - "author" : "DOS",
> - "category" : "Product, Sales",
> - "website" : "www.dos-sl.es",
> - "description": "This module allows you to add services to invoice on the products.",
> - "depends" : ['product', 'sale', 'dos_stock_warehouse_additional_info', 'dos_product_additional_info'],
> - "init_xml" : [],
> - "update_xml" : ['product_view.xml', 'sale_order_line_view.xml'],
> - "active": False,
> + "name": "DOS Services To Invoice",
> + "version": "1.0",
> + "author": "DOS",
> + "category": "Product, Sales",
> + "website": "www.dos-sl.es",
> + "description": """
> + This module allows you to add services to invoice on the products.
> + """,
> + "depends": ['product', 'sale', 'dos_stock_warehouse_additional_info',
> + 'dos_product_additional_info',
> + ],
> + "data": ['view/product_view.xml', 'view/sale_order_line_view.xml'],
> "installable": True
> }
> -
> -
>
> === added directory 'dos_services_to_invoice/models'
> === added file 'dos_services_to_invoice/models/__init__.py'
> --- dos_services_to_invoice/models/__init__.py 1970-01-01 00:00:00 +0000
> +++ dos_services_to_invoice/models/__init__.py 2014-06-25 13:59:59 +0000
> @@ -0,0 +1,22 @@
> +# -*- coding: utf-8 -*-
> +##############################################################################
> +#
> +# OpenERP, Open Source Management Solution
> +# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
> +#
> +# This program is free software: you can redistribute it and/or modify
> +# it under the terms of the GNU Affero General Public License as
> +# published by the Free Software Foundation, either version 3 of the
> +# License, or (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU Affero General Public License for more details.
> +#
> +# You should have received a copy of the GNU Affero General Public License
> +# along with this program. If not, see <http://www.gnu.org/licenses/>.
> +#
> +##############################################################################
> +from . import product
> +from . import sale
> \ No newline at end of file
>
> === added file 'dos_services_to_invoice/models/product.py'
> --- dos_services_to_invoice/models/product.py 1970-01-01 00:00:00 +0000
> +++ dos_services_to_invoice/models/product.py 2014-06-25 13:59:59 +0000
> @@ -0,0 +1,39 @@
> +# -*- coding: utf-8 -*-
> +##############################################################################
> +#
> +# OpenERP, Open Source Management Solution
> +# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
> +#
> +# This program is free software: you can redistribute it and/or modify
> +# it under the terms of the GNU Affero General Public License as
> +# published by the Free Software Foundation, either version 3 of the
> +# License, or (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU Affero General Public License for more details.
> +#
> +# You should have received a copy of the GNU Affero General Public License
> +# along with this program. If not, see <http://www.gnu.org/licenses/>.
> +#
> +##############################################################################
> +
> +from openerp.osv import orm, fields
> +from openerp.tools.translate import _
> +
> +
> +class ProductProduct(orm.Model):
> + _inherit = 'product.product'
> +
> + _columns = {
> + 'product_services_ids': fields.many2many('product.product',
> + 'product_services_rel',
> + 'product_id',
> + 'product_service_id',
> + 'Services',
> + help="This is the list "
> + "of services to be invoiced "
> + "after the sale of the "
> + "product."),
> + }
>
> === added file 'dos_services_to_invoice/models/sale.py'
> --- dos_services_to_invoice/models/sale.py 1970-01-01 00:00:00 +0000
> +++ dos_services_to_invoice/models/sale.py 2014-06-25 13:59:59 +0000
> @@ -0,0 +1,118 @@
> +# -*- coding: utf-8 -*-
> +##############################################################################
> +#
> +# OpenERP, Open Source Management Solution
> +# Copyright (C) 2004-2010 DOS (<http://www.dos-sl.es>).
> +#
> +# This program is free software: you can redistribute it and/or modify
> +# it under the terms of the GNU Affero General Public License as
> +# published by the Free Software Foundation, either version 3 of the
> +# License, or (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU Affero General Public License for more details.
> +#
> +# You should have received a copy of the GNU Affero General Public License
> +# along with this program. If not, see <http://www.gnu.org/licenses/>.
> +#
> +##############################################################################
> +
> +from openerp.osv import orm, fields
> +from openerp.tools.translate import _
> +from . import time
import time
> +
> +
> +class SaleOrder(orm.Model):
> + _inherit = 'sale.order'
> +
> + def action_ship_create(self, cr, uid, ids, *args):
> + result = super(SaleOrder, self).action_ship_create(cr, uid, ids, *args)
> + stock_move_obj = self.pool['stock.move']
> + for order in self.browse(cr, uid, ids, context={}):
> + output_id = order.shop_id.warehouse_id.lot_rented_id.id
> + for line in order.order_line:
> + # Si el producto es alquilado
> + if line.rented:
> + # Buscamos líneas de albarán generadas del pedido
> + condition = [('sale_line_id', '=', line.id)]
> + stock_move_ids = stock_move_obj.search(cr, uid, condition)
> + # Modificamos líneas de albarán con ubicación de alquilados
> + vals = {'location_dest_id': output_id}
> + stock_move_obj.write(cr, uid, stock_move_ids, vals)
> + return result
> +
> +
> +class SaleOrderLine(orm.Model):
> + _inherit = 'sale.order.line'
> +
> + _columns = {
> + 'rented': fields.boolean('Rental', select=True, help="Indicates if "
> + "the product is going to be rented."),
> + }
> +
> + def rented_change(self, cr, uid, ids, product_id, contract_id=False,
> + num_cabins=0, rented=False):
> + result = {}
> + domain = {}
> + warning = {}
> + result['price_unit'] = False
> + result['discount'] = False
> + if product_id and contract_id:
> + product_obj = self.pool['product.product']
> + contract_obj = self.pool['contract.contract']
> + product = product_obj.browse(cr, uid, product_id)
> + contract = contract_obj.browse(cr, uid, contract_id)
> + # Precio producto si es una sim
> + if product_obj._is_sim(product.categ_id):
> + # Obtenemos precios segun reglas definidas
> + fixedprice = contract_obj.get_fixed_price(cr, uid, contract.id,
> + product.id)
> + extcabinprice = contract_obj.get_extra_cabin_price(
> + cr, uid, contract.id, product.id)
> + diff_price = contract_obj.get_differential_price(
> + cr, uid, contract.id, product.id)
> + price_cabins = num_cabins > 1 and ((num_cabins - 1) *
> + extcabinprice) or 0
> + price_unit = fixedprice + price_cabins
> + discount = diff_price or 0
> + # Precio producto si es un enlace
> + elif product_obj._is_link(product.categ_id):
> + # Obtenemos precios segun reglas definidas
> + fixlink_price = contract_obj.get_fixed_link_price(
> + cr, uid, contract.id, None, product.id)
> + lkprice = contract_obj.get_differential_link_price(
> + cr, uid, contract.id, None, product.id)
> + price_unit = fixlink_price or product.list_price
> + # El tipo de venta no es un requisito para aplicar el descuento
> + # discount = rented and differential_link_price or 0
> + discount = lkprice or 0
> + # Precio producto si es un pack
> + elif product_obj._is_pack(product.categ_id):
> + prodsim_id, prodlink_id = product_obj.pack_components(product)
> + # Obtenemos precios segun reglas definidas
> + fixedprice = contract_obj.get_fixed_price(
> + cr, uid, contract.id, prodsim_id, prodlink_id)
> + cabin_price = contract_obj.get_extra_cabin_price(
> + cr, uid, contract.id, prodsim_id, prodlink_id)
> + diff_price = contract_obj.get_differential_price(
> + cr, uid, contract.id, prodsim_id, prodlink_id)
> + fixlinkprice = contract_obj.get_fixed_link_price(
> + cr, uid, contract.id, prodsim_id, prodlink_id)
> + dlprice = contract_obj.get_differential_link_price(
> + cr, uid, contract.id, prodsim_id, prodlink_id)
> + extra_cabin = ((num_cabins - 1) * cabin_price)
> + price_cabins = num_cabins > 1 and extra_cabin or 0
> + price_sim = fixedprice + price_cabins
> + price_sim = price_sim - (price_sim * diff_price / 100)
> + price_link = fixlinkprice or product.list_price
> + # El tipo de venta no es un requisito para aplicar el descuento
> + # if rented:
> + price_link2 = (price_link * dlprice / 100)
> + price_link = price_link - price_link2
> + price_unit = price_sim + price_link
> + discount = 0
> + result['price_unit'] = price_unit
> + result['discount'] = discount
> + return {'value': result, 'domain': domain, 'warning': warning}
>
> === removed file 'dos_services_to_invoice/product.py'
> --- dos_services_to_invoice/product.py 2014-06-11 10:23:47 +0000
> +++ dos_services_to_invoice/product.py 1970-01-01 00:00:00 +0000
> @@ -1,35 +0,0 @@
> -# -*- coding: utf-8 -*-
> -##############################################################################
> -#
> -# OpenERP, Open Source Management Solution
> -# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
> -#
> -# This program is free software: you can redistribute it and/or modify
> -# it under the terms of the GNU Affero General Public License as
> -# published by the Free Software Foundation, either version 3 of the
> -# License, or (at your option) any later version.
> -#
> -# This program is distributed in the hope that it will be useful,
> -# but WITHOUT ANY WARRANTY; without even the implied warranty of
> -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> -# GNU Affero General Public License for more details.
> -#
> -# You should have received a copy of the GNU Affero General Public License
> -# along with this program. If not, see <http://www.gnu.org/licenses/>.
> -#
> -##############################################################################
> -
> -from osv import osv, fields
> -import re
> -from tools.translate import _
> -
> -class product_product(osv.osv):
> -
> - _name = 'product.product'
> - _inherit = 'product.product'
> -
> - _columns = {
> - 'product_services_ids': fields.many2many('product.product', 'product_services_rel', 'product_id', 'product_service_id', 'Services', help="This is the list of services to be invoiced after the sale of the product."),
> - }
> -
> -product_product()
>
> === removed file 'dos_services_to_invoice/product_view.xml'
> --- dos_services_to_invoice/product_view.xml 2014-06-11 10:23:47 +0000
> +++ dos_services_to_invoice/product_view.xml 1970-01-01 00:00:00 +0000
> @@ -1,24 +0,0 @@
> -<?xml version="1.0"?>
> -<openerp>
> - <data>
> -
> - <!-- Product Inherit Form View -->
> - <record id="view_product_services_form" model="ir.ui.view">
> - <field name="name">product.services.form</field>
> - <field name="model">product.product</field>
> - <field name="inherit_id" ref="product.product_normal_form_view"/>
> - <field name="type">form</field>
> - <field name="arch" type="xml">
> - <page string="Packaging" position="after">
> - <page string="Services">
> - <field name="product_services_ids"
> - colspan="4"
> - domain="[('type','=','service')]"
> - nolabel="1"
> - />
> - </page>
> - </page>
> - </field>
> - </record>
> - </data>
> -</openerp>
>
> === removed file 'dos_services_to_invoice/sale.py'
> --- dos_services_to_invoice/sale.py 2014-06-11 10:23:47 +0000
> +++ dos_services_to_invoice/sale.py 1970-01-01 00:00:00 +0000
> @@ -1,46 +0,0 @@
> -# -*- coding: utf-8 -*-
> -##############################################################################
> -#
> -# OpenERP, Open Source Management Solution
> -# Copyright (C) 2004-2010 DOS (<http://www.dos-sl.es>).
> -#
> -# This program is free software: you can redistribute it and/or modify
> -# it under the terms of the GNU Affero General Public License as
> -# published by the Free Software Foundation, either version 3 of the
> -# License, or (at your option) any later version.
> -#
> -# This program is distributed in the hope that it will be useful,
> -# but WITHOUT ANY WARRANTY; without even the implied warranty of
> -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> -# GNU Affero General Public License for more details.
> -#
> -# You should have received a copy of the GNU Affero General Public License
> -# along with this program. If not, see <http://www.gnu.org/licenses/>.
> -#
> -##############################################################################
> -
> -from osv import osv
> -from osv import fields
> -from tools.translate import _
> -
> -
> -class sale_order(osv.osv):
> -
> - _inherit ="sale.order"
> -
> -
> - def action_ship_create(self, cr, uid, ids, *args):
> - result = super(sale_order, self).action_ship_create(cr, uid, ids, *args)
> - stock_move_obj = self.pool.get('stock.move')
> - for order in self.browse(cr, uid, ids, context={}):
> - output_id = order.shop_id.warehouse_id.lot_rented_id.id
> - for line in order.order_line:
> - #Si el producto es alquilado
> - if line.rented:
> - #Buscamos líneas de albarán generadas del pedido
> - stock_move_ids = stock_move_obj.search(cr, uid, [('sale_line_id', '=', line.id)])
> - #Modificamos líneas de albarán con ubicación de alquilados
> - stock_move_obj.write(cr, uid, stock_move_ids, {'location_dest_id': output_id})
> - return result
> -
> -sale_order()
> \ No newline at end of file
>
> === removed file 'dos_services_to_invoice/sale_order_line.py'
> --- dos_services_to_invoice/sale_order_line.py 2014-06-11 10:23:47 +0000
> +++ dos_services_to_invoice/sale_order_line.py 1970-01-01 00:00:00 +0000
> @@ -1,116 +0,0 @@
> -# -*- coding: utf-8 -*-
> -##############################################################################
> -#
> -# OpenERP, Open Source Management Solution
> -# Copyright (C) 2004-2010 DOS (<http://www.dos-sl.es>).
> -#
> -# This program is free software: you can redistribute it and/or modify
> -# it under the terms of the GNU Affero General Public License as
> -# published by the Free Software Foundation, either version 3 of the
> -# License, or (at your option) any later version.
> -#
> -# This program is distributed in the hope that it will be useful,
> -# but WITHOUT ANY WARRANTY; without even the implied warranty of
> -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> -# GNU Affero General Public License for more details.
> -#
> -# You should have received a copy of the GNU Affero General Public License
> -# along with this program. If not, see <http://www.gnu.org/licenses/>.
> -#
> -##############################################################################
> -
> -from osv import osv
> -from osv import fields
> -from tools.translate import _
> -import time
> -
> -class sale_order_line(osv.osv):
> -
> - _name = 'sale.order.line'
> - _inherit = 'sale.order.line'
> -
> - _columns = {
> - 'rented': fields.boolean('Rental', select=True, help="Indicates if the product is going to be rented."),
> - }
> -
> - def rented_change(self, cr, uid, ids, product_id, contract_id=False, num_cabins=0, rented=False):
> -
> - result = {}
> - domain = {}
> - warning = {}
> -
> - result['price_unit'] = False
> - result['discount'] = False
> -
> - if product_id and contract_id:
> -
> - product_obj = self.pool.get('product.product')
> - contract_obj = self.pool.get('contract.contract')
> -
> - product = product_obj.browse(cr, uid, product_id)
> - contract = contract_obj.browse(cr, uid, contract_id)
> -
> - # Precio producto si es una sim
> - if product_obj._is_sim(product.categ_id):
> - #Obtenemos precios segun reglas definidas
> - fixed_price = contract_obj.get_fixed_price(cr, uid, contract.id, product.id)
> - extra_cabin_price = contract_obj.get_extra_cabin_price(cr, uid, contract.id, product.id)
> - differential_price = contract_obj.get_differential_price(cr, uid, contract.id, product.id)
> -
> - price_cabins = num_cabins > 1 and ((num_cabins -1) * extra_cabin_price) or 0
> - price_unit = fixed_price + price_cabins
> - discount = differential_price or 0
> -
> - # Precio producto si es un enlace
> - elif product_obj._is_link(product.categ_id):
> - #Obtenemos precios segun reglas definidas
> - fixed_link_price = contract_obj.get_fixed_link_price(cr, uid, contract.id, None, product.id)
> - differential_link_price = contract_obj.get_differential_link_price(cr, uid, contract.id, None, product.id)
> -
> - price_unit = fixed_link_price or product.list_price
> -
> - # El tipo de venta no es un requisito para aplicar el descuento
> - # discount = rented and differential_link_price or 0
> - discount = differential_link_price or 0
> -
> - # Precio producto si es un pack
> - elif product_obj._is_pack(product.categ_id):
> -
> - product_sim_id, product_link_id = product_obj.pack_components(product)
> -
> - #Obtenemos precios segun reglas definidas
> - fixed_price = contract_obj.get_fixed_price(cr, uid, contract.id, product_sim_id, product_link_id)
> - extra_cabin_price = contract_obj.get_extra_cabin_price(cr, uid, contract.id, product_sim_id, product_link_id)
> - differential_price = contract_obj.get_differential_price(cr, uid, contract.id, product_sim_id, product_link_id)
> - fixed_link_price = contract_obj.get_fixed_link_price(cr, uid, contract.id, product_sim_id, product_link_id)
> - differential_link_price = contract_obj.get_differential_link_price(cr, uid, contract.id, product_sim_id, product_link_id)
> -
> - price_cabins = num_cabins > 1 and ((num_cabins -1) * extra_cabin_price) or 0
> - price_sim = fixed_price + price_cabins
> - price_sim = price_sim - (price_sim * differential_price / 100)
> -
> - price_link = fixed_link_price or product.list_price
> -
> - # El tipo de venta no es un requisito para aplicar el descuento
> - # if rented:
> - price_link = price_link - (price_link * differential_link_price / 100)
> -
> - price_unit = price_sim + price_link
> - discount = 0
> -
> -
> - result['price_unit'] = price_unit
> - result['discount'] = discount
> -
> - return {'value': result, 'domain': domain, 'warning': warning}
> -
> -sale_order_line()
> -
> -
> -
> -
> -
> -
> -
> -
> -
>
> === removed file 'dos_services_to_invoice/sale_order_line_view.xml'
> --- dos_services_to_invoice/sale_order_line_view.xml 2014-06-11 10:23:47 +0000
> +++ dos_services_to_invoice/sale_order_line_view.xml 1970-01-01 00:00:00 +0000
> @@ -1,23 +0,0 @@
> -<?xml version="1.0"?>
> -<openerp>
> - <data>
> -
> - <!-- Sale Order Inherit Form View -->
> - <record model="ir.ui.view" id="view_order_rented_line_form_inherit">
> - <field name="name">sale.order.rended.line.form.inherit</field>
> - <field name="model">sale.order</field>
> - <field name="inherit_id" ref="sale_layout.view_order_form_inherit_1"/>
> - <field name="type">form</field>
> - <field name="priority">1</field>
> - <field name="arch" type="xml">
> - <xpath expr="/form/notebook/page/field[@name='abstract_line_ids']/form/notebook/page/field[@name='product_packaging']" position="after">
> - <field name="rented" on_change="rented_change(product_id, parent.contract_id, num_cabins, rented)" />
> - </xpath>
> - <xpath expr="/form/notebook/page/field[@name='abstract_line_ids']/tree/field[@name='price_subtotal']" position="after">
> - <field name="rented" />
> - </xpath>
> - </field>
> - </record>
> -
> - </data>
> -</openerp>
>
> === added directory 'dos_services_to_invoice/views'
> === added file 'dos_services_to_invoice/views/product_view.xml'
> --- dos_services_to_invoice/views/product_view.xml 1970-01-01 00:00:00 +0000
> +++ dos_services_to_invoice/views/product_view.xml 2014-06-25 13:59:59 +0000
> @@ -0,0 +1,20 @@
> +<?xml version="1.0"?>
> +<openerp>
> + <data>
> +
> + <!-- Product Inherit Form View -->
> + <record id="view_product_services_form" model="ir.ui.view">
> + <field name="name">product.services.form</field>
> + <field name="model">product.product</field>
> + <field name="inherit_id" ref="product.product_normal_form_view"/>
> + <field name="arch" type="xml">
> + <page string="Packaging" position="after">
> + <page string="Services">
> + <field name="product_services_ids" colspan="4"
> + domain="[('type','=','service')]" nolabel="1" />
> + </page>
> + </page>
> + </field>
> + </record>
> + </data>
> +</openerp>
>
> === added file 'dos_services_to_invoice/views/sale_order_line_view.xml'
> --- dos_services_to_invoice/views/sale_order_line_view.xml 1970-01-01 00:00:00 +0000
> +++ dos_services_to_invoice/views/sale_order_line_view.xml 2014-06-25 13:59:59 +0000
> @@ -0,0 +1,22 @@
> +<?xml version="1.0"?>
> +<openerp>
> + <data>
> +
> + <!-- Sale Order Inherit Form View -->
> + <record model="ir.ui.view" id="view_order_rented_line_form_inherit">
> + <field name="name">sale.order.rended.line.form.inherit</field>
> + <field name="model">sale.order</field>
> + <field name="inherit_id" ref="sale_layout.view_order_form_inherit_1"/>
> + <field name="priority">1</field>
> + <field name="arch" type="xml">
> + <field name="product_packaging" position="after">
> + <field name="rented" on_change="rented_change(product_id, parent.contract_id, num_cabins, rented)" />
> + </field>
> + <field name="price_subtotal" position="after">
> + <field name="rented" />
> + </field>
> + </field>
> + </record>
> +
> + </data>
> +</openerp>
>
--
https://code.launchpad.net/~alfredodelafuente/avanzosc/dos_services_to_invoice/+merge/224422
Your team Avanzosc_security is subscribed to branch lp:~avanzosc-security-team/avanzosc/72horas.
Follow ups
References