summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-07-23 15:11:52 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-07-23 15:11:52 +0700
commit4d0ba0dc130697e6dec1422efa7339b5e6445b53 (patch)
tree678962ebacb2576e589ca9ba37dc596268ed368a
parent6f5880c2c78b53177c289175b0e1511196371d58 (diff)
<hafid> fix
-rw-r--r--indoteknik_custom/models/account_move.py192
1 files changed, 96 insertions, 96 deletions
diff --git a/indoteknik_custom/models/account_move.py b/indoteknik_custom/models/account_move.py
index db52f398..1a6fad1c 100644
--- a/indoteknik_custom/models/account_move.py
+++ b/indoteknik_custom/models/account_move.py
@@ -109,102 +109,102 @@ class AccountMove(models.Model):
# result.append((move.id, move.display_name))
# return result
- def send_due_invoice_reminder(self):
- today = fields.Date.today()
- target_dates = [
- today - timedelta(days=7),
- today - timedelta(days=3),
- today,
- today + timedelta(days=3),
- today + timedelta(days=7),
- ]
-
- partner = self.env['res.partner'].search([('name', 'ilike', 'BANGUNAN TEKNIK GRUP')], limit=1)
- if not partner:
- _logger.info("Partner tidak ditemukan.")
- return
-
- invoices = self.env['account.move'].search([
- ('move_type', '=', 'out_invoice'),
- ('state', '=', 'posted'),
- ('payment_state', 'not in', ['paid','in_payment', 'reversed']),
- ('invoice_date_due', 'in', target_dates),
- ('partner_id', '=', partner.id),
- ])
-
- _logger.info(f"Invoices tahap 1: {invoices}")
-
- invoices = invoices.filtered(
- lambda inv: inv.invoice_payment_term_id and 'tempo' in (inv.invoice_payment_term_id.name or '').lower()
- )
- _logger.info(f"Invoices tahap 2: {invoices}")
-
- if not invoices:
- _logger.info(f"Tidak ada invoice yang due untuk partner: {partner.name}")
- return
-
- grouped = {}
- for inv in invoices:
- grouped.setdefault(inv.partner_id, []).append(inv)
-
- template = self.env.ref('indoteknik_custom.mail_template_invoice_due_reminder')
-
- for partner, invs in grouped.items():
- if not partner.email:
- _logger.info(f"Partner {partner.name} tidak memiliki email")
- continue
-
- invoice_table_rows = ""
- for inv in invs:
- days_to_due = (inv.invoice_date_due - today).days if inv.invoice_date_due else 0
- invoice_table_rows += f"""
- <tr>
- <td>{inv.name}</td>
- <td>{fields.Date.to_string(inv.invoice_date) or '-'}</td>
- <td>{fields.Date.to_string(inv.invoice_date_due) or '-'}</td>
- <td>{days_to_due}</td>
- <td>{formatLang(self.env, inv.amount_total, currency_obj=inv.currency_id)}</td>
- <td>{inv.ref or '-'}</td>
- </tr>
- """
-
- subject = f"Reminder Invoice Due - {partner.name}"
- body_html = re.sub(
- r"<tbody[^>]*>.*?</tbody>",
- f"<tbody>{invoice_table_rows}</tbody>",
- template.body_html,
- flags=re.DOTALL
- ).replace('${object.name}', partner.name) \
- .replace('${object.partner_id.name}', partner.name)
- # .replace('${object.email}', partner.email or '')
-
- values = {
- 'subject': subject,
- 'email_to': 'andrifebriyadiputra@gmail.com', # Ubah ke partner.email untuk produksi
- 'email_from': 'finance@indoteknik.co.id',
- 'body_html': body_html,
- 'reply_to': f'invoice+account.move_{invs[0].id}@indoteknik.co.id',
- }
-
- _logger.info(f"VALUES: {values}")
-
- template.send_mail(invs[0].id, force_send=True, email_values=values)
-
- # Default System User
- user_system = self.env['res.users'].browse(25)
- system_id = user_system.partner_id.id if user_system else False
- _logger.info(f"System User: {user_system.name} ({user_system.id})")
- _logger.info(f"System User ID: {system_id}")
-
- for inv in invs:
- inv.message_post(
- subject=subject,
- body=body_html,
- subtype_id=self.env.ref('mail.mt_note').id,
- author_id=system_id,
- )
-
- _logger.info(f"Reminder terkirim ke {partner.name} ({values['email_to']}) → {len(invs)} invoice")
+ # def send_due_invoice_reminder(self):
+ # today = fields.Date.today()
+ # target_dates = [
+ # today - timedelta(days=7),
+ # today - timedelta(days=3),
+ # today,
+ # today + timedelta(days=3),
+ # today + timedelta(days=7),
+ # ]
+
+ # partner = self.env['res.partner'].search([('name', 'ilike', 'BANGUNAN TEKNIK GRUP')], limit=1)
+ # if not partner:
+ # _logger.info("Partner tidak ditemukan.")
+ # return
+
+ # invoices = self.env['account.move'].search([
+ # ('move_type', '=', 'out_invoice'),
+ # ('state', '=', 'posted'),
+ # ('payment_state', 'not in', ['paid','in_payment', 'reversed']),
+ # ('invoice_date_due', 'in', target_dates),
+ # ('partner_id', '=', partner.id),
+ # ])
+
+ # _logger.info(f"Invoices tahap 1: {invoices}")
+
+ # invoices = invoices.filtered(
+ # lambda inv: inv.invoice_payment_term_id and 'tempo' in (inv.invoice_payment_term_id.name or '').lower()
+ # )
+ # _logger.info(f"Invoices tahap 2: {invoices}")
+
+ # if not invoices:
+ # _logger.info(f"Tidak ada invoice yang due untuk partner: {partner.name}")
+ # return
+
+ # grouped = {}
+ # for inv in invoices:
+ # grouped.setdefault(inv.partner_id, []).append(inv)
+
+ # template = self.env.ref('indoteknik_custom.mail_template_invoice_due_reminder')
+
+ # for partner, invs in grouped.items():
+ # if not partner.email:
+ # _logger.info(f"Partner {partner.name} tidak memiliki email")
+ # continue
+
+ # invoice_table_rows = ""
+ # for inv in invs:
+ # days_to_due = (inv.invoice_date_due - today).days if inv.invoice_date_due else 0
+ # invoice_table_rows += f"""
+ # <tr>
+ # <td>{inv.name}</td>
+ # <td>{fields.Date.to_string(inv.invoice_date) or '-'}</td>
+ # <td>{fields.Date.to_string(inv.invoice_date_due) or '-'}</td>
+ # <td>{days_to_due}</td>
+ # <td>{formatLang(self.env, inv.amount_total, currency_obj=inv.currency_id)}</td>
+ # <td>{inv.ref or '-'}</td>
+ # </tr>
+ # """
+
+ # subject = f"Reminder Invoice Due - {partner.name}"
+ # body_html = re.sub(
+ # r"<tbody[^>]*>.*?</tbody>",
+ # f"<tbody>{invoice_table_rows}</tbody>",
+ # template.body_html,
+ # flags=re.DOTALL
+ # ).replace('${object.name}', partner.name) \
+ # .replace('${object.partner_id.name}', partner.name)
+ # # .replace('${object.email}', partner.email or '')
+
+ # values = {
+ # 'subject': subject,
+ # 'email_to': 'andrifebriyadiputra@gmail.com', # Ubah ke partner.email untuk produksi
+ # 'email_from': 'finance@indoteknik.co.id',
+ # 'body_html': body_html,
+ # 'reply_to': f'invoice+account.move_{invs[0].id}@indoteknik.co.id',
+ # }
+
+ # _logger.info(f"VALUES: {values}")
+
+ # template.send_mail(invs[0].id, force_send=True, email_values=values)
+
+ # # Default System User
+ # user_system = self.env['res.users'].browse(25)
+ # system_id = user_system.partner_id.id if user_system else False
+ # _logger.info(f"System User: {user_system.name} ({user_system.id})")
+ # _logger.info(f"System User ID: {system_id}")
+
+ # for inv in invs:
+ # inv.message_post(
+ # subject=subject,
+ # body=body_html,
+ # subtype_id=self.env.ref('mail.mt_note').id,
+ # author_id=system_id,
+ # )
+
+ # _logger.info(f"Reminder terkirim ke {partner.name} ({values['email_to']}) → {len(invs)} invoice")
@api.onchange('invoice_date')