summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2025-04-21 08:44:51 +0000
committerIT Fixcomart <it@fixcomart.co.id>2025-04-21 08:44:51 +0000
commit7c3a77fccd4ee60cb204f6ce2a2ab0832efd73a0 (patch)
treeda6707846fa050d5a61b84fd4e766eaedea2f6a1
parenta4abe61f52162709b7e4f9f88edfc482e092c517 (diff)
parent286d1c7d91b3e957e26a2ef1350a80faba9405ed (diff)
Merged in min-deliv-amt-afp (pull request #274)
(andrifp) fix validate NPWP format 15 digit
-rw-r--r--indoteknik_custom/models/res_partner.py23
1 files changed, 19 insertions, 4 deletions
diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py
index 06945301..84edafea 100644
--- a/indoteknik_custom/models/res_partner.py
+++ b/indoteknik_custom/models/res_partner.py
@@ -2,6 +2,7 @@ from odoo import models, fields, api
from odoo.exceptions import UserError, ValidationError
from datetime import datetime
from odoo.http import request
+import re
class GroupPartner(models.Model):
_name = 'group.partner'
@@ -211,10 +212,24 @@ class ResPartner(models.Model):
# Abaikan validasi jika NPWP kosong atau diisi "0"
if not npwp or npwp == '0' or npwp == '00.000.000.0-000.000':
continue
- if len(npwp) < 15:
- raise ValidationError("Digit NPWP yang dimasukkan kurang dari batas minimal (15 digit)")
- if len(npwp) > 16:
- raise ValidationError("Digit NPWP yang dimasukkan lebih dari batas maksimal (16 digit)")
+
+ # Validasi untuk NPWP 15 digit (format: 99.999.999.9-999.999)
+ if len(npwp) == 20:
+ # Regex untuk 15 digit dengan format titik dan tanda hubung
+ pattern_15_digit = r'^\d{2}\.\d{3}\.\d{3}\.\d{1}-\d{3}\.\d{3}$'
+ if not re.match(pattern_15_digit, npwp):
+ raise ValidationError("Format NPWP 15 digit yang dimasukkan salah. Pastikan format yang benar adalah: 99.999.999.9-999.999")
+
+ # Validasi untuk NPWP 16 digit (hanya angka tanpa titik atau tanda hubung)
+ elif len(npwp) == 16:
+ pattern_16_digit = r'^\d{16}$'
+ if not re.match(pattern_16_digit, npwp):
+ raise ValidationError("Format NPWP 16 digit yang dimasukkan salah. Format yang benar adalah 16 digit angka tanpa titik atau tanda hubung.")
+
+ # Validasi panjang NPWP jika lebih atau kurang dari 15 atau 16 digit
+ else:
+ raise ValidationError("Digit NPWP yang dimasukkan tidak sesuai. Pastikan NPWP memiliki 15 digit dengan format tertentu (99.999.999.9-999.999) atau 16 digit tanpa tanda hubung.")
+
def write(self, vals):
# Fungsi rekursif untuk meng-update semua child, termasuk child dari child