Pencarian Tanggal Lahir Berdasarkan Umur Odoo 12

Aassalamu’alaikum wr wb, biasanya dalam programming ERP timbul masalah pencarian umur, data yang di perlukan adalah tanggal lahir lalu dari tanggal lahir tersebut kita bisa menghitung umur seseorang. Namun bagaimana kalau seseorang lupa tanggal lahirnya dan di form yang tertera wajib mencantumkan tanggal lahir? Aneh bukan? tapi kasus dan requirement seperti ini kadang ditemukan.

Solusinya adalah dari data umur tersebut kita bisa mengambil tahun lahir orang tersebut lalu tanggal dan bulannya dijadikan tanggal sekarang. Nah untuk logic dan script akan saya jelaskan dibawah ini.

from dateutil.relativedelta import relativedelta
from datetime import datetime

ini adalah library yang dibutuhkan
tgl_lahir = fields.Date(string='Tanggal Lahir', readonly=False)
umur = fields.Char(string='Usia', readonly=False)
deskripsi_umur = fields.Char(readonly=True)

ini adalah field2 yang dibutuhkan
@api.onchange('umur')
def hitung_tgl_lahir(self):
if self.umur:
if not self.tgl_lahir:
tgl_lahir = (datetime.now() - relativedelta(years=int(self.umur)))
tgl_fix = datetime.strptime(str(tgl_lahir).split(".")[0], '%Y-%m-%d %H:%M:%S').strftime('%Y-%m-%d')
self.tgl_lahir = tgl_fix
self.age = self.umur
self.umur = self.umur

lalu buat method onchange agar setiap kita isi field umur akan terjadi perubahan
tgl_lahir = (datetime.now() - relativedelta(years=int(self.umur)))

logikanya ada di baris ini. Kita mengurangkan tanggal sekarang dengan data yang ada di 
field umur yang telah di konversi menjadi variabel tahun di dalam field type date dengan menggunakan relativedelta.


Sekian informasi yang bisa saya berikan semoga bermanfaat.