summaryrefslogtreecommitdiff
path: root/fixco_custom/models/stock_picking.py
diff options
context:
space:
mode:
Diffstat (limited to 'fixco_custom/models/stock_picking.py')
-rwxr-xr-xfixco_custom/models/stock_picking.py31
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
+ }