summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/stock_picking.py
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2024-11-11 16:16:45 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2024-11-11 16:16:45 +0700
commitd8dd0813ff6760e4a06968967594d27c6fd3b9d5 (patch)
tree264a18adb5e15c3ecd80b4790451698bbc6947d0 /indoteknik_custom/models/stock_picking.py
parent17d46cf9f4eede8177b2373c03d5b36123f712c1 (diff)
parent4be403f544f63a5161275f0d600c6f6950f3a30c (diff)
Merge branch 'approval_retur_picking' into production
# Conflicts: # indoteknik_custom/models/requisition.py # indoteknik_custom/views/requisition.xml
Diffstat (limited to 'indoteknik_custom/models/stock_picking.py')
-rw-r--r--indoteknik_custom/models/stock_picking.py32
1 files changed, 30 insertions, 2 deletions
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index 1906dae0..ef26e002 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -104,6 +104,7 @@ class StockPicking(models.Model):
('to invoice', 'To Invoice'),
('no', 'Nothing to Invoice')
], string='Invoice Status', related="sale_id.invoice_status")
+ note_return = fields.Text(string="Note Return", help="Catatan untuk kirim barang kembali")
state_reserve = fields.Selection([
('waiting', 'Waiting For Fullfilment'),
@@ -441,9 +442,28 @@ class StockPicking(models.Model):
if self.env.user.is_accounting:
pick.approval_return_status = 'approved'
else:
- pick.approval_return_status = 'pengajuan1'
+ if self.picking_type_code == 'outgoing':
+ if self.env.user.id in [3988, 3401, 20]:
+ action = self.env['ir.actions.act_window']._for_xml_id('indoteknik_custom.action_stock_return_note_wizard')
+ action['context'] = {
+ 'picking_ids': [x.id for x in self]
+ }
+ return action
+ else:
+ raise UserError('Harus Sales Admin yang Ask Return')
+ elif self.picking_type_code == 'incoming':
+ if self.env.user.has_group('indoteknik_custom.group_role_purchasing'):
+ action = self.env['ir.actions.act_window']._for_xml_id('indoteknik_custom.action_stock_return_note_wizard')
+ action['context'] = {
+ 'picking_ids': [x.id for x in self]
+ }
+ return action
+ else:
+ raise UserError('Harus Purchasing yang Ask Return')
+
def calculate_line_no(self):
+
for picking in self:
name = picking.group_id.name
for move in picking.move_ids_without_package:
@@ -500,6 +520,9 @@ class StockPicking(models.Model):
def button_validate(self):
+ if not self.env.user.is_logistic_approver and 'Return of' in self.origin:
+ raise UserError("Button ini hanya untuk Logistik")
+
if self._name != 'stock.picking':
return super(StockPicking, self).button_validate()
@@ -550,6 +573,11 @@ class StockPicking(models.Model):
self.date_done = datetime.datetime.utcnow()
self.state_reserve = 'done'
return res
+ def action_cancel(self):
+ if not self.env.user.is_logistic_approver and 'Return of' in self.origin:
+ raise UserError("Button ini hanya untuk Logistik")
+ res = super(StockPicking, self).action_cancel()
+ return res
@api.model
def create(self, vals):
@@ -685,4 +713,4 @@ class StockPicking(models.Model):
formatted_fastest_eta = fastest_eta.strftime(format_time_fastest)
formatted_longest_eta = longest_eta.strftime(format_time)
- return f'{formatted_fastest_eta} - {formatted_longest_eta}'
+ return f'{formatted_fastest_eta} - {formatted_longest_eta}' \ No newline at end of file