diff options
| author | IT Fixcomart <it@fixcomart.co.id> | 2022-11-15 17:36:32 +0700 |
|---|---|---|
| committer | IT Fixcomart <it@fixcomart.co.id> | 2022-11-15 17:36:32 +0700 |
| commit | 5102c2a866daec248e3903fbfb7b8bd87bb0ef52 (patch) | |
| tree | 71c2d34088308a67d43b9780b9d3a94ee870ffab /indoteknik_custom/models/stock_picking.py | |
| parent | f6671dd4595af3c1075b27925f10c457854cecf8 (diff) | |
| parent | 9d0dbdfe0e08ecab850860fa2b23ffb64fa6dae1 (diff) | |
Merge branch 'master' of bitbucket.org:altafixco/indoteknik-addons
Diffstat (limited to 'indoteknik_custom/models/stock_picking.py')
| -rw-r--r-- | indoteknik_custom/models/stock_picking.py | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py index d016e241..2bdfbd9e 100644 --- a/indoteknik_custom/models/stock_picking.py +++ b/indoteknik_custom/models/stock_picking.py @@ -50,7 +50,12 @@ class StockPicking(models.Model): approval_status = fields.Selection([ ('pengajuan1', 'Approval Accounting'), ('approved', 'Approved'), - ], string='Approval Status', readonly=True, copy=False, index=True, tracking=3) + ], string='Approval Status', readonly=True, copy=False, index=True, tracking=3, help="Approval Status untuk Internal Use") + + approval_return_status = fields.Selection([ + ('pengajuan1', 'Approval Accounting'), + ('approved', 'Approved'), + ], string='Approval Return Status', readonly=True, copy=False, index=True, tracking=3, help="Approval Status untuk Return") def action_assign(self): res = super(StockPicking, self).action_assign() @@ -68,6 +73,13 @@ class StockPicking(models.Model): raise UserError("Qty tidak boleh 0") pick.approval_status = 'pengajuan1' + def ask_return_approval(self): + for pick in self: + if self.env.user.is_accounting: + pick.approval_return_status = 'approved' + else: + pick.approval_return_status = 'pengajuan1' + def calculate_line_no(self): line_no = 0 for picking in self: @@ -99,11 +111,18 @@ class StockPicking(models.Model): def button_validate(self): if not self.picking_code: self.picking_code = self.env['ir.sequence'].next_by_code('stock.picking.code') or '0' - + if self.picking_type_id.code == 'incoming' and self.group_id.id == False and self.is_internal_use == False: raise UserError(_('Tidak bisa Validate jika tidak dari Document SO / PO')) + if self.is_internal_use and not self.env.user.is_accounting: raise UserError("Harus di Approve oleh Accounting") + + for line in self.move_line_ids_without_package: + if line.move_id.sale_line_id and self.picking_type_id.code == 'outgoing': + if line.move_id.sale_line_id.qty_delivered + line.qty_done > line.move_id.sale_line_id.product_uom_qty: + raise UserError("Qty Delivered akan lebih dari Qty SO") + res = super(StockPicking, self).button_validate() return res |
