From 12f1df2b2dabd0fba5dc0e2584c9a588c378118c Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Thu, 23 Oct 2025 16:54:58 +0700 Subject: push maintenance partial delivery wizard --- indoteknik_custom/models/sale_order.py | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index a5e2f7c4..5c8f34c6 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -399,20 +399,21 @@ class SaleOrder(models.Model): ) def action_open_partial_delivery_wizard(self): - self.ensure_one() - pickings = self.picking_ids.filtered(lambda p: p.state not in ['done', 'cancel'] and p.name and 'BU/PICK/' in p.name) - return { - 'type': 'ir.actions.act_window', - 'name': 'Partial Delivery', - 'res_model': 'partial.delivery.wizard', - 'view_mode': 'form', - 'target': 'new', - 'context': { - 'default_sale_id': self.id, - # kasih langsung list of int biar ga ribet di wizard - 'default_picking_ids': pickings.ids, - } - } + raise UserError("Fitur ini sedang dalam pengembangan") + # self.ensure_one() + # pickings = self.picking_ids.filtered(lambda p: p.state not in ['done', 'cancel'] and p.name and 'BU/PICK/' in p.name) + # return { + # 'type': 'ir.actions.act_window', + # 'name': 'Partial Delivery', + # 'res_model': 'partial.delivery.wizard', + # 'view_mode': 'form', + # 'target': 'new', + # 'context': { + # 'default_sale_id': self.id, + # # kasih langsung list of int biar ga ribet di wizard + # 'default_picking_ids': pickings.ids, + # } + # } @api.depends('partner_id.is_cbd_locked') -- cgit v1.2.3 From dbb3e64d43a5e5752a31879bc7be88d54c67d11c Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Mon, 27 Oct 2025 08:53:02 +0700 Subject: push fix bug partial delivery --- indoteknik_custom/models/sale_order.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 5c8f34c6..e254ef41 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -399,21 +399,21 @@ class SaleOrder(models.Model): ) def action_open_partial_delivery_wizard(self): - raise UserError("Fitur ini sedang dalam pengembangan") - # self.ensure_one() - # pickings = self.picking_ids.filtered(lambda p: p.state not in ['done', 'cancel'] and p.name and 'BU/PICK/' in p.name) - # return { - # 'type': 'ir.actions.act_window', - # 'name': 'Partial Delivery', - # 'res_model': 'partial.delivery.wizard', - # 'view_mode': 'form', - # 'target': 'new', - # 'context': { - # 'default_sale_id': self.id, - # # kasih langsung list of int biar ga ribet di wizard - # 'default_picking_ids': pickings.ids, - # } - # } + # raise UserError("Fitur ini sedang dalam pengembangan") + self.ensure_one() + pickings = self.picking_ids.filtered(lambda p: p.state not in ['done', 'cancel'] and p.name and 'BU/PICK/' in p.name) + return { + 'type': 'ir.actions.act_window', + 'name': 'Partial Delivery', + 'res_model': 'partial.delivery.wizard', + 'view_mode': 'form', + 'target': 'new', + 'context': { + 'default_sale_id': self.id, + # kasih langsung list of int biar ga ribet di wizard + 'default_picking_ids': pickings.ids, + } + } @api.depends('partner_id.is_cbd_locked') -- cgit v1.2.3 From 2600c00e6944fd3d594fc0bd3a5a7d1e581d7b91 Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Tue, 28 Oct 2025 11:08:55 +0700 Subject: (andri) show internal notes by contact di view SO dan Inv --- indoteknik_custom/models/sale_order.py | 1 + 1 file changed, 1 insertion(+) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index e254ef41..e1fcb88a 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -397,6 +397,7 @@ class SaleOrder(models.Model): string="Partner Locked CBD", compute="_compute_partner_is_cbd_locked" ) + internal_notes_contact = fields.Text(related='partner_id.comment', string="Internal Notes", readonly=True) def action_open_partial_delivery_wizard(self): # raise UserError("Fitur ini sedang dalam pengembangan") -- cgit v1.2.3 From cf4e1d832aff5dc31dd2fcdcc68afb2e22e97e09 Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Tue, 28 Oct 2025 11:09:34 +0700 Subject: (andri) info --- indoteknik_custom/models/sale_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index e1fcb88a..d24725a7 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -397,7 +397,7 @@ class SaleOrder(models.Model): string="Partner Locked CBD", compute="_compute_partner_is_cbd_locked" ) - internal_notes_contact = fields.Text(related='partner_id.comment', string="Internal Notes", readonly=True) + internal_notes_contact = fields.Text(related='partner_id.comment', string="Internal Notes", readonly=True, help="Internal Notes dari contact utama customer.") def action_open_partial_delivery_wizard(self): # raise UserError("Fitur ini sedang dalam pengembangan") -- cgit v1.2.3 From 5d9d801c1aba7f047a16ae6e0ac84655480fadae Mon Sep 17 00:00:00 2001 From: Miqdad Date: Tue, 28 Oct 2025 15:03:51 +0700 Subject: midtrans --- indoteknik_custom/models/sale_order.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index d24725a7..6c144623 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -1986,10 +1986,10 @@ class SaleOrder(models.Model): # raise UserError('Kelurahan Real Delivery Address harus diisi') def generate_payment_link_midtrans_sales_order(self): - midtrans_url = 'https://app.sandbox.midtrans.com/snap/v1/transactions' # dev - sandbox - midtrans_auth = 'Basic U0ItTWlkLXNlcnZlci1uLVY3ZDJjMlpCMFNWRUQyOU95Q1dWWXA6' # dev - sandbox - # midtrans_url = 'https://app.midtrans.com/snap/v1/transactions' # production - # midtrans_auth = 'Basic TWlkLXNlcnZlci1SbGMxZ2gzWGpSVW5scl9JblZzTV9OTnU6' # production + # midtrans_url = 'https://app.sandbox.midtrans.com/snap/v1/transactions' # dev - sandbox + # midtrans_auth = 'Basic U0ItTWlkLXNlcnZlci1uLVY3ZDJjMlpCMFNWRUQyOU95Q1dWWXA6' # dev - sandbox + midtrans_url = 'https://app.midtrans.com/snap/v1/transactions' # production + midtrans_auth = 'Basic TWlkLXNlcnZlci1SbGMxZ2gzWGpSVW5scl9JblZzTV9OTnU6' # production so_number = self.name so_number = so_number.replace('/', '-') @@ -2002,8 +2002,8 @@ class SaleOrder(models.Model): } # ==== ENV ==== - check_url = f'https://api.sandbox.midtrans.com/v2/{so_number}/status' # dev - sandbox - # check_url = f'https://api.midtrans.com/v2/{so_number}/status' # production + # check_url = f'https://api.sandbox.midtrans.com/v2/{so_number}/status' # dev - sandbox + check_url = f'https://api.midtrans.com/v2/{so_number}/status' # production # ============================================= check_response = requests.get(check_url, headers=headers) -- cgit v1.2.3 From 0c7c965fe378ecdf878911088bed19d72947a36f Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Wed, 29 Oct 2025 10:07:11 +0700 Subject: (andri) fix constraint cbdlock --- indoteknik_custom/models/sale_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 6c144623..c99067df 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -423,7 +423,7 @@ class SaleOrder(models.Model): order.partner_is_cbd_locked = order.partner_id.is_cbd_locked - @api.constrains('payment_term_id', 'partner_id', 'state') + @api.constrains('payment_term_id', 'partner_id') def _check_cbd_lock_sale_order(self): cbd_term = self.env['account.payment.term'].browse(26) for rec in self: -- cgit v1.2.3 From b35a287e6c431375458d47407f28ccb3978d0194 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 29 Oct 2025 10:29:20 +0700 Subject: push cr approval so sales admin --- indoteknik_custom/models/sale_order.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index c99067df..7b60863e 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2717,10 +2717,10 @@ class SaleOrder(models.Model): return True if user.id in (3401, 20, 3988, 17340): # admin (fida, nabila, ninda) - return True + raise UserError("Yahaha gabisa confirm so, minta ke sales nya ajah") if self.env.context.get("ask_approval") and user.id in (3401, 20, 3988): - return True + raise UserError("Yahaha gabisa confirm so, minta ke sales nya ajah") salesperson_id = self.user_id.id approver_id = user.id -- cgit v1.2.3 From 099bec753a310ec83ea3562a78c304dffb6d50d8 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Thu, 30 Oct 2025 10:09:00 +0700 Subject: mark partial delivery and delivery status --- indoteknik_custom/models/sale_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 7b60863e..494aeaa2 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2720,7 +2720,7 @@ class SaleOrder(models.Model): raise UserError("Yahaha gabisa confirm so, minta ke sales nya ajah") if self.env.context.get("ask_approval") and user.id in (3401, 20, 3988): - raise UserError("Yahaha gabisa confirm so, minta ke sales nya ajah") + return True salesperson_id = self.user_id.id approver_id = user.id -- cgit v1.2.3 From 9c663e33bebc09d65614c5158c98270e964c9a06 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Thu, 30 Oct 2025 11:15:47 +0700 Subject: fix bug --- indoteknik_custom/models/sale_order.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 494aeaa2..b8de1697 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2716,11 +2716,13 @@ class SaleOrder(models.Model): if user.is_leader or user.is_sales_manager: return True - if user.id in (3401, 20, 3988, 17340): # admin (fida, nabila, ninda) + if not self.env.context.get("ask_approval") and user.id in (3401, 20, 3988, 17340): # admin (fida, nabila, ninda) raise UserError("Yahaha gabisa confirm so, minta ke sales nya ajah") - + if self.env.context.get("ask_approval") and user.id in (3401, 20, 3988): return True + + salesperson_id = self.user_id.id approver_id = user.id -- cgit v1.2.3 From 4bdebe2972657f95b4d40251121c08acef17ab8a Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Fri, 31 Oct 2025 10:13:52 +0700 Subject: big fux --- indoteknik_custom/models/sale_order.py | 2 -- 1 file changed, 2 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index b8de1697..1eba2808 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2722,8 +2722,6 @@ class SaleOrder(models.Model): if self.env.context.get("ask_approval") and user.id in (3401, 20, 3988): return True - - salesperson_id = self.user_id.id approver_id = user.id team_leader_id = self.team_id.user_id.id -- cgit v1.2.3 From cabe184a38a6a96b9557ff7debb2e9165894a7b6 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 5 Nov 2025 14:43:55 +0700 Subject: push --- indoteknik_custom/models/sale_order.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 1eba2808..d7b0ccee 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2342,11 +2342,6 @@ class SaleOrder(models.Model): # return self._create_notification_action('Notification', # 'Terdapat invoice yang telah melewati batas waktu, mohon perbarui pada dokumen Due Extension') - if not order.with_context(ask_approval=True)._is_request_to_own_team_leader(): - return self._create_notification_action( - 'Peringatan', - 'Hanya bisa konfirmasi SO tim Anda.' - ) if order._requires_approval_margin_leader(): order.approval_status = 'pengajuan2' return self._create_approval_notification('Pimpinan') @@ -2362,6 +2357,12 @@ class SaleOrder(models.Model): self.check_limit_so_to_invoice() order.approval_status = 'pengajuan1' return self._create_approval_notification('Team Sales') + + if not order.with_context(ask_approval=True)._is_request_to_own_team_leader(): + return self._create_notification_action( + 'Peringatan', + 'Hanya bisa konfirmasi SO tim Anda.' + ) raise UserError("Bisa langsung Confirm") @@ -2716,11 +2717,12 @@ class SaleOrder(models.Model): if user.is_leader or user.is_sales_manager: return True + if self.env.context.get("ask_approval") and user.id in (3401, 20, 3988): + return True + if not self.env.context.get("ask_approval") and user.id in (3401, 20, 3988, 17340): # admin (fida, nabila, ninda) raise UserError("Yahaha gabisa confirm so, minta ke sales nya ajah") - if self.env.context.get("ask_approval") and user.id in (3401, 20, 3988): - return True salesperson_id = self.user_id.id approver_id = user.id -- cgit v1.2.3 From be3c90b805dec1e178aa8cd70c187c79e3dd8443 Mon Sep 17 00:00:00 2001 From: Miqdad Date: Thu, 6 Nov 2025 10:39:21 +0700 Subject: cr ask approval admin --- indoteknik_custom/models/sale_order.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index d7b0ccee..ff79761c 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2363,6 +2363,15 @@ class SaleOrder(models.Model): 'Peringatan', 'Hanya bisa konfirmasi SO tim Anda.' ) + if self.env.user.id in (3401, 20, 3988, 17340): + if self.total_percent_margin <= 15: + self._requires_approval_margin_leader() + self.approval_status = 'pengajuan2' + elif self.total_percent_margin < 18: + self._requires_approval_margin_manager() + self.approval_status = 'pengajuan1' + elif 18 <= self.total_percent_margin <= 24: + self._requires_approval_team_sales() raise UserError("Bisa langsung Confirm") -- cgit v1.2.3 From af30e94cff35eec4b71cb89fbe7a9a4f654480cb Mon Sep 17 00:00:00 2001 From: Miqdad Date: Thu, 6 Nov 2025 13:40:28 +0700 Subject: cr ask approval admin --- indoteknik_custom/models/sale_order.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index ff79761c..1d07a1ff 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2363,15 +2363,6 @@ class SaleOrder(models.Model): 'Peringatan', 'Hanya bisa konfirmasi SO tim Anda.' ) - if self.env.user.id in (3401, 20, 3988, 17340): - if self.total_percent_margin <= 15: - self._requires_approval_margin_leader() - self.approval_status = 'pengajuan2' - elif self.total_percent_margin < 18: - self._requires_approval_margin_manager() - self.approval_status = 'pengajuan1' - elif 18 <= self.total_percent_margin <= 24: - self._requires_approval_team_sales() raise UserError("Bisa langsung Confirm") @@ -2712,7 +2703,8 @@ class SaleOrder(models.Model): def _requires_approval_team_sales(self): return ( - 18 <= self.total_percent_margin <= 24 + # 18 <= self.total_percent_margin <= 24 + self.total_percent_margin >= 18 and self.env.user.id not in [11, 9, 375] # Eko, Ade, Putra and not self.env.user.is_sales_manager and not self.env.user.is_leader -- cgit v1.2.3 From 3f905516b4b0b6573ebdf67f18582f20b023f7f6 Mon Sep 17 00:00:00 2001 From: Miqdad Date: Thu, 6 Nov 2025 16:32:57 +0700 Subject: update --- indoteknik_custom/models/sale_order.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 1d07a1ff..31662fb4 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2597,7 +2597,7 @@ class SaleOrder(models.Model): order.approval_status = 'pengajuan1' return self._create_approval_notification('Sales Manager') elif order._requires_approval_team_sales(): - order.approval_status = 'pengajuan1' + # order.approval_status = 'pengajuan1' return self._create_approval_notification('Team Sales') order.approval_status = 'approved' @@ -2703,8 +2703,8 @@ class SaleOrder(models.Model): def _requires_approval_team_sales(self): return ( - # 18 <= self.total_percent_margin <= 24 - self.total_percent_margin >= 18 + 18 <= self.total_percent_margin <= 24 + # self.total_percent_margin >= 18 and self.env.user.id not in [11, 9, 375] # Eko, Ade, Putra and not self.env.user.is_sales_manager and not self.env.user.is_leader -- cgit v1.2.3 From 459e34a6f96ed12522036bb12da2e0488581c016 Mon Sep 17 00:00:00 2001 From: Miqdad Date: Fri, 7 Nov 2025 13:16:34 +0700 Subject: CR nathan stock picking --- indoteknik_custom/models/sale_order.py | 1 + 1 file changed, 1 insertion(+) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 31662fb4..ef6318da 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -398,6 +398,7 @@ class SaleOrder(models.Model): compute="_compute_partner_is_cbd_locked" ) internal_notes_contact = fields.Text(related='partner_id.comment', string="Internal Notes", readonly=True, help="Internal Notes dari contact utama customer.") + is_so_fiktif = fields.Boolean('SO Fiktif?') def action_open_partial_delivery_wizard(self): # raise UserError("Fitur ini sedang dalam pengembangan") -- cgit v1.2.3 From 7efc5a1a9b0f8a8479a9fed03577a76bdba8af22 Mon Sep 17 00:00:00 2001 From: Miqdad Date: Sat, 8 Nov 2025 19:27:23 +0700 Subject: sync real deliv and deliv addr to stock picking (pick & out) --- indoteknik_custom/models/sale_order.py | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index ef6318da..bc33e8e6 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -400,6 +400,44 @@ class SaleOrder(models.Model): internal_notes_contact = fields.Text(related='partner_id.comment', string="Internal Notes", readonly=True, help="Internal Notes dari contact utama customer.") is_so_fiktif = fields.Boolean('SO Fiktif?') + def action_set_shipping_id(self): + for rec in self: + bu_pick = self.env['stock.picking'].search([ + ('state', 'not in', ['cancel']), + ('picking_type_id', '=', 30), + ('sale_id', '=', rec.id), + ('linked_manual_bu_out', '=', False) + ]) + # bu_out = bu_pick_has_out.mapped('linked_manual_bu_out') + bu_out = self.env['stock.picking'].search([ + ('sale_id', '=', rec.id), + ('picking_type_id', '=', 29), + ('state', 'not in', ['cancel', 'done']) + ]) + bu_pick_has_out = self.env['stock.picking'].search([ + ('state', 'not in', ['cancel']), + ('picking_type_id', '=', 30), + ('sale_id', '=', rec.id), + ('linked_manual_bu_out.id', '=', bu_out.id), + ('linked_manual_bu_out.state', 'not in', ['done', 'cancel']) + ]) + for pick in bu_pick_has_out: + linked_out = pick.linked_manual_bu_out + if pick.real_shipping_id != rec.real_shipping_id or linked_out.partner_id != rec.partner_shipping_id: + pick.real_shipping_id = rec.real_shipping_id + pick.partner_id = rec.partner_shipping_id + linked_out.partner_id = rec.partner_shipping_id + linked_out.real_shipping_id = rec.real_shipping_id + _logger.info('Updated bu_pick [%s] and bu_out [%s]', pick.name, linked_out.name) + + for pick in bu_pick: + if pick.real_shipping_id != rec.real_shipping_id: + pick.real_shipping_id = rec.real_shipping_id + pick.partner_id = rec.partner_shipping_id + bu_out.partner_id = rec.partner_shipping_id + bu_out.real_shipping_id = rec.real_shipping_id + _logger.info('Updated bu_pick [%s] without bu_out', pick.name) + def action_open_partial_delivery_wizard(self): # raise UserError("Fitur ini sedang dalam pengembangan") self.ensure_one() @@ -3377,6 +3415,9 @@ class SaleOrder(models.Model): # if updated_vals: # line.write(updated_vals) + + if 'real_shipping_id' in vals: + self.action_set_shipping_id() return res def button_refund(self): -- cgit v1.2.3 From c15634a9fba8338c07e3933a893850b8962ce441 Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Mon, 10 Nov 2025 11:26:49 +0700 Subject: (andri) fix --- indoteknik_custom/models/sale_order.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index bc33e8e6..37f8b9cc 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2317,7 +2317,7 @@ class SaleOrder(models.Model): raise UserError("Terdapat DUPLIKASI data pada Product {}".format(line.product_id.display_name)) def sale_order_approve(self): - # self.check_duplicate_product() + self.check_duplicate_product() self.check_product_bom() self.check_credit_limit() self.check_limit_so_to_invoice() @@ -2588,7 +2588,7 @@ class SaleOrder(models.Model): for order in self: order._validate_delivery_amt() order._validate_uniform_taxes() - # order.check_duplicate_product() + order.check_duplicate_product() order.check_product_bom() order.check_credit_limit() order.check_limit_so_to_invoice() -- cgit v1.2.3 From ffe4551ea6eaf0fa97d1a72cbc56596b33825cee Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Tue, 11 Nov 2025 11:50:44 +0700 Subject: (andri) add log --- indoteknik_custom/models/sale_order.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 37f8b9cc..357d2395 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2395,6 +2395,7 @@ class SaleOrder(models.Model): self.check_credit_limit() self.check_limit_so_to_invoice() order.approval_status = 'pengajuan1' + order.message_post(body="Mengajukan approval ke Team Sales") return self._create_approval_notification('Team Sales') if not order.with_context(ask_approval=True)._is_request_to_own_team_leader(): @@ -2636,7 +2637,8 @@ class SaleOrder(models.Model): order.approval_status = 'pengajuan1' return self._create_approval_notification('Sales Manager') elif order._requires_approval_team_sales(): - # order.approval_status = 'pengajuan1' + order.approval_status = 'pengajuan1' + order.message_post(body="Mengajukan approval ke Team Sales") return self._create_approval_notification('Team Sales') order.approval_status = 'approved' -- cgit v1.2.3 From f1a8e2740bf42524be6dde351c694edb28786aef Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Tue, 11 Nov 2025 14:17:43 +0700 Subject: (andri) fix ask approval --- indoteknik_custom/models/sale_order.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 357d2395..7070717b 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2759,10 +2759,10 @@ class SaleOrder(models.Model): if user.is_leader or user.is_sales_manager: return True - if self.env.context.get("ask_approval") and user.id in (3401, 20, 3988): + if self.env.context.get("ask_approval") and user.id in (3401, 20, 3988, 17340): return True - if not self.env.context.get("ask_approval") and user.id in (3401, 20, 3988, 17340): # admin (fida, nabila, ninda) + if not self.env.context.get("ask_approval") and user.id in (3401, 20, 3988, 17340): # admin (fida, nabila, ninda, feby) raise UserError("Yahaha gabisa confirm so, minta ke sales nya ajah") -- cgit v1.2.3 From b74b5bc94ed7a84ca2387fc0373f25b5eb27593d Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Tue, 11 Nov 2025 14:43:00 +0700 Subject: (andri) fix usererror --- indoteknik_custom/models/sale_order.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 7070717b..1d34374e 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2763,8 +2763,7 @@ class SaleOrder(models.Model): return True if not self.env.context.get("ask_approval") and user.id in (3401, 20, 3988, 17340): # admin (fida, nabila, ninda, feby) - raise UserError("Yahaha gabisa confirm so, minta ke sales nya ajah") - + raise UserError("Sales Admin tidak bisa confirm SO, silahkan hubungi Salesperson yang bersangkutan.") salesperson_id = self.user_id.id approver_id = user.id -- cgit v1.2.3 From c1fec44860dae0d762959f1ab34617f6ef6e42cf Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Tue, 11 Nov 2025 15:38:54 +0700 Subject: (andri) fix ask approval for sales admin --- indoteknik_custom/models/sale_order.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 1d34374e..6b1057dd 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2404,6 +2404,13 @@ class SaleOrder(models.Model): 'Hanya bisa konfirmasi SO tim Anda.' ) + user = self.env.user + is_sales_admin = user.id in (3401, 20, 3988, 17340) + if is_sales_admin: + order.approval_status = 'pengajuan1' + order.message_post(body="Mengajukan approval ke Team Sales") + return self._create_approval_notification('Team Sales') + raise UserError("Bisa langsung Confirm") def send_notif_to_salesperson(self, cancel=False): -- cgit v1.2.3 From 4274751a04b7fc02b38a0af4683f06ae4f5508ad Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Wed, 12 Nov 2025 08:41:10 +0700 Subject: fix notify --- indoteknik_custom/models/sale_order.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 6b1057dd..861089d5 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2395,8 +2395,8 @@ class SaleOrder(models.Model): self.check_credit_limit() self.check_limit_so_to_invoice() order.approval_status = 'pengajuan1' - order.message_post(body="Mengajukan approval ke Team Sales") - return self._create_approval_notification('Team Sales') + order.message_post(body="Mengajukan approval ke Sales") + return self._create_approval_notification('Sales') if not order.with_context(ask_approval=True)._is_request_to_own_team_leader(): return self._create_notification_action( -- cgit v1.2.3 From 1086aadae846f8334cdb0292c606fb5a4d186f89 Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Wed, 12 Nov 2025 08:42:34 +0700 Subject: fix --- indoteknik_custom/models/sale_order.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 861089d5..2de4109d 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2395,8 +2395,8 @@ class SaleOrder(models.Model): self.check_credit_limit() self.check_limit_so_to_invoice() order.approval_status = 'pengajuan1' - order.message_post(body="Mengajukan approval ke Sales") - return self._create_approval_notification('Sales') + order.message_post(body="Mengajukan approval ke Team Sales") + return self._create_approval_notification('Team Sales') if not order.with_context(ask_approval=True)._is_request_to_own_team_leader(): return self._create_notification_action( @@ -2408,8 +2408,8 @@ class SaleOrder(models.Model): is_sales_admin = user.id in (3401, 20, 3988, 17340) if is_sales_admin: order.approval_status = 'pengajuan1' - order.message_post(body="Mengajukan approval ke Team Sales") - return self._create_approval_notification('Team Sales') + order.message_post(body="Mengajukan approval ke Sales") + return self._create_approval_notification('Sales') raise UserError("Bisa langsung Confirm") -- cgit v1.2.3 From 583a8e3064790a06063d5dc1b06ed8122bb22e4e Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Wed, 12 Nov 2025 08:44:27 +0700 Subject: (andri) fix --- indoteknik_custom/models/sale_order.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 2de4109d..8e731307 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2383,12 +2383,14 @@ class SaleOrder(models.Model): if order._requires_approval_margin_leader(): order.approval_status = 'pengajuan2' + order.message_post(body="Mengajukan approval ke Pimpinan") return self._create_approval_notification('Pimpinan') elif order._requires_approval_margin_manager(): self.check_product_bom() self.check_credit_limit() self.check_limit_so_to_invoice() order.approval_status = 'pengajuan1' + order.message_post(body="Mengajukan approval ke Sales Manager") return self._create_approval_notification('Sales Manager') elif order._requires_approval_team_sales(): self.check_product_bom() -- cgit v1.2.3 From 7049765e3fa5ffca23725d652134ab3662912762 Mon Sep 17 00:00:00 2001 From: Miqdad Date: Wed, 12 Nov 2025 23:57:23 +0700 Subject: add tracking so fiktif --- indoteknik_custom/models/sale_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 8e731307..14b66d87 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -398,7 +398,7 @@ class SaleOrder(models.Model): compute="_compute_partner_is_cbd_locked" ) internal_notes_contact = fields.Text(related='partner_id.comment', string="Internal Notes", readonly=True, help="Internal Notes dari contact utama customer.") - is_so_fiktif = fields.Boolean('SO Fiktif?') + is_so_fiktif = fields.Boolean('SO Fiktif?', tracking=3) def action_set_shipping_id(self): for rec in self: -- cgit v1.2.3 From 61a1d7e817de31b52285b6bf6448c321f1beac08 Mon Sep 17 00:00:00 2001 From: Miqdad Date: Tue, 18 Nov 2025 11:34:19 +0700 Subject: tracking & readonly sales team --- indoteknik_custom/models/sale_order.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'indoteknik_custom/models/sale_order.py') diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 14b66d87..2ed4046f 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -398,7 +398,10 @@ class SaleOrder(models.Model): compute="_compute_partner_is_cbd_locked" ) internal_notes_contact = fields.Text(related='partner_id.comment', string="Internal Notes", readonly=True, help="Internal Notes dari contact utama customer.") - is_so_fiktif = fields.Boolean('SO Fiktif?', tracking=3) + is_so_fiktif = fields.Boolean('SO Fiktif?', tracking=3) + team_id = fields.Many2one(tracking=True) + + def action_set_shipping_id(self): for rec in self: -- cgit v1.2.3