Skip to Content

Mencegah Duplikasi pada field tertentu menggunakan odoo studio

October 27, 2025 by
Administrator
| No comments yet

Dalam proses pembelian, Vendor Reference berfungsi sebagai nomor referensi atau kode unik dari supplier. Namun, sering kali user tidak sengaja menggunakan Vendor Reference yang sama di beberapa Purchase Order (PO) — hal ini dapat menyebabkan kekacauan dalam pencatatan dan pelacakan dokumen.

Untungnya, dengan Odoo Studio, Anda bisa menambahkan validasi sederhana untuk mencegah duplikasi Vendor Reference tanpa perlu mengubah kode Python di backend.

Panduan ini akan menunjukkan langkah demi langkah cara membuatnya secara visual langsung dari antarmuka Odoo Studio.

🎯 Tujuan

Menambahkan validasi otomatis agar Vendor Reference (partner_ref) di Purchase Order tidak boleh duplikat.

Jika user menginput nilai yang sudah pernah digunakan pada PO lain, maka sistem akan menampilkan pesan error dan mencegah penyimpanan.

🧰 Persiapan Awal

Sebelum mulai, pastikan:

  • Anda menggunakan Odoo Enterprise
  • Modul Purchase sudah aktif.
  • Fitur Odoo Studio tersedia (ikon obeng & kunci di kanan atas).
  • Developer Mode sudah diaktifkan.

🧩 Langkah-Langkah

1️⃣ Buka Model Purchase Order

  1. Masuk ke menu: Purchase → Orders → Purchase Orders.
  2. Klik ikon Studio (🔧) di pojok kanan atas untuk masuk ke mode pengeditan.
  3. Pastikan Anda sedang mengedit model Purchase Order.

2️⃣ Periksa Field Vendor Reference

  1. Klik field Vendor Reference pada form PO.
  2. Lihat panel kanan, pastikan Technical Name-nya adalah:

    partner_ref

  3. Catat nama tersebut — kita akan memerlukannya untuk validasi nanti.

3️⃣ Buat Automation di Odoo Studio

  1. Di Studio, klik tab Automation di bagian atas kanan layar.
  2. Klik + New Automation.
  3. Isi form berikut:
FieldIsi
NameCheck Duplicate Vendor Reference
ModelPurchase Order
TriggerOn Creation & Update
Active✅ Aktifkan

4️⃣ Tambahkan Aksi “Execute Python Code”

  1. Pada bagian bawah form, klik tab Action.


  1. Pilih tipe aksi “Execute Python Code”.
  2. Masukkan kode berikut:

# Hanya jalankan jika ada nilai partner_ref

if record.partner_ref:

    # Cari PO lain dengan vendor reference yang sama

    duplicate_po = env['purchase.order'].search([

        ('partner_ref', '=', record.partner_ref),

        ('id', '!=', record.id)

    ], limit=1)


    if duplicate_po:

        raise UserError(

            f"Vendor Reference '{record.partner_ref}' sudah digunakan pada Purchase Order {duplicate_po.name}."

        )

💡 Penjelasan kode:

  • record.partner_ref: Mengambil nilai Vendor Reference dari PO saat ini.
  • search([...]): Mencari PO lain dengan Vendor Reference yang sama.
  • Jika ditemukan (existing), maka sistem akan menolak penyimpanan dan menampilkan pesan error.

5️⃣ Simpan & Uji Validasi

  1. Klik Save & Close di Odoo Studio.
  2. Keluar dari mode Studio.
  3. Coba buat Purchase Order baru:
    • Isi Vendor Reference dengan nilai yang sama seperti PO lain.
    • Saat klik Save, sistem akan menampilkan pesan:

    ⚠️ Vendor Reference 'ABC123' sudah digunakan di Purchase Order PO0007. Harap gunakan referensi lain.

Berhasil 🎉 — sekarang duplikasi Vendor Reference berhasil dicegah!

🧠 Tips Tambahan

✅ Cegah Vendor Reference Kosong

Jika Anda juga ingin memastikan field ini tidak boleh kosong, tambahkan potongan kode berikut sebelum search():

if not record.partner_ref: raise UserError("Vendor Reference tidak boleh kosong.")

✅ Gunakan Constraint untuk Validasi Database (Opsional)

Jika Anda lebih suka pendekatan tingkat database:

  1. Aktifkan Developer Mode.
  2. Buka Settings → Technical → Database Structure → Models → Purchase Order.
  3. Tambahkan SQL Constraint dengan ekspresi unik untuk partner_ref.
    Contoh:

    UNIQUE(partner_ref)

    (Metode ini butuh akses teknis dan tidak direkomendasikan untuk user non-developer.)

🧩 Keuntungan Menggunakan Odoo Studio

  • Tanpa kode backend – tidak perlu akses ke file Python.
  • ⚙️ Cepat diterapkan langsung dari UI.
  • 🚫 Menghindari duplikasi data yang bisa menyebabkan kesalahan audit.
  • 💡 Dapat disesuaikan dengan aturan bisnis Anda.

✨ Kesimpulan

Dengan sedikit pengaturan di Odoo Studio, Anda bisa menambahkan logika validasi yang kuat tanpa perlu menulis modul khusus.

Fitur ini sangat berguna untuk menjaga keakuratan data pembelian dan mencegah duplikasi yang bisa menimbulkan kebingungan antar tim keuangan dan procurement.

Administrator October 27, 2025
Share this post
Tags
Archive
Sign in to leave a comment