summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/report_logbook_sj.py
diff options
context:
space:
mode:
Diffstat (limited to 'indoteknik_custom/models/report_logbook_sj.py')
-rw-r--r--indoteknik_custom/models/report_logbook_sj.py51
1 files changed, 8 insertions, 43 deletions
diff --git a/indoteknik_custom/models/report_logbook_sj.py b/indoteknik_custom/models/report_logbook_sj.py
index 85ab755d..6915ad9b 100644
--- a/indoteknik_custom/models/report_logbook_sj.py
+++ b/indoteknik_custom/models/report_logbook_sj.py
@@ -39,6 +39,10 @@ class ReportLogbookSJ(models.Model):
count_line = fields.Char(string='Count Line', compute='_compute_count_line')
+ def write(self, vals):
+ self.action_send_to_telegram()
+ res = super(ReportLogbookSJ, self).write(vals)
+
@api.depends('report_logbook_sj_line')
def _compute_count_line(self):
for rec in self:
@@ -67,49 +71,10 @@ class ReportLogbookSJ(models.Model):
raise UserError('Hanya Accounting yang bisa Approve')
- @api.model
- def cron_daily_logbook_gap_to_telegram(self):
- bot_mqdd = '8203414501:AAHy_XwiUAVrgRM2EJzW7sZx9npRLITZpb8'
- chat_id_mqdd = '-4885333032'
- apiURL = f'https://api.telegram.org/bot{bot_mqdd}/sendMessage'
-
- # ambil dari 1 Februari 2024 (UTC)
- dt_from = datetime(2024, 2, 1, 0, 0, 0)
-
- self.env.cr.execute("""
- SELECT sp.id, sp.name
- FROM stock_picking sp
- LEFT JOIN report_logbook_sj_line rlsl
- ON rlsl.picking_id = sp.id
- OR (rlsl.name IS NOT NULL AND rlsl.name = sp.name)
- WHERE sp.picking_type_id = 29
- AND sp.state = 'done'
- AND sp.create_date >= %s
- AND rlsl.id IS NULL
- ORDER BY sp.create_date ASC limit 20
- """, (dt_from,))
- rows = self.env.cr.fetchall()
-
- if not rows:
- return True
-
- header = "berikut merupakan nomor picking yang belum ada di Logbook SJ report:\n"
- body = "\n".join(f"{name} ({pid})" for pid, name in rows if name)
- text = header + body
-
- # kirim satu pesan (tanpa pemotongan)
- try:
- resp = requests.post(apiURL, json={'chat_id': chat_id_mqdd, 'text': text}, timeout=15)
- resp.raise_for_status()
- except requests.HTTPError:
- _logger.error("Telegram response: %s", resp.text) # <— LIHAT DESKRIPSINYA DI LOG
- raise
- except Exception as e:
- # log saja; biar cron tidak crash
- logging.getLogger(__name__).exception("Gagal kirim Telegram: %s", e)
- return True
-
def action_send_to_telegram(self):
+ user_logistic = self.env.ref('indoteknik_custom.group_role_logistic')
+ if self.user != user_logistic:
+ return
entries = []
pickings = self.report_logbook_sj_line.mapped('picking_id')
for p in pickings:
@@ -130,7 +95,7 @@ class ReportLogbookSJ(models.Model):
seen.add(key)
unique_entries.append((name, pid))
- header = "berikut merupakan nomor picking yang belum ada di Logbook SJ report:\n"
+ header = f"Saya {self.env.user.name} sudah mengisi di Logbook SJ Report:\n"
body = "\n".join(f"{name} ({pid or '-'})" for name, pid in unique_entries) if unique_entries else "- (tidak ada)"
text = header + body