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. -- Mailing list: https://launchpad.net/~avanzosc Post to : [email protected] Unsubscribe : https://launchpad.net/~avanzosc More help : https://help.launchpad.net/ListHelp

