From 28be3e4e6a777eae5b88c99f4a857fbc207e31a5 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Fri, 29 May 2020 23:21:54 +0200 Subject: [PATCH] First working version of service_line_qty_update_* --- .../wizard/service_qty_update.py | 14 +++++++------- .../wizard/service_qty_update_view.xml | 13 ++++++++----- service_line_qty_update_purchase/__manifest__.py | 6 +++++- .../views/purchase_order.xml | 2 +- .../wizard/service_qty_update.py | 12 ++++++++---- 5 files changed, 29 insertions(+), 18 deletions(-) diff --git a/service_line_qty_update_base/wizard/service_qty_update.py b/service_line_qty_update_base/wizard/service_qty_update.py index 7358e47..711587d 100644 --- a/service_line_qty_update_base/wizard/service_qty_update.py +++ b/service_line_qty_update_base/wizard/service_qty_update.py @@ -18,7 +18,7 @@ class ServiceQtyUpdate(models.TransientModel): def run(self): self.ensure_one() prec = self.env['decimal.precision'].precision_get('Product Unit of Measure') - for line in self: + for line in self.line_ids: if float_compare(line.post_delivered_qty, line.order_qty, precision_digits=prec) > 0: raise UserError(_( "On line '%s', the total delivered qty (%s) is superior to the ordered qty (%s).") % (line.name, line.post_delivered_qty, line.order_qty)) @@ -38,15 +38,15 @@ class ServiceQtyUpdateLine(models.TransientModel): parent_id = fields.Many2one( 'service.qty.update', string='Wizard', ondelete='cascade') product_id = fields.Many2one('product.product', string='Product', readonly=True) - name = fields.Char(string='Description', readonly=True) + name = fields.Char() + name_readonly = fields.Char(related='name', string='Description') order_qty = fields.Float( string='Order Qty', - digits=dp.get_precision('Product Unit of Measure'), - readonly=True) + digits=dp.get_precision('Product Unit of Measure')) + order_qty_readonly = fields.Float(related='order_qty', string='Product Unit of Measure') pre_delivered_qty = fields.Float( - string='Current Delivered Qty', - digits=dp.get_precision('Product Unit of Measure'), - readonly=True) + digits=dp.get_precision('Product Unit of Measure')) + pre_delivered_qty_readonly = fields.Float(related='pre_delivered_qty', string='Current Delivered Qty') added_delivered_qty = fields.Float( string='Added Delivered Qty', digits=dp.get_precision('Product Unit of Measure')) diff --git a/service_line_qty_update_base/wizard/service_qty_update_view.xml b/service_line_qty_update_base/wizard/service_qty_update_view.xml index 6965cee..2593996 100644 --- a/service_line_qty_update_base/wizard/service_qty_update_view.xml +++ b/service_line_qty_update_base/wizard/service_qty_update_view.xml @@ -13,12 +13,15 @@
- - + + - - - + + + + + + diff --git a/service_line_qty_update_purchase/__manifest__.py b/service_line_qty_update_purchase/__manifest__.py index 554df7f..9711efe 100644 --- a/service_line_qty_update_purchase/__manifest__.py +++ b/service_line_qty_update_purchase/__manifest__.py @@ -10,7 +10,11 @@ 'summary': 'Update delivery qty on service lines - Purchase module', 'author': 'Akretion', 'website': 'http://www.akretion.com', - 'depends': ['purchase'], + 'depends': [ + 'purchase', + 'service_line_qty_update_base', + 'purchase_reception_status', + ], 'data': [ 'views/purchase_order.xml', ], diff --git a/service_line_qty_update_purchase/views/purchase_order.xml b/service_line_qty_update_purchase/views/purchase_order.xml index 1937f8d..d0e0dc1 100644 --- a/service_line_qty_update_purchase/views/purchase_order.xml +++ b/service_line_qty_update_purchase/views/purchase_order.xml @@ -14,7 +14,7 @@ diff --git a/service_line_qty_update_purchase/wizard/service_qty_update.py b/service_line_qty_update_purchase/wizard/service_qty_update.py index e167f48..de31e0c 100644 --- a/service_line_qty_update_purchase/wizard/service_qty_update.py +++ b/service_line_qty_update_purchase/wizard/service_qty_update.py @@ -24,8 +24,11 @@ class ServiceQtyUpdate(models.TransientModel): 'purchase_line_id': l.id, 'product_id': l.product_id.id, 'name': l.name, + 'name_readonly': l.name, 'order_qty': l.product_qty, + 'order_qty_readonly': l.product_qty, 'pre_delivered_qty': l.qty_received, + 'pre_delivered_qty_readonly': l.qty_received, 'uom_id': l.product_uom.id, })) if lines: @@ -44,14 +47,15 @@ class ServiceQtyUpdateLine(models.TransientModel): def process_line(self): po_line = self.purchase_line_id if po_line: - po_line.write({'qty_received': self.post_delivered_qty}) + new_qty = po_line.qty_received + self.added_delivered_qty + po_line.write({'qty_received': new_qty}) body = """ -

Received qty updated on service line %s: +

Received qty updated on service line %s:

    -
  • Added received qty: %s
  • +
  • Added received qty: %s
  • Total received qty: %s

- """ % (self.added_delivered_qty, self.post_delivered_qty) + """ % (self.name, self.added_delivered_qty, new_qty) if self.comment: body += '

Comment: %s

' % self.comment po_line.order_id.message_post(body=body)