Membuat Nilai Defaul Start Date dan End Date Berdasarkan Bulan Sekarang
Dengan bulan berjalan tergantung pada bulan saat ini

Hasil

Start Date adalah tanggal 1 pada bulan februari dan End Date nya adalah tanggal terakhir pada bulan februari(bulan sekarang)


Assalamu'alaikum Warahmatullahi Wabarakatuh

Saya akan menjelaskan cara untuk memberikan nilai default pada field start date dan end date ketika form pertama kali dibuat atau dibuka

hal ini akan sangat berguna ketika pembuatan report bulanan seperti kebutuhan payroll

sebelum itu, kita perlu mengimport library relative delta terlebih dahulu dengan syntax

from dateutil import relativedelta


metode yang digunakan adalah dengan menggunakan atribut default pada saat pendefinisian field pada python

start_date = fields.Date(string='Start Date', default=datetime.now().strftime('%Y-%m-01'))
end_date = fields.Date(string='End Date', default=str(datetime.now() + relativedelta.relativedelta(months=+1, day=1, days=-1)))


Penjelasannya:

pada field start_date, diberikan nilai default berisi datetime.now().strftime('%Y-%m-01')) arti nya memberikan nilai tanggal sekarang lalu di format menjadi bentuk yang bisa diterima sistem odoo, lalu pada kolom tanggal di isi 01 arti nya memberikan nilai tanggal pertama pada bulan saat ini

pada field end_date, diberikan nilai default berisi tanggal sekarang ditambah relativedelta dengan isian berikut

  • months=+1 agar bulan ditambah satu,

  • day=1 arti nya tanggal nya dijadikan tanggal satu,

  • days=-1 maksud nya mengurangi satu tanggal

disini hasil yang didapat pada end_date adalah tanggal nya dijadikan tanggal 1, lalu bulan ditambah satu dari bulan sekarang lalu hari nya dikurangi satu hari agar output nya menjadi tanggal terakhir pada bulan itu

Setelah itu barulah tinggal diletakan pada view xml untuk ditampilkan output nya

Kita bisa juga set up untuk start date awal tahun dan end date nya akhir tahun dengan codingan:

'date_from': datetime.datetime.now().strftime('%Y-01-01'),
'date_to': datetime.datetime.now() + reldel(years=+1, day=1, month=1, days=-1),

reldel disini adalah relativedelte.relativedelta



mungkin sekian itu saja dari saya, terimaksih




Menghilangkan Teks "Sunpop" Pada Odoo Versi 14