Menempatkan Posisi Runing Number Sequence

Assalamualaikum warahmatullahi wabarakatuh.
Pada kesempatan kali ini saya akan membahas bagaimana menempatkan Runing number di dalam berbagai posisi di sequence

Pertama kita membuat kode untuk membuat sequence nya terlebih dahulu di xml nya, disini saya memisalkan pembuatan Sequence di modul Purchase dimana kode di bawah  teredapat format untuk pembentukan runing number itu perbulan, bisa juga kita atur format nya perbulan atau perrminggu 


<record id="sequence_purchase_local_order" model="ir.sequence">
<field name="name">purchase order Non Local</field>
<field name="code">purchase.order.local.seq</field>
<field name="padding">3</field>
<field name="use_date_range">True</field>
<field name="range_reset">monthly</field>
</record>



Kemudian setelah kita membuat kode di xml kita lanjutkan pembuatan kode di python nya 

if res.type == 'nonlocal':
today = datetime.datetime.now()
year = today.year
roman_months = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII']
prefix_sequence = {
'local': '30',
'nonlocal': '70',
'internal': '90',
'import': '50',
'importno': '20',
}
month_index = today.month - 1
roman = roman_months[month_index]
seq.name = '{}{}{}/SFI/{}/{}'.format(prefix_sequence.get(res.type), str(year)[-2:], self.env['ir.sequence'].next_by_code('purchase.order.local.seq'), roman, str(year)[-2:])



dimana fungsi utama untuk memposisikan runing number nya berada di python, dimana runing number di atas akan terbentuk ketika kita menyimpan data yang ttelah kita buat, di dalam format Sequence di atas, dimana untuk tampilan nya akann menampilkan kode prefix yang telah di masukan dimana kode prefix nya itu menngacu ke dalam type yang telah di pilih ketika melakukan pengisian data, terdapat juga format untuk romawi dimana romawi ttersebut di gunakan untuk bulan, dan untuk memposisikan running number nya tinggal kita attur sendiri seperti kode di ata.




Kemudian untuk hasilnya sperti di bawah ini 




untuk format yang pertama berupa kode type yang di pilih kebetulan yang di pilih di atas meerupakan type lokal non PPN dan kode nya yaitu 70 kemudian menampilkan 24 yaitu berupa tahun lalu 002 nya sebgai runing number nya / sedangkan SFI merupakan hardcode dan III nya merupakan bulan tapi menggunakan Romawi dan terakhir merupakan tahun








































Cara Mengidentifikasi Fungsi Yang Membutuhkan Waktu Eksekusi Tinggi Menggunakan cProfile