summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-09-15 09:18:54 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-09-15 09:18:54 +0700
commit7748c35d64c802ff5fc3d93aaf41c465b1f78e10 (patch)
treeec9b891f0341cb3f04d8ef9faa7f89da341f7c00
parent76676d8b0c41672d11ae392500dfb5a6db1cfd91 (diff)
<Miqdad> Update add date doc kirim
-rw-r--r--indoteknik_custom/models/sj_tele.py31
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