Assalamualaikum warahmatullahi wabarakatuh.
kali ini melanjutkan part untuk reset value field dimana di part sebelumnya mereset isi field berdasarkan tanggal yang di tentukan dimana yang di reset nya merupakan field kuota di job position, nah untuk setiap kuota di setiap poosisi akan meereset sesuai dengan kebutuhan user, disini kita menambahkan batasan berrdasarkan kuotta yang di isikan berdasarkan kuota posisi tersebut dimana misal nya kuota inii akan di reset perbulan maka di bulan tersebut user dengan poosisi tersebut tidak akan bisa membuat transkasi mmelebihi kuota yang telah di teentukan
untuk code nya :
@api.model
def create(self, vals):
employee_id = vals.get('employee_id')
if not employee_id:
raise exceptions.ValidationError("Employee is required.")
employee = self.env['hr.employee'].browse(employee_id)
employee_name = employee.name
employee_kuota = employee.job_id.kuota
current_date = fields.Date.today()
current_month_start = current_date.replace(day=1)
next_month_start = (current_date.replace(day=28) + timedelta(days=4)).replace(day=1)
expense_count = self.search_count(
[
("employee_id", "=", employee_id),
("create_date", ">=", current_month_start),
("create_date", "<", next_month_start),
]
)
if expense_count >= employee_kuota:
raise exceptions.ValidationError(
f"Kuota untuk {employee_name} sudah tercapai untuk bulan ini."
)
vals["doc_no"] = self.env["ir.sequence"].next_by_code("master.uang.muka")
return super(MasterUangMuka, self).create(vals)
dan kemudian untuk tampilan odoo nya jika user tersebut telah melebihi transaksi di bulan tersebut