From 6791235591714e4ac45a6729409716bcba9e8fea Mon Sep 17 00:00:00 2001 From: Miqdad Date: Tue, 16 Sep 2025 21:31:42 +0700 Subject: add try in get tracking detail stock picking --- indoteknik_custom/models/stock_picking.py | 50 ++++++++++++++++++------------- 1 file changed, 30 insertions(+), 20 deletions(-) (limited to 'indoteknik_custom/models/stock_picking.py') diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py index a48e0ed1..78a49ee4 100644 --- a/indoteknik_custom/models/stock_picking.py +++ b/indoteknik_custom/models/stock_picking.py @@ -1743,27 +1743,37 @@ class StockPicking(models.Model): } if self.biteship_id: - histori = self.get_manifest_biteship() - day_start = order.estimated_arrival_days_start - day_end = order.estimated_arrival_days - if sale_order_delay: - if sale_order_delay.status == 'delayed': - day_start = day_start + sale_order_delay.days_delayed - day_end = day_end + sale_order_delay.days_delayed - elif sale_order_delay.status == 'early': - day_start = day_start - sale_order_delay.days_delayed - day_end = day_end - sale_order_delay.days_delayed - - eta_start = order.date_order + timedelta(days=day_start) - eta_end = order.date_order + timedelta(days=day_end) - formatted_eta = f"{eta_start.strftime('%d %b')} - {eta_end.strftime('%d %b %Y')}" - response['eta'] = formatted_eta - response['manifests'] = histori.get("manifests", []) - response['delivered'] = histori.get("delivered", - False) or self.sj_return_date != False or self.driver_arrival_date != False - response['status'] = self._map_status_biteship(histori.get("delivered")) + try: + histori = self.get_manifest_biteship() + day_start = order.estimated_arrival_days_start + day_end = order.estimated_arrival_days + if sale_order_delay: + if sale_order_delay.status == 'delayed': + day_start += sale_order_delay.days_delayed + day_end += sale_order_delay.days_delayed + elif sale_order_delay.status == 'early': + day_start -= sale_order_delay.days_delayed + day_end -= sale_order_delay.days_delayed + + eta_start = order.date_order + timedelta(days=day_start) + eta_end = order.date_order + timedelta(days=day_end) + formatted_eta = f"{eta_start.strftime('%d %b')} - {eta_end.strftime('%d %b %Y')}" + + response['eta'] = formatted_eta + response['manifests'] = histori.get("manifests", []) + response['delivered'] = ( + histori.get("delivered", False) + or self.sj_return_date != False + or self.driver_arrival_date != False + ) + response['status'] = self._map_status_biteship(histori.get("delivered")) - return response + return response + + except Exception as e: + # Kalau ada error di biteship, log dan fallback ke Odoo + _logger.warning("Biteship error pada DO %s: %s", self.name, str(e)) + # biarkan lanjut ke kondisi di bawah (pakai Odoo waybill_id) if not self.waybill_id or len(self.waybill_id.manifest_ids) == 0: response['delivered'] = self.sj_return_date != False or self.driver_arrival_date != False -- cgit v1.2.3 From 61b54c404d0c104a5751a17eed94c5934805a050 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 17 Sep 2025 15:52:33 +0700 Subject: delivery date --- indoteknik_custom/models/stock_picking.py | 1 + 1 file changed, 1 insertion(+) (limited to 'indoteknik_custom/models/stock_picking.py') diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py index 78a49ee4..35d408a1 100644 --- a/indoteknik_custom/models/stock_picking.py +++ b/indoteknik_custom/models/stock_picking.py @@ -307,6 +307,7 @@ class StockPicking(models.Model): ('delay', 'Delay By Vendor'), ('urgent', 'Urgent Delivery'), ], string='Reason Change Date Planned', tracking=True) + delivery_date = fields.Datetime(string='Delivery Date', copy=False) def _get_kgx_awb_number(self): """Menggabungkan name dan origin untuk membuat AWB Number""" -- cgit v1.2.3 From b73575cc51ec58c02bccb711689d52e99e915c4e Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Sun, 21 Sep 2025 22:06:00 +0700 Subject: (andri) link PO to stock journal after validate BD --- indoteknik_custom/models/stock_picking.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'indoteknik_custom/models/stock_picking.py') diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py index 35d408a1..67106073 100644 --- a/indoteknik_custom/models/stock_picking.py +++ b/indoteknik_custom/models/stock_picking.py @@ -1352,6 +1352,19 @@ class StockPicking(models.Model): if self.picking_type_code == 'outgoing' and 'BU/OUT/' in self.name: self.check_koli() res = super(StockPicking, self).button_validate() + + # Penambahan link PO di Stock Journal untuk Picking BD + for picking in self: + if picking.name and 'BD/' in picking.name and picking.purchase_id: + stock_journal = self.env['account.move'].search([ + ('ref', 'ilike', picking.name + '%'), + ('journal_id', '=', 3) # Stock Journal ID + ], limit = 1) + if stock_journal: + stock_journal.write({ + 'purchase_order_id': picking.purchase_id.id + }) + self.date_done = datetime.datetime.utcnow() self.state_reserve = 'done' self.final_seq = 0 -- cgit v1.2.3