summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indoteknik_custom/models/account_move.py35
-rw-r--r--indoteknik_custom/models/res_partner.py5
-rw-r--r--indoteknik_custom/views/res_partner.xml3
3 files changed, 31 insertions, 12 deletions
diff --git a/indoteknik_custom/models/account_move.py b/indoteknik_custom/models/account_move.py
index 1a6fad1c..945a96f9 100644
--- a/indoteknik_custom/models/account_move.py
+++ b/indoteknik_custom/models/account_move.py
@@ -119,6 +119,7 @@ class AccountMove(models.Model):
# today + timedelta(days=7),
# ]
+ # # Contoh khusus partner tertentu
# partner = self.env['res.partner'].search([('name', 'ilike', 'BANGUNAN TEKNIK GRUP')], limit=1)
# if not partner:
# _logger.info("Partner tidak ditemukan.")
@@ -127,7 +128,7 @@ class AccountMove(models.Model):
# invoices = self.env['account.move'].search([
# ('move_type', '=', 'out_invoice'),
# ('state', '=', 'posted'),
- # ('payment_state', 'not in', ['paid','in_payment', 'reversed']),
+ # ('payment_state', 'not in', ['paid', 'in_payment', 'reversed']),
# ('invoice_date_due', 'in', target_dates),
# ('partner_id', '=', partner.id),
# ])
@@ -150,10 +151,24 @@ class AccountMove(models.Model):
# 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")
+ # # Cari semua kontak anak yang reminder_invoices = True dan punya email
+ # reminder_contacts = self.env['res.partner'].search([
+ # ('parent_id', '=', partner.id),
+ # ('reminder_invoices', '=', True),
+ # ('email', '!=', False),
+ # ])
+
+ # # Gabungkan partner.email utama + semua email dari child contact reminder
+ # emails = list(filter(None, [partner.email])) + reminder_contacts.mapped('email')
+
+ # if not emails:
+ # _logger.info(f"Partner {partner.name} tidak memiliki email yang bisa dikirimi")
# continue
+ # email_to = ",".join(emails)
+ # _logger.info(f"Email tujuan: {email_to}")
+
+ # # Buat isi tabel invoice
# invoice_table_rows = ""
# for inv in invs:
# days_to_due = (inv.invoice_date_due - today).days if inv.invoice_date_due else 0
@@ -175,26 +190,22 @@ class AccountMove(models.Model):
# template.body_html,
# flags=re.DOTALL
# ).replace('${object.name}', partner.name) \
- # .replace('${object.partner_id.name}', partner.name)
- # # .replace('${object.email}', partner.email or '')
+ # .replace('${object.partner_id.name}', partner.name)
# values = {
# 'subject': subject,
- # 'email_to': 'andrifebriyadiputra@gmail.com', # Ubah ke partner.email untuk produksi
+ # 'email_to': email_to,
# '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}")
-
+ # _logger.info(f"Mengirim email ke: {email_to}")
# template.send_mail(invs[0].id, force_send=True, email_values=values)
- # # Default System User
+ # # Post ke chatter
# 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(
@@ -204,7 +215,7 @@ class AccountMove(models.Model):
# author_id=system_id,
# )
- # _logger.info(f"Reminder terkirim ke {partner.name} ({values['email_to']}) → {len(invs)} invoice")
+ # _logger.info(f"Reminder terkirim ke {partner.name} ({email_to}) → {len(invs)} invoice")
@api.onchange('invoice_date')
diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py
index 236df16f..f260f58e 100644
--- a/indoteknik_custom/models/res_partner.py
+++ b/indoteknik_custom/models/res_partner.py
@@ -27,6 +27,11 @@ class ResPartner(models.Model):
# Referensi
supplier_ids = fields.Many2many('user.pengajuan.tempo.line', string="Suppliers")
+ reminder_invoices = fields.Boolean(
+ string='Reminder Invoice?',
+ help='Centang jika kontak ini harus menerima email pengingat invoice.', default=False
+ )
+
# informasi perusahaan
name_tempo = fields.Many2one('res.partner', string='Nama Perusahaan',tracking=True)
industry_id_tempo = fields.Many2one('res.partner.industry', 'Customer Industry', readonly=True)
diff --git a/indoteknik_custom/views/res_partner.xml b/indoteknik_custom/views/res_partner.xml
index a030a75c..08eca7ea 100644
--- a/indoteknik_custom/views/res_partner.xml
+++ b/indoteknik_custom/views/res_partner.xml
@@ -102,6 +102,9 @@
/>
</div>
</xpath>
+ <xpath expr="//field[@name='child_ids']/form//field[@name='mobile']" position="after">
+ <field name="reminder_invoices"/>
+ </xpath>
<xpath expr="//field[@name='property_payment_term_id']" position="attributes">
<attribute name="readonly">0</attribute>
</xpath>