diff options
| -rw-r--r-- | indoteknik_api/controllers/api_v1/stock_picking.py | 7 | ||||
| -rw-r--r-- | indoteknik_custom/models/stock_picking.py | 14 |
2 files changed, 17 insertions, 4 deletions
diff --git a/indoteknik_api/controllers/api_v1/stock_picking.py b/indoteknik_api/controllers/api_v1/stock_picking.py index a4a9cf80..7f878ad2 100644 --- a/indoteknik_api/controllers/api_v1/stock_picking.py +++ b/indoteknik_api/controllers/api_v1/stock_picking.py @@ -136,16 +136,15 @@ class StockPicking(controller.Controller): } dispatch_emails = { 'rahmat.afiudin@gmail.com', - 'it@fixcomart.co.id' + 'indraprtama60@gmail.com' } login = (request.env.user.login or '').lower() is_dispatch_user = login in dispatch_emails is_driver_user = (login in driver_emails) and not is_dispatch_user - # ===== Validasi minimal ===== - if not sj_document or not paket_document: - return self.response(code=400, description='dispatch_document wajib untuk role dispatch login= %s' % login) + # if not sj_document or not paket_document: + # return self.response(code=400, description='dispatch_document wajib untuk role dispatch login= %s' % login) # if is_dispatch_user and not dispatch_document and not is_driver_user: # return self.response(code=400, description='dispatch_document wajib untuk role dispatch login= %s' % login) diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py index b27e6b5d..51f4cccd 100644 --- a/indoteknik_custom/models/stock_picking.py +++ b/indoteknik_custom/models/stock_picking.py @@ -97,6 +97,7 @@ class StockPicking(models.Model): approval_status = fields.Selection([ ('pengajuan1', 'Approval Accounting'), + ('pengajuan2', 'Approval Logistic'), ('approved', 'Approved'), ], string='Approval Status', readonly=True, copy=False, index=True, tracking=3, help="Approval Status untuk Internal Use") @@ -1082,6 +1083,10 @@ class StockPicking(models.Model): def ask_approval(self): if self.env.user.is_accounting: raise UserError("Bisa langsung Validate") + if self.env.user.is_logistic_approver and self.location_id.id == 57 or self.location_id== 57: + raise UserError("Bisa langsung Validate") + + # for calendar distribute only # if self.is_internal_use: @@ -1104,6 +1109,9 @@ class StockPicking(models.Model): if line.qty_done <= 0: raise UserError("Qty tidak boleh 0") pick.approval_status = 'pengajuan1' + if pick.location_id.id == 57: + pick.approval_status = 'pengajuan2' + return def ask_receipt_approval(self): if self.env.user.is_logistic_approver: @@ -1306,6 +1314,9 @@ class StockPicking(models.Model): 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_logistic_approver and self.location_id.id == 57: + raise UserError("Harus di Approve oleh Logistik") + if self.is_internal_use and not self.env.user.is_accounting: raise UserError("Harus di Approve oleh Accounting") @@ -1348,6 +1359,9 @@ class StockPicking(models.Model): ) self.validation_minus_onhand_quantity() + loc = self.location_id + if loc.id == 57 and not self.env.user.is_logistic_approver and self.approval_status in ['pengajuan2']: + raise UserError ("Harus Ask Approval Logistik") self.responsible = self.env.user.id # self.send_koli_to_so() if self.picking_type_code == 'outgoing' and 'BU/OUT/' in self.name: |
