From b1603152659e81ba005e580350704f54d0aaadf5 Mon Sep 17 00:00:00 2001 From: Miqdad Date: Sat, 17 May 2025 11:05:44 +0700 Subject: add user error changing payment term when state is approved --- indoteknik_custom/models/sale_order.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index b4582f00..6d33af7c 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -7,6 +7,8 @@ import logging, random, string, requests, math, json, re, qrcode, base64 from io import BytesIO from collections import defaultdict +from psutil import users + _logger = logging.getLogger(__name__) @@ -1146,6 +1148,15 @@ class SaleOrder(models.Model): return helper_ids_str.split(', ') def write(self, values): + if 'paymente_term_id' in values: + for record in self: + if record.payment_term_id not in ['cancel', + 'draft'] and record.approval_status == 'approved': + if self.env.user.has_group( + 'sales_team.group_sale_salesman') and not self.env.user.has_group( + 'sales_team.group_sale_manager'): + raise UserError('Tidak bisa mengganti payment term karena sudah approved') + helper_ids = self._get_helper_ids() if str(self.env.user.id) in helper_ids: values['helper_by_id'] = self.env.user.id @@ -1218,10 +1229,12 @@ class SaleOrder(models.Model): for order in self: for line in order.order_line: if 'bom-it' in line.name.lower() or 'bom' in line.product_id.default_code.lower() if line.product_id.default_code else False: - search_bom = self.env['mrp.production'].search([('product_id', '=', line.product_id.id), ('sale_order', '=', order.id), ('state', '!=', 'cancel')], - order='name desc') + search_bom = self.env['mrp.production'].search( + [('product_id', '=', line.product_id.id), ('sale_order', '=', order.id), + ('state', '!=', 'cancel')], + order='name desc') if search_bom: - confirmed_bom = search_bom.filtered(lambda x: x.state == 'confirmed' or x.state == 'done') + confirmed_bom = search_bom.filtered(lambda x: x.state == 'confirmed' or x.state == 'done') if not confirmed_bom: raise UserError( "Product BOM belum dikonfirmasi di Manufacturing Orders. Silakan hubungi MD.") @@ -1519,7 +1532,7 @@ class SaleOrder(models.Model): if not order.real_shipping_id: UserError('Real Delivery Address harus di isi') - + if self.env.context.get('due_approve', []) == False: if order.validate_partner_invoice_due(): return self._create_notification_action('Notification', -- cgit v1.2.3 From a9b205f38697c53410a2859aff7b2d79acc9dcd0 Mon Sep 17 00:00:00 2001 From: Miqdad Date: Sat, 17 May 2025 11:06:37 +0700 Subject: fix typo --- indoteknik_custom/models/sale_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 4202626f..71bbd648 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -1156,7 +1156,7 @@ class SaleOrder(models.Model): return helper_ids_str.split(', ') def write(self, values): - if 'paymente_term_id' in values: + if 'payment_term_id' in values: for record in self: if record.payment_term_id not in ['cancel', 'draft'] and record.approval_status == 'approved': -- cgit v1.2.3 From 2c2a1ac7fe9530390b4bbc473d629ddfb2b97d2b Mon Sep 17 00:00:00 2001 From: Miqdad Date: Sat, 17 May 2025 13:26:59 +0700 Subject: remove permission for sales manager to edit --- indoteknik_custom/models/sale_order.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 71bbd648..57a5000e 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -1160,10 +1160,7 @@ class SaleOrder(models.Model): for record in self: if record.payment_term_id not in ['cancel', 'draft'] and record.approval_status == 'approved': - if self.env.user.has_group( - 'sales_team.group_sale_salesman') and not self.env.user.has_group( - 'sales_team.group_sale_manager'): - raise UserError('Tidak bisa mengganti payment term karena sudah approved') + raise UserError('Tidak bisa mengganti payment term karena sudah approved') helper_ids = self._get_helper_ids() if str(self.env.user.id) in helper_ids: -- cgit v1.2.3 From 434260b95902e088820c3b5d14d7a565f01a21c1 Mon Sep 17 00:00:00 2001 From: Miqdad Date: Sat, 17 May 2025 13:55:59 +0700 Subject: fix error --- indoteknik_custom/models/sale_order.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 57a5000e..8a57b9c0 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -334,9 +334,9 @@ class SaleOrder(models.Model): ('approve', 'Approve') ], tracking=True, string='State Cancel', copy=False) date_hold = fields.Datetime(string='Date Hold', tracking=True, readonly=True, help='Waktu ketika SO di Hold' - ) + ) date_unhold = fields.Datetime(string='Date Unhold', tracking=True, readonly=True, help='Waktu ketika SO di Unhold' - ) + ) def _compute_total_margin_excl_third_party(self): for order in self: @@ -375,7 +375,7 @@ class SaleOrder(models.Model): } } - def hold_unhold_qty_outgoing_so(self): + def hold_unhold_qty_outgoing_so(self): if self.hold_outgoing == True: self.hold_outgoing = False self.date_unhold = fields.Datetime.now() @@ -389,7 +389,6 @@ class SaleOrder(models.Model): picking.do_unreserve() self.hold_outgoing = True self.date_hold = fields.Datetime.now() - def _validate_uniform_taxes(self): for order in self: @@ -1157,9 +1156,9 @@ class SaleOrder(models.Model): def write(self, values): if 'payment_term_id' in values: - for record in self: - if record.payment_term_id not in ['cancel', - 'draft'] and record.approval_status == 'approved': + if self.state not in ['cancel', 'draft'] and self.approval_status == 'approved': + if self.env.user.has_group('sales_team.group_sale_salesman') or self.env.user.has_group( + 'sales_team.group_sale_manager'): raise UserError('Tidak bisa mengganti payment term karena sudah approved') helper_ids = self._get_helper_ids() -- cgit v1.2.3 From 434bf64f3229b12ec938671d74446389cb0455aa Mon Sep 17 00:00:00 2001 From: Miqdad Date: Sun, 18 May 2025 01:50:35 +0700 Subject: prevent sales member or sales manager to change payment term when so/approved --- indoteknik_custom/models/sale_order.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 8a57b9c0..bfb38f6d 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -1032,12 +1032,6 @@ class SaleOrder(models.Model): line_no += 1 line.line_no = line_no - def write(self, vals): - if 'carrier_id' in vals: - for picking in self.picking_ids: - if picking.state == 'assigned': - picking.carrier_id = self.carrier_id - def calculate_so_status(self): so_state = ['sale'] sales = self.search([ @@ -1154,8 +1148,13 @@ class SaleOrder(models.Model): helper_ids_str = self.env['ir.config_parameter'].sudo().get_param('sale.order.user_helper_ids') return helper_ids_str.split(', ') - def write(self, values): - if 'payment_term_id' in values: + def write(self, vals): + if 'carrier_id' in vals: + for picking in self.picking_ids: + if picking.state == 'assigned': + picking.carrier_id = self.carrier_id + + if 'payment_term_id' in vals: if self.state not in ['cancel', 'draft'] and self.approval_status == 'approved': if self.env.user.has_group('sales_team.group_sale_salesman') or self.env.user.has_group( 'sales_team.group_sale_manager'): @@ -1163,9 +1162,9 @@ class SaleOrder(models.Model): helper_ids = self._get_helper_ids() if str(self.env.user.id) in helper_ids: - values['helper_by_id'] = self.env.user.id + vals['helper_by_id'] = self.env.user.id - return super(SaleOrder, self).write(values) + return super(SaleOrder, self).write(vals) def check_due(self): """To show the due amount and warning stage""" -- cgit v1.2.3 From 26b47c8647d3c66e6f659efc31be3deccfe026c9 Mon Sep 17 00:00:00 2001 From: "Indoteknik ." Date: Mon, 19 May 2025 08:37:31 +0700 Subject: (andri) fix log note double pada product variants --- indoteknik_custom/models/product_template.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/indoteknik_custom/models/product_template.py b/indoteknik_custom/models/product_template.py index 2679fbfd..5cb3da88 100755 --- a/indoteknik_custom/models/product_template.py +++ b/indoteknik_custom/models/product_template.py @@ -870,9 +870,9 @@ class ProductTemplate(models.Model): record.message_post(body=f"Updated:
    {''.join(changes)}
") # log changes to product variants - variant_message = f"Updated:
    {''.join(changes)}
" - for variant in record.product_variant_ids: - variant.message_post(body=variant_message) + # variant_message = f"Updated:
    {''.join(changes)}
" + # for variant in record.product_variant_ids: + # variant.message_post(body=variant_message) # simpan data lama dan log perubahan field def write(self, vals): -- cgit v1.2.3 From be8056d1b69d4795724f164958171018d9968f46 Mon Sep 17 00:00:00 2001 From: Miqdad Date: Tue, 20 May 2025 05:23:26 +0700 Subject: set payment term readonly when on any approval process --- indoteknik_custom/models/sale_order.py | 40 +++++++++++++++------------------- indoteknik_custom/views/sale_order.xml | 15 +++++++------ 2 files changed, 26 insertions(+), 29 deletions(-) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index bbd2cd71..c7e713d0 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -8,8 +8,6 @@ import pytz from io import BytesIO from collections import defaultdict -from psutil import users - _logger = logging.getLogger(__name__) @@ -334,9 +332,9 @@ class SaleOrder(models.Model): ('approve', 'Approve') ], tracking=True, string='State Cancel', copy=False) date_hold = fields.Datetime(string='Date Hold', tracking=True, readonly=True, help='Waktu ketika SO di Hold' - ) + ) date_unhold = fields.Datetime(string='Date Unhold', tracking=True, readonly=True, help='Waktu ketika SO di Unhold' - ) + ) def _compute_total_margin_excl_third_party(self): for order in self: @@ -389,7 +387,6 @@ class SaleOrder(models.Model): picking.do_unreserve() self.hold_outgoing = True self.date_hold = fields.Datetime.now() - def _validate_uniform_taxes(self): for order in self: @@ -407,8 +404,8 @@ class SaleOrder(models.Model): # if rec.fee_third_party == 0 and rec.total_margin_excl_third_party != rec.total_percent_margin: # # Gunakan direct SQL atau flag context untuk menghindari rekursi # self.env.cr.execute(""" - # UPDATE sale_order - # SET total_margin_excl_third_party = %s + # UPDATE sale_order + # SET total_margin_excl_third_party = %s # WHERE id = %s # """, (rec.total_percent_margin, rec.id)) # self.invalidate_cache() @@ -1155,23 +1152,12 @@ class SaleOrder(models.Model): helper_ids_str = self.env['ir.config_parameter'].sudo().get_param('sale.order.user_helper_ids') return helper_ids_str.split(', ') - def write(self, vals): - if 'carrier_id' in vals: - for picking in self.picking_ids: - if picking.state == 'assigned': - picking.carrier_id = self.carrier_id - - if 'payment_term_id' in vals: - if self.state not in ['cancel', 'draft'] and self.approval_status == 'approved': - if self.env.user.has_group('sales_team.group_sale_salesman') or self.env.user.has_group( - 'sales_team.group_sale_manager'): - raise UserError('Tidak bisa mengganti payment term karena sudah approved') - + def write(self, values): helper_ids = self._get_helper_ids() if str(self.env.user.id) in helper_ids: - vals['helper_by_id'] = self.env.user.id + values['helper_by_id'] = self.env.user.id - return super(SaleOrder, self).write(vals) + return super(SaleOrder, self).write(values) def check_due(self): """To show the due amount and warning stage""" @@ -1542,7 +1528,7 @@ class SaleOrder(models.Model): if not order.real_shipping_id: UserError('Real Delivery Address harus di isi') - + if not self.env.context.get('due_approve', []): if order.validate_partner_invoice_due(): return self._create_notification_action('Notification', @@ -2023,3 +2009,13 @@ class SaleOrder(models.Model): if any(field in vals for field in ["order_line", "client_order_ref"]): self._calculate_etrts_date() return res + + def write(self, vals): + # Cek apakah payment_term_id diubah dan SO sedang dalam approval + if 'payment_term_id' in vals and any( + order.approval_status in ['pengajuan1', 'pengajuan2', 'approved'] for order in self): + raise UserError( + "Payment Term tidak dapat diubah karena Sales Order sedang dalam proses approval atau sudah diapprove.") + + # Lanjutkan dengan logika write yang sudah ada + return super(SaleOrder, self).write(vals) diff --git a/indoteknik_custom/views/sale_order.xml b/indoteknik_custom/views/sale_order.xml index a599a7b8..ad6bc11c 100755 --- a/indoteknik_custom/views/sale_order.xml +++ b/indoteknik_custom/views/sale_order.xml @@ -96,11 +96,11 @@ 1 - - - - - + + + + + @@ -303,8 +303,9 @@ - {'readonly': [('approval_status', '=', 'approved'), ('state', 'not in', - ['cancel', 'draft'])]} + {'readonly': ['|', ('approval_status', 'in', ['pengajuan1', 'pengajuan2', 'approved']), + ('state', 'not in', + ['cancel', 'draft'])]} -- cgit v1.2.3 From accaff72daae402924f89c2347b57b75901f542b Mon Sep 17 00:00:00 2001 From: Miqdad Date: Tue, 20 May 2025 10:09:16 +0700 Subject: if payment term != customer payment term cannot save --- indoteknik_custom/models/sale_order.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index c7e713d0..e977e07c 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -2017,5 +2017,17 @@ class SaleOrder(models.Model): raise UserError( "Payment Term tidak dapat diubah karena Sales Order sedang dalam proses approval atau sudah diapprove.") - # Lanjutkan dengan logika write yang sudah ada + if 'payment_term_id' in vals: + for order in self: + partner = order.partner_id.parent_id or order.partner_id + customer_payment_term = partner.property_payment_term_id + + # Jika payment term yang diinput berbeda dengan payment term customer + if vals['payment_term_id'] != customer_payment_term.id: + raise UserError( + f"Payment Term berbeda pada Master Data Customer. " + f"Harap ganti ke '{customer_payment_term.name}' " + f"sesuai dengan payment term yang terdaftar pada customer." + ) + return super(SaleOrder, self).write(vals) -- cgit v1.2.3 From 89f0377dd6e8143092d47ea4e3cdeff42a3b49e8 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Tue, 20 May 2025 14:38:02 +0700 Subject: push --- indoteknik_custom/models/stock_picking.py | 1 + 1 file changed, 1 insertion(+) diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py index d0315c43..02da5b61 100644 --- a/indoteknik_custom/models/stock_picking.py +++ b/indoteknik_custom/models/stock_picking.py @@ -1020,6 +1020,7 @@ class StockPicking(models.Model): # self.date_availability = current_time # self.check_state_reserve() return res + def ask_approval(self): if self.env.user.is_accounting: -- cgit v1.2.3 From e60996600f2a5e09f542810be07ad7107c14639f Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Tue, 20 May 2025 16:41:08 +0700 Subject: add sj retur date --- indoteknik_custom/views/stock_picking.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/indoteknik_custom/views/stock_picking.xml b/indoteknik_custom/views/stock_picking.xml index ae77ab9a..02959d69 100644 --- a/indoteknik_custom/views/stock_picking.xml +++ b/indoteknik_custom/views/stock_picking.xml @@ -19,6 +19,7 @@ + -- cgit v1.2.3 From c8d4530d4ade041378691613acd642963bd84c31 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 21 May 2025 15:23:40 +0700 Subject: trying to fix bug matches so po --- indoteknik_custom/models/automatic_purchase.py | 45 +++++++++++++++++++------- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/indoteknik_custom/models/automatic_purchase.py b/indoteknik_custom/models/automatic_purchase.py index b66121e1..ff10b814 100644 --- a/indoteknik_custom/models/automatic_purchase.py +++ b/indoteknik_custom/models/automatic_purchase.py @@ -696,21 +696,42 @@ class SaleNotInMatchPO(models.Model): purchase_tax_id = fields.Many2one('account.tax', string='Purchase Tax') note_procurement = fields.Many2one(string='Note Procurement') + # 1. yang bug + # def init(self): + # tools.drop_view_if_exists(self.env.cr, self._table) + # self.env.cr.execute(""" + # CREATE OR REPLACE VIEW %s AS( + # select apsm.id, apsm.automatic_purchase_id, apsm.automatic_purchase_line_id, apsm.sale_id, apsm.sale_line_id, + # apsm.picking_id, apsm.move_id, apsm.partner_id, + # apsm.partner_invoice_id, apsm.salesperson_id, apsm.product_id, apsm.qty_so, apsm.qty_po, apsm.create_uid, + # apsm.create_date, apsm.write_uid, apsm.write_date, apsm.purchase_price, + # apsm.purchase_tax_id, apsm.note_procurement + # from automatic_purchase_sales_match apsm + # where apsm.sale_line_id not in ( + # select distinct coalesce(posm.sale_line_id,0) + # from purchase_order_sales_match posm + # join purchase_order po on po.id = posm.purchase_order_id + # where po.state not in ('cancel') + # ) + # ) + # """ % self._table) + def init(self): tools.drop_view_if_exists(self.env.cr, self._table) self.env.cr.execute(""" CREATE OR REPLACE VIEW %s AS( - select apsm.id, apsm.automatic_purchase_id, apsm.automatic_purchase_line_id, apsm.sale_id, apsm.sale_line_id, - apsm.picking_id, apsm.move_id, apsm.partner_id, - apsm.partner_invoice_id, apsm.salesperson_id, apsm.product_id, apsm.qty_so, apsm.qty_po, apsm.create_uid, - apsm.create_date, apsm.write_uid, apsm.write_date, apsm.purchase_price, - apsm.purchase_tax_id, apsm.note_procurement - from automatic_purchase_sales_match apsm - where apsm.sale_line_id not in ( - select distinct coalesce(posm.sale_line_id,0) - from purchase_order_sales_match posm - join purchase_order po on po.id = posm.purchase_order_id - where po.state not in ('cancel') + SELECT apsm.id, apsm.automatic_purchase_id, apsm.automatic_purchase_line_id, + apsm.sale_id, apsm.sale_line_id, apsm.picking_id, apsm.move_id, + apsm.partner_id, apsm.partner_invoice_id, apsm.salesperson_id, + apsm.product_id, apsm.qty_so, apsm.qty_po, apsm.create_uid, + apsm.create_date, apsm.write_uid, apsm.write_date, apsm.purchase_price, + apsm.purchase_tax_id, apsm.note_procurement + FROM automatic_purchase_sales_match apsm + WHERE apsm.sale_line_id NOT IN ( + SELECT posm.sale_line_id + FROM purchase_order_sales_match posm + JOIN purchase_order po ON po.id = posm.purchase_order_id + WHERE po.state NOT IN ('cancel') ) ) - """ % self._table) + """ % self._table) \ No newline at end of file -- cgit v1.2.3 From 1047274c07dc302e9c6b3079e6ba7cc9349a9bd0 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Thu, 22 May 2025 11:50:12 +0700 Subject: push --- indoteknik_custom/models/stock_picking.py | 1 + 1 file changed, 1 insertion(+) diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py index 0071bb1a..87255ab6 100644 --- a/indoteknik_custom/models/stock_picking.py +++ b/indoteknik_custom/models/stock_picking.py @@ -584,6 +584,7 @@ class StockPicking(models.Model): self.lalamove_phone = phone self.lalamove_status = pod.get("status") self.lalamove_delivered_at = delivered_at_dt + self.driver_arrival_date = delivered_at_dt return data raise UserError("No delivered data found in Lalamove response.") -- cgit v1.2.3 From cbf9eff4c2f934491b3a1adbf56255c14c4852ea Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Thu, 22 May 2025 14:00:28 +0700 Subject: push --- indoteknik_custom/models/sale_advance_payment_inv.py | 1 + indoteknik_custom/models/stock_picking.py | 2 +- indoteknik_custom/views/user_pengajuan_tempo_request.xml | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/indoteknik_custom/models/sale_advance_payment_inv.py b/indoteknik_custom/models/sale_advance_payment_inv.py index bea9a900..48b753cc 100644 --- a/indoteknik_custom/models/sale_advance_payment_inv.py +++ b/indoteknik_custom/models/sale_advance_payment_inv.py @@ -197,6 +197,7 @@ class SaleAdvancePaymentInv(models.TransientModel): # if final: # moves.sudo().filtered(lambda m: m.amount_total < 0).action_switch_invoice_into_refund_credit_note() # for move in moves: + # move.message_post_with_view('mail.message_origin_link', # values={'self': move, 'origin': move.line_ids.mapped('sale_line_ids.order_id')}, # subtype_id=self.env.ref('mail.mt_note').id diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py index 87255ab6..3135f41c 100644 --- a/indoteknik_custom/models/stock_picking.py +++ b/indoteknik_custom/models/stock_picking.py @@ -288,7 +288,7 @@ class StockPicking(models.Model): self.ensure_one() if not self.name or not self.origin: return False - return f"{self.name} {self.origin}" + return f"{self.name}, {self.origin}" def _download_pod_photo(self, url): """Mengunduh foto POD dari URL""" diff --git a/indoteknik_custom/views/user_pengajuan_tempo_request.xml b/indoteknik_custom/views/user_pengajuan_tempo_request.xml index 339ce8db..898d5b2a 100644 --- a/indoteknik_custom/views/user_pengajuan_tempo_request.xml +++ b/indoteknik_custom/views/user_pengajuan_tempo_request.xml @@ -426,7 +426,7 @@ -- cgit v1.2.3 From 46e4c80e1b530274c01cca5603f3e1be873820f6 Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Fri, 23 May 2025 09:21:45 +0700 Subject: bf cant create invoice cause of custom method action assign wrong implement --- indoteknik_custom/models/stock_picking.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py index 3135f41c..504338b0 100644 --- a/indoteknik_custom/models/stock_picking.py +++ b/indoteknik_custom/models/stock_picking.py @@ -1013,15 +1013,15 @@ class StockPicking(models.Model): self.sale_id.date_doc_kirim = self.date_doc_kirim def action_assign(self): - if self.sale_id.hold_outgoing and self.location_id.id == 57 and self.location_dest_id.id == 60: - print(1) - else: - res = super(StockPicking, self).action_assign() + res = super(StockPicking, self).action_assign() + for move in self: + # if not move.sale_id.hold_outgoing and move.location_id.id != 57 and move.location_dest_id.id != 60: + # TODO cant skip hold outgoing cause of not singleton method current_time = datetime.datetime.utcnow() - self.real_shipping_id = self.sale_id.real_shipping_id - self.date_availability = current_time + move.real_shipping_id = move.sale_id.real_shipping_id + move.date_availability = current_time # self.check_state_reserve() - return res + return res def ask_approval(self): if self.env.user.is_accounting: -- cgit v1.2.3