diff options
| author | Yannick Tivisse <yti@odoo.com> | 2016-04-06 13:49:07 +0200 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2016-04-07 10:08:19 +0200 |
| commit | 78e0313f3e8c2ef3de6b643b4fcff0ca40f06edc (patch) | |
| tree | 24918129c04ac0131613874eb7f34d2c0f1beea0 /addons | |
| parent | 91163236cad2db749ed00dc02b89b3e355d43585 (diff) | |
[MOV] stock: Move stock part from warning module
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/stock/partner.py | 7 | ||||
| -rw-r--r-- | addons/stock/partner_view.xml | 16 | ||||
| -rw-r--r-- | addons/stock/stock.py | 29 |
3 files changed, 51 insertions, 1 deletions
diff --git a/addons/stock/partner.py b/addons/stock/partner.py index 917c5de1ce9..6b424f83deb 100644 --- a/addons/stock/partner.py +++ b/addons/stock/partner.py @@ -2,6 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from openerp.osv import fields, osv +from openerp.addons.base.res.res_partner import WARNING_MESSAGE, WARNING_HELP class res_partner(osv.osv): _inherit = 'res.partner' @@ -16,4 +17,10 @@ class res_partner(osv.osv): relation='stock.location', string="Vendor Location", help="This stock location will be used, instead of the default one, as the source location for goods you receive from the current partner"), + 'picking_warn' : fields.selection(WARNING_MESSAGE, 'Stock Picking', help=WARNING_HELP, required=True), + 'picking_warn_msg' : fields.text('Message for Stock Picking'), + } + + _defaults = { + 'picking_warn': 'no-message', } diff --git a/addons/stock/partner_view.xml b/addons/stock/partner_view.xml index 761361e6676..750f64c7dd2 100644 --- a/addons/stock/partner_view.xml +++ b/addons/stock/partner_view.xml @@ -21,5 +21,21 @@ </field> </record> + <record id="view_partner_stock_warnings_form" model="ir.ui.view"> + <field name="name">res.partner.stock.warning</field> + <field name="model">res.partner</field> + <field name="inherit_id" ref="base.view_partner_form"/> + <field name="arch" type="xml"> + <page name="warnings" position="inside"> + <group colspan="2" col="2"> + <separator string="Warning on the Picking" colspan="4"/> + <field name="picking_warn" nolabel="1" /> + <field name="picking_warn_msg" colspan="3" nolabel="1" + attrs="{'required':[('picking_warn','!=','no-message')],'readonly':[('picking_warn','=','no-message')]}"/> + </group> + </page> + </field> + </record> + </data> </openerp> diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 5be3493852a..4575fc97c4f 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -914,9 +914,36 @@ class stock_picking(models.Model): location_dest_id = picking_type.default_location_dest_id.id res['value'] = {'location_id': location_id, - 'location_dest_id': location_dest_id,} + 'location_dest_id': location_dest_id} + + if partner_id: + warning = {} + title = False + message = False + partner = self.pool['res.partner'].browse(cr, uid, partner_id, context=context) + + # If partner has no warning, check its company + if partner.picking_warn == 'no-message' and partner.parent_id: + partner = partner.parent_id + + if partner.picking_warn != 'no-message': + # Block if partner only has warning but parent company is blocked + if partner.picking_warn != 'block' and partner.parent_id and partner.parent_id.picking_warn == 'block': + partner = partner.parent_id + title = _("Warning for %s") % partner.name + message = partner.picking_warn_msg + warning = { + 'title': title, + 'message': message + } + if partner.picking_warn == 'block': + return {'value': {'partner_id': False}, 'warning': warning} + return {'warning': warning} + return res + + def _default_location_destination(self): # retrieve picking type from context; if none this returns an empty recordset picking_type_id = self._context.get('default_picking_type_id') |
