diff options
| author | AndriFP <113114423+andrifp@users.noreply.github.com> | 2025-09-15 11:48:33 +0700 |
|---|---|---|
| committer | AndriFP <113114423+andrifp@users.noreply.github.com> | 2025-09-15 11:48:33 +0700 |
| commit | 2b61b810f5b12f32bf837ab34c12d832d0be12eb (patch) | |
| tree | dfc3f4c2bc5f945760eeedadebbc2f97140dfea1 | |
| parent | f60b692889f78b0f0a71316bb4d63820b18a1f7d (diff) | |
(andri) edit status dan rev validasi
| -rw-r--r-- | indoteknik_custom/models/letter_receivable.py | 13 | ||||
| -rw-r--r-- | indoteknik_custom/views/letter_receivable.xml | 8 |
2 files changed, 12 insertions, 9 deletions
diff --git a/indoteknik_custom/models/letter_receivable.py b/indoteknik_custom/models/letter_receivable.py index 17963232..fe598e50 100644 --- a/indoteknik_custom/models/letter_receivable.py +++ b/indoteknik_custom/models/letter_receivable.py @@ -31,8 +31,8 @@ class SuratPiutang(models.Model): line_ids = fields.One2many("surat.piutang.line", "surat_id", string="Invoice Lines") state = fields.Selection([ ("draft", "Draft"), - ("approval_pimpinan", "Menunggu Approval Pimpinan"), - ("sent", "Sent") + ("waiting_approval", "Menunggu Approval"), + ("sent", "Approved & Sent") ], default="draft", tracking=True) send_date = fields.Datetime(string="Tanggal Kirim", tracking=True) seven_days_after_sent_date = fields.Char(string="7 Hari Setelah Tanggal Kirim", tracking=True) @@ -128,8 +128,11 @@ class SuratPiutang(models.Model): # if self.env.user.id not in pimpinan_user_ids: # raise UserError("Hanya Pimpinan yang berhak menyetujui tahap ini.") for rec in self: - if rec.state == "approval_pimpinan": - # rec.state = "sent" + if rec.state == "waiting_approval": + if rec.perihal in ("sp1", "sp2", "sp3"): + if self.env.user.id not in pimpinan_user_ids: + raise UserError("Hanya Pimpinan yang berhak menyetujui surat peringatan piutang (SP1, SP2, SP3).") + rec.state = "sent" now_utc = now_wib.astimezone(pytz.UTC).replace(tzinfo=None) rec.send_date = now_utc rec.action_send_letter() @@ -340,7 +343,7 @@ class SuratPiutang(models.Model): tahun = today.strftime("%y") vals["name"] = f"{seq}/LO/FAT/IDG/{bulan_romawi}/{tahun}" - vals["state"] = "approval_pimpinan" + vals["state"] = "waiting_approval" return super().create(vals) class SuratPiutangLine(models.Model): diff --git a/indoteknik_custom/views/letter_receivable.xml b/indoteknik_custom/views/letter_receivable.xml index 44caadcb..334e83c4 100644 --- a/indoteknik_custom/views/letter_receivable.xml +++ b/indoteknik_custom/views/letter_receivable.xml @@ -10,7 +10,7 @@ <field name="perihal"/> <field name="state" widget="badge" decoration-danger="state == 'draft'" - decoration-warning="state == 'approval_pimpinan'" + decoration-warning="state == 'waiting_approval'" decoration-success="state == 'sent'"/> <field name="send_date"/> <!-- <field name="line_ids" widget="one2many_list"/> --> @@ -25,7 +25,7 @@ <field name="arch" type="xml"> <form string="Surat Piutang"> <header> - <field name="state" widget="statusbar" statusbar_visible="draft,approval_pimpinan,sent"/> + <field name="state" widget="statusbar" statusbar_visible="draft,waiting_approval,sent"/> <button name="action_approve" type="object" string="Approval & Send" class="btn-primary"/> <button name="action_send_letter" type="object" string="Email Send" class="btn-primary"/> </header> @@ -38,8 +38,8 @@ <div class="alert alert-info" role="alert" style="height: 40px; margin-bottom:0px;" - attrs="{'invisible':[('state', '!=', 'approval_pimpinan')]}"> - <strong>Info!</strong> Surat piutang telah diajukan & surat otomatis terkirim bila telah di Approved Pimpinan. + attrs="{'invisible':[('state', '!=', 'waiting_approval')]}"> + <strong>Info!</strong> Surat piutang telah diajukan & surat otomatis terkirim bila telah di Approved (khusus SP1,SP2,SP3 yang bisa approved hanya pimpinan). </div> <div class="alert alert-success" role="alert" |
