diff options
| author | Miqdad <ahmadmiqdad27@gmail.com> | 2025-09-15 09:18:54 +0700 |
|---|---|---|
| committer | Miqdad <ahmadmiqdad27@gmail.com> | 2025-09-15 09:18:54 +0700 |
| commit | 7748c35d64c802ff5fc3d93aaf41c465b1f78e10 (patch) | |
| tree | ec9b891f0341cb3f04d8ef9faa7f89da341f7c00 | |
| parent | 76676d8b0c41672d11ae392500dfb5a6db1cfd91 (diff) | |
<Miqdad> Update add date doc kirim
| -rw-r--r-- | indoteknik_custom/models/sj_tele.py | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/indoteknik_custom/models/sj_tele.py b/indoteknik_custom/models/sj_tele.py index c00279ec..43709f45 100644 --- a/indoteknik_custom/models/sj_tele.py +++ b/indoteknik_custom/models/sj_tele.py @@ -4,19 +4,21 @@ import requests import json import logging, subprocess import time +from collections import OrderedDict + +logger = logging.getLogger(__name__) -_logger = logging.getLogger(__name__) class SjTele(models.Model): _name = 'sj.tele' _description = 'sj.tele' - picking_id = fields.Many2one('stock.picking', string='Picking') sale_id = fields.Many2one('sale.order', string='Sales Order') picking_name = fields.Char(string='Picking Name') sale_name = fields.Char(string='Sale Name') create_date = fields.Datetime(string='Create Date') + date_doc_kirim = fields.Datetime(string='Tanggal Kirim SJ') # @api.model # def run_pentaho_carte(self): @@ -37,7 +39,7 @@ class SjTele(models.Model): # except Exception as e: # _logger.exception("Carte call failed: %s", e) # raise UserError(f"Gagal memanggil Carte: {e}") - + # time.sleep(3) # self.env['sj.tele'].sudo().woi() @@ -63,12 +65,29 @@ class SjTele(models.Model): return True lines = [] + groups = OrderedDict() + for rec in data: name = rec.picking_name or (rec.picking_id.name if rec.picking_id else '') - pid = rec.picking_id.id if rec.picking_id else '' + pid = rec.picking_id.id if rec.picking_id else '' so = rec.sale_id.name or rec.sale_name or '' + dttm = (rec.picking_id.date_doc_kirim if (rec.picking_id and rec.picking_id.date_doc_kirim) + else getattr(rec, 'date_doc_kirim', None)) + + # format header tanggal (string), tanpa konversi Waktu/WIB + if dttm: + date_header = dttm if isinstance(dttm, str) else fields.Datetime.to_string(dttm) + date_header = date_header[:10] + else: + date_header = '(Tidak ada tanggal kirim SJ)' + if name: - lines.append(f"{name} - {so} ({pid})") + groups.setdefault(date_header, []).append(f"- ({pid}) - {name} - {so}") + + # build output berurutan per tanggal + for header_date, items in groups.items(): + lines.append(header_date) + lines.extend(items) header = "Berikut merupakan nomor BU/OUT yang belum ada di Logbook SJ report:\n" text = header + "\n".join(lines) @@ -78,5 +97,5 @@ class SjTele(models.Model): json={'chat_id': chat_id_mqdd, 'text': text}) r.raise_for_status() except Exception as e: - _logger.exception("Gagal kirim Telegram: %s", e) + logger.exception("Gagal kirim Telegram: %s", e) return True
\ No newline at end of file |
