diff options
Diffstat (limited to 'fixco_custom/models/stock_picking.py')
| -rwxr-xr-x | fixco_custom/models/stock_picking.py | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/fixco_custom/models/stock_picking.py b/fixco_custom/models/stock_picking.py index 5c432b0..11e24a6 100755 --- a/fixco_custom/models/stock_picking.py +++ b/fixco_custom/models/stock_picking.py @@ -50,6 +50,25 @@ class StockPicking(models.Model): store=True ) + def button_validate(self): + checked_products = self.mapped('check_product_lines').mapped('product_id') + picking_lines = self.move_line_ids_without_package + + missing_products = [ + line.product_id.display_name + for line in picking_lines + if line.product_id not in checked_products + ] + + if missing_products: + raise UserError(_( + "Product ini belum discan:\n- %s" + % "\n- ".join(missing_products) + )) + + return super(StockPicking, self).button_validate() + + @api.depends('move_lines.origin_returned_move_id') def _compute_is_return(self): for picking in self: @@ -493,12 +512,18 @@ class PickingReportCustom(models.AbstractModel): def _get_report_values(self, docids, data=None): pickings = self.env['stock.picking'].browse(docids) - - # Update flag is_printed jadi True + already_printed = pickings.filtered(lambda p: p.is_printed) + + if already_printed: + names = "\n- ".join(already_printed.mapped("name")) + raise UserError( + "Dokumen berikut sudah pernah di-print sebelumnya:\n\n- %s" % names + ) + pickings.write({'is_printed': True}) return { 'doc_ids': docids, 'doc_model': 'stock.picking', 'docs': pickings, - }
\ No newline at end of file + } |
