Build Expensive System With 30
One Book, One as Author, Odoo:
Created By : Onesinus Saut Parulian
2017Kata Pengantar
Puji dan Syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa, karena Berkat dan
KaruniaNya Penulis dapat membuat buku yang berjudul “”.
Penulis juga menyampaikan terimakasih kepada orang orang yang memberi dukungan dalam
pembuatan buku ini, baik dukungan teknis maupun dukungan moral,
Penulis menyampaikan terimakasin kepada :
LA
2B
3. €
4D
5. E
6. F
Penulis menyadari akan ketidaksempurnaan buku yang penulis buat ini, seperti seorang pepatah
berkata ‘tak ada gading yang tak retak’. oleh karena hal itulah penulis sangat terbuka untuk kritik
serta saran/ masukan dari buku ini. Supaya kedepan ada perbaikan dan menjadi semakin baik
lagi.
Penulis berharap dengan adanya buku ini dapat membantu teman teman yang ingin membangun
sistem ERP secara OTODIDAK hingga bisa digunakan dan diharapkan juga teman teman
mudah menerapkan nya agar bermanfaat baik untuk tugas kuliah, skripsi, sekedar belajar,atau
bahkan untuk pembaca yang akan menggunakannya di dunia pekerjaan, juga untuk yang ingin
menjual software.
Akhir kata, Semoga buku ini bermanfaat dan mudah dipahami oleh pembaca.
Jakarta, September 2017
Onesinus Saut Parulian
089626105445 / onesinus231@ gmail.comDaftar Isi
Kata Pengantar ...csstsstnssnsee seul
Daftar Isi. iil
Pendahuluan..... a
BAB | : Instalasi Odoo 2
1.1 Instalasi Odoo Di windows...
1.2 Instalasi Odoo di Linux (Centos 7)...
1.3 Instalasi Odoo di Linux (Ubuntu 14.04).
BAB 2: Pengenalan Database & Module di Odoo
2.1 Cara menginstall database di odoo...
2.2. Cara Menginstall Module Default Odoo .....
2.3 Upgrade & Uninstal Module Odoo
2.4 Mencari Module di odoo.com/apps...
2.5 Menginstall Module dari odoo.com/apps
BAB 3: Membuat Module Sederhana di Odo.
3.1 Struktur Folder Wajib Module Odoo
3.2 Membuat Menu dan Sub Menu...
3.3 Membuat field-field di odoo ...
3.3.1 Membuat field relasi di odoo.
3.3.2 Membentuk form
3.3.3 Function / Method Odo...
3.4 Membuat Print Out Odoo (Qweb)....
BAB 4 : Modifikasi Module Default Odoo (Inheritance)
4.1 Inherit Model...
4.2 Inherit Form ..
4.3 Inherit Print Out (Qweb)..
Bab 5 : Practice Makes Perfect (Membuat project sederhang)...
5.1 Aplikasi Fulus Management (Membuat Form dan Repott) ......ccuscnestenieneniee
5.20doo (Python) + PHP + Android Studio = Absen Cuy Apps...Tentang Penulis...
Daftar Pustaka.Pendahuluan
doo is analkin-one management sofiware that offers a range of business
applications that form a complete suite of enterprise management applications
targeting companies of all sizes. Odoo is an all-in-one business software including
CRM, Website/e-Commerce, billing, accounting, manufacturing, warehouse- and
project management, and inventory.
‘The Community version is the open source version while the Enterprise version
supplements the Community edition with commercial features and services. As of Odoo 11 the
accounting module (central module of any ERP system) is no longer part of the Communitiy
version!
Ya... jadi intinya odoo itu menerapkan sistem “All in One” management software yang
memiliki beberapa module untuk membangun suatu sistem.
Saat Ini odoo sudah mencapai versi 11 dan untuk odoo sendiri terdapat 2 versi yaitu
Enterprise dan Community, Enterprise adalah ketika kita membayar per periode kepada odoo
untuk menggunakan fitur-fitur odoo enterprise (termasuk semua module-moduke yang ada di
codoo enterprise), tetapi adapula community edition yaitu untuk kita yang ingin customize odoo
kita sendiri dengan source code yang ada.
Kedua versi memiliki kentungan dan kekurangan masing-masing, untuk odoo enterprise
keuntungannya ialah kita mendapatkan fitur-fitur yang lengkap dari odoo sedangkan
kekurangannya terkadang kita mungkin belum bisa untuk membayar harga enterprise sedangkan
untuk community edition keuntungannya adalah kita bisa mendapatkan nya secara gratis (asal
ngerti) dan juga mengubah ubah code sesuai yang kita mau (asal bisa juga), tetapi
kekurangannya adalah kita tidak mendapatkan akses ke module-module yang lengkap (all
module) yang mana didapatkan di enterprise.
Nah... Untuk itulah buku ini dibuat, yaitu membuat anda BISA dengan modal buku saja ©
Dijamin tidak akan rugi mengikuti panduan yang ada dibuku ini, dikarenakan penulis
‘membuainya berdasarkan pengalaman sehari-hari bermain dengan odoo ©
Semua sudah di saring dan di ambil inti intinya agar pembaca dapat memahami dengan
mudah, serta dapat mempraktekan nya agar bisa menghasilkan sistem yang senilai PULUHAN
UTA bahkan sampai RATUSAN JUTA RUPIAH
Selamat Membaca, Berpetualangan, dan Selamat Mencoba.BAB 1 : Instalasi Odoo
1.1 Instalasi Odoo Di windows
Untuk menginstall odoo diwindows maka langkah pertama yang harus dilakukan adalah
mendownload installer odoo nya dari website resmi odoo (odoo.com).
untuk buku ini kita akan menggunakan odoo versi 10, walaupun sudah release odoo
terbaru versi 11 namun di buku ini akan menggunakan odoo versi 10 alasannya karena versi
10 sudah oke menurut penulis
disamping itu versi 11 ada beberapa perubahan seperti module accounting (module core
dari erp) sudah tidak ada di community edition.
Oke mari kita download terlebih dahulu installer nya di link ini
hups://www.odoo.com/page/download
I
q
2-0 tewmetain
om —
Anda bisa Klik download pada Odoo 10.0 Community untuk Windows, Kemudian anda akan
diminta untuk mengisi formSetelah anda mengisi form download odoo anda bisa mengklik lagi tombol download
ote ro8
-0 ven stat
a ow co
Bn or
‘000 few mont emer —
hark
Jika download sudah selesai maka bisa double klik di Odoo_10.0.latest.exe untuk menginstall
nyaKlik Installer Odoo
‘odoo_10.0.atest 3/6/2017 12:50PM Application 199,611 KB
Pilih Bahasa
Klik Ok
Welcome to the Odoo 10.0 Setup.
Wizard
‘This wizard wil guide you through the installation of Odo.
10.0.
{ls recommended that you dose all other applications
before starting Setup. This wil make t possible to update
relevant system fies withaut having to reboct your
computer,
‘Click Next to continue,
Klik Next >O0d0oO https://www.odoo.com
Press Page Down to see the rest ofthe agreement.
For copyright information, please see the COPYRIGHT fle.
\cdloois published under the GNU LESSER. GENERAL PLBLIC LICENSE, Version 3
|.ceLv3), as induded below. Since the LGPL s a set of addtional
[permissions on top ofthe GPL, the text ofthe GPL is incuded af the
bottom as vel.
\some external lovares and contrisutons bundled wth Odoo may be publshed
lander other GPL-compatble lcenses. For these, please refer to the relevant
Icource Fes andor icense ies, inthe source code tree,
doo 10.0
Klik I AgreeOd00 https://www.odoo.com
Check the components you want to install and uncheck the components you derit want to
instal, Clek Next to continue,
Select the type of install:
Or, select the optional
components you wish to
instal:
Space required: 542.96
(odo 10.0
[alin One
[Odeo Server
Postgres Database
Description
Postion your mouse aver a component to soe ks
Pilih All In One : Jika Ingin menginstall odoo server beserta dengan databasenya (postgresql)
sekaligus
Pilih SERVER ONLY : Jika ingin menginstall hanya odoo server saja
Klik Postgresql Database : Jika ingin menginstall hanya postgresql nya sajaOd0Oo https://www.odoo.com
Configure the information for the PostgreSQL connection
Hostname localhost
Port 5432
Username nae
Password openapwd
0860 10.0
Hostname : Url yang akan dignakan odoo (isi ip address atau hostname dari computer, default isi
localhost)
Pont : Port yang akan digunakan oleh odoo
Username : Username dari postgtresq
Password : Password dari postgresqlOd0o https://www.odoo.com
Setup wil instal Odoo 10.0 in the Following folder. To installin a different folder, cick Browse
and select another Folder. Cick Install to start the instalation.
Space required: 542,36
Space available: 70,068
Odeo 19.0
Klik Install
Plowomsmp = = SO*~=CSs‘“‘S*S”:C«C
Od0Oo https://www.odoo.com
Extracts mrdat.. 100%
Extract:
Extract:
Extract:
extract:
Extract:
Extract:
Extract: mn.
Extract: ma_Cyl.det... 100%
Extract: mn_Cyl_MV.dat... 100% a
Extract: me.dat.. 100%
doa 10.0.Proses Install Odoo
Todos ina Seip PET
Microsoft Visual C++ 2013
Redistributable (x86) - 12.0.21005
Setup Progress
Processing: Initializing...
(
Program Fles|Odoo 10.0lthirdperty
UsersiMEAppDatalLocal\Temp
Extract: postaresgl-9.5.4-2-windows.exe... 100%
Execute: “C:\Users|ME\AppDatalLocalTemplpostgresd-9.5.4-2-windows.exe" mo...
Created uninstaller; C:\Program Fies\Odoo 10,0\Linstal.exe a
Completed =
(doo 19,9
Klik Next & Centang Start Odoo dan Finish
Completing the Odoo 10.0 Setup
Wizard
(0d 10.0has been installed on your computer.
‘lek Fish to close this weard.
Odeo '~1.2 Instalasi Odoo di Linux (Centos 7)
Sekarang kita akan mencoba untuk menginstall odoo di Centos 7, kenapa kita harus
mempelajari ini?
© karena terkadang kita menemui case dimana kita harus menginstall odoo di operating
system selain windows, lagipula pembaca belum tentu semuanya menggunakan
windows kan ? ©
Nah Langsung saja kita install odoo kita di centos 7, Ketikan perintah
“yum update” di command line centos kita
Perintah ini untuk memastikan bahwa server kita up to date
Langsung ketikan y saja untuk mengupdate package-package, kemudian tekan enter
Setelah semua package berhasil di upgrade.maka selanjutnya kita perlu menginstal repository EPEL “yum install -y epebrelease”
Jika package epel sudah terinstall dan versi terbaru maka Selanjutnya adalah kita perlu
menginstall postgresql (odoo menggunakan postgresql sebagai database nya)
serta beberapa package yang diperlukan untuk instalasi odoo, seperti wkhtmltopdf untuk
nantinya export pdf dari odoo
“yum install postgresql-server fontconfig libpng libX11 libXext libXrender xorg-x11-fonts-
‘Typel xorg-x1 1-fonts-75dpi wkhtmltopdf yum-utils”
Langsung saja ketikan “y” kemudian enterTnilah tampilan jika kita sudah menjalankan perintah diatas, Nah jika tadi kita sudah
Menginstal postgresql, setelah di install postgresql perlu di setup sama halnya seperti saat
diwindows kita mendownload postgresql, maka kita perlu juga untuk mensetup postgresql
nya
Ketikan perintah “postgresql-setup initdb”
Jika sudah sekarang kita akan enable dan start service dari postgresql, menggunakan perintah ini
“systemetl enable postgresql” dan “systemetl start postgresql”
Postgresq! kita sudah siap dan sudah dijalankan,sekarang tinggal kita install odoonya
Untuk install odoo pertama kita perlu menambahkan repository nya dahulu dengan perintah ini
“yum-config- manager --add-repo=https://nightly.odoo.conv 10.0/nightly/tpm/odoo. repo
BSetelah repository odoo ditambahkan install odoo dengan perintah ini
“yum update && yum install odoo”
Tekan “y” dan akan muncul seperti ini
Tekan “y” lagi saja dan proses install akan berjalan (disini anda akan berasa seperti hacker :D)
karena orang yang melihat layar anda bergerak dengan hanya tulisan ©
Baikan jika sudah complete, sama seperti postgresql yang perlu di enable dan distart, mari
lakukan di odoo
“systemctl enable odoo”
“systemetl start odoo™Nah... Sekarang odoo sudah kita install, enable, dan start maka untuk eek apakah odoo sudah
berjalan bisa menggunakan perintah
“systemectl status odoo”
api... saat kita coba akses odoo yang sudah kita install di browser dengan url jp:8069 maka
hasilnya seperti ini
B
This site can't be reached
Itu dikarenakan, port default odoo (8069) itu belum kita izinkan (allow), maka untuk
mengizinkan nya bisa mengetikan perintah ini “service firewalld start” untuk mengaktifkan
firewall “firewall-cmd —zone=public ~add-port=8069/tcp --permanent” untuk mengizinkan port
default odoo (8069), “firewallk-cmd --reload” untuk reload firewall
15Saat kita coba lagi mengakses p:8069, maka hasilnya sudah berhasil masuk ke odoo
oO
Yuhuuu... odoo kita sudah terinstall di server centos kita
1.3 Instalasi Odoo di Linux (Ubuntu 14.04)
Jika anda ingin menginstall odoo 10 di sistem operasi ubuntu, maka di buku ini juga akan
dipandu berdasarkan pengalaman penulis menginstall odoo di sistem operasi ubuntu.
Pertama, kita harus memastikan bahwa server yang akan kita gunakan untuk menginstall odoo
sudah up to date, gunakan perintah ini
“apt-get update && apt-get -y upgrade”
Selanjutnya kita perlu menginstall Git untuk mengambil source code Odoo dari Github
“apt-get install git”
Setelah menginstall Git kita akan membuat terlebih dahulu user di server kita untuk odoo
16Sekilas info : perintah diatas membuat user dengan nama odoo didalam group odoo dengan
dengan fokler odoo
Btw kok odoo,odoo semua ya... triple odoo... ©
Membuat folder untuk log odoo
“mkdir /var/log/odoo”
EEE
Buat fokler odoo yang telah kita buat menjadi milik user yang bernama odoo
“chown -R odoo: /var/log/odoo”
Ambil source code odoo dari github
Disable dahulu verifikasi ssl dari git
“git config --global http.ssiverify false”
(SEER REE SECRET
Masuk ke folder odoo di /opt
“ed /optiodoo”
“git clone https://www. github.com/odoo/odoo ~-depth I --branch 10.0 --single-branch”
7Setelah kita mengambil source code odoo dari github, kita akan memindahkan isi nya ke folder
odoo- 10.0 yang telah kita buat diperintah sebelumnya
“my odoo odoo-10.0"
Pe
Beri kepemilikan foller odoo-10.0 ke user odoo
“chown -R odoo: odoo-10.0”
ESE
Maka kepemilikan fokler odoo-10.0 menjadi seperti ini
Selanjutnya adalah menginstall NPM dan LESS processor
“apt-get install npm”“In -s /ust/bin/nodejs /ust/bin/node”
“npm install -g less less-plugin-clean-css”
Sckarang saat nya kita menginstall database yang akan digunakan oleh odoo yaitu postgresql
“apt-get install postgresql”
19Masuk ke postgresql dan buat super user bernama odoo
Untuk memastikan bahwa super user bernama odoo telah terbuat gunakan perintah ini
“psa”
“\du”
“su- postgres”
“createuser -s odoo”
Keluar da
postgres dan kembali ke root dengan perintah ini
Setelah postgresql terinstall dan sudah dibuatkan super user untuk koneksi odoo nantinya,
sekarang kita akan menginstall paket-paket python yang dibutuhkan oleh odoo
“apt-get install python-pip”
20“apt-get install python-dev postgresqFserver-dev-9.3 libxml2-dev libxsitl-dev libjpeg-dev
libldap2-dev libsasI2-dev”
Kita juga akan menginstall paket-paket python yang dibutuhkan yang ada didalam file
requirements.txt,
“pip install -r /opt/odoo/odoo-10.0/requirements.txt”
Buat file untuk konfigurasi odoo dengan cara mengcopy dari source odoo
“ep /opt/odoo/odoo-10,0/debian/odoo.cont /etc/odoo.cont”
Buka file konfigurasi dan ubah menjadi seperti ini
21“vi /ete/odoo.conf*
Nah... selesai sudah kita menginstall dan mengkonfigurasi odoo di ubuntu, agar dapat berjalan
maka kita harus menjalankan service dari odoo
“sudo -H -u odoo bash”
“Jopt/odoo/odoo-10,0/odoo-bin”
Sekarang langsung saja buka odoo sesuai dengan ip address / domain masing-masing
Format url : [ip]+[port]Contoh : localhost:8069, 192.168.1.1:8069, joko.com:8069
6 Opereen
Maka odoo akan terbuka... itu tandanya anda telah berhasil menginstall odoo di ubuntu.
Selamat... ©
Berikutnya kita akan belajar cara membuat database di odoo... petualangan kita baru akan
Jangan panik, tetap tenang, dan sruput kopi anda...
Y Programmer yang hebat adalah programmer yang menjadikan error sebagai temannya
Y Program tanpa error = Imposibru :v
Y Problem Solving itu penting
Y Belajar dari kesalahan itu hal yang bagus ©
25(Oke langsung saja kita solve error tersebut.
*FYI : error tersebut muncul karena kita install melalui centos, jika anda menginstall dengan sistem
operasi windows kemungkinan error tersebut tidak akan muncul
Buka file odoo.conf dengan perintah ini “Vi /etc/odoo/odoo.cont”, kemudian tekan “Insert” dan
tambahkan sebaris perintah seperti gambar iniKemudian setelah menambahkan db_template = template0 tekan “ese” ketik titik dua “.” ketik
“wq” untuk quit dan write, kemudian enter (esc, :wq, enter, insert adalah perintah-perintah yang
digunakan untuk mengubah file di centos 7, jadi kalian harus familiar dengan ini yah... ©)
Sekarang kita harus restart server odoo kita dengan perintah “service odoo restart”
‘Sesudah odoo direstart silahkan refresh browser (tekan f5), dan lakukan lagi langkah membuat
database yaitu dengan mengisikan form nama database, email, password, dil
Seharusnya ketika di *
|
oO
Create Database” sudah berhasil
Odoo sudah muncul, tetapi ada yang aneh, tampilan jadi blank...
Him... error macam apalagi ini???
Untuk melihat error di odoo kita dapat melihat log file nya, di windows lokasi log file nya ada di
C:\Program Files (x86)\Odoo 10.0\server\ odoo.log (C:\ Karena saya menginstall odoonya diC)
Sedangkan di centos 7 lokasi log file nya ada di
Wwarllog/odoo/odoo-server.log, bisa gunakan perintah tail -f
Menjadi
tail—f /var/log/odoo/odoo-server.log
7Nah keliatan kan errornya, ada kata “addons_path” disana yang mana artinya ada yang salah
dengan lokasi addons yang ada di odoo.conf kita, jika kita lihat di odoo.conf kita dengan perintah
“cat /etclodoo/odoo.conf”, maka tampilan settingan addons_path kita
B roctoeept-
Jika kita lihat path /ust/lib/python2.7/site-packages/odoo dengan perintah “ls
/ust/lib/python2.7/site-packages/odoo, maka hasilnya akan seperti ini
Nah disinilah masalah nya, addon
“addons”, sedangkan addons-addons default bawaan odoo ada didalam folder tersebut, yang
mana salah satu addons nya bernama web, yang di error tadi dikatakan “keyError: web”
<_path yang kita setting belum sampai ke folder yang bernama
Langsung saja kita fixing masalah ini dengan cara mengubah addons_path di odoo.conf menjadi
ke folder “addons”
B® root@orpt/use/ib/python2.7/site-packaget/odoo/addont
Note : Cara mengubah addons_path sama seperti cara saat kita menambahkan pengaturan
db_template = template0, kalau lupa dilihat lagi ya cara ubah file dan menyimpan nya ©Setiap kali ada perubahan di odoo seperti konfigurasi (odoo.conf) kita perlu merestart odoo
dengan perintah “service odoo restart”, setelah restart coba refresh lagi browser yang tadi blank,
maka tampilan odoo kita sudah terinstal sempurna seperti ini
Ome x e- 2 «
odoo ” ~ SDs
bs .
=
=
Asyikkkkk,... Sudah disini tahap menginstall database pun sudah bisa dikatakan selesai, dengan
adanya dua error yang tadi sudah kita solve... ©
ai
=
[Baru di tahap install database saja sudah menemukan 2 masalah, yang mana kalau kita tidak mengerti
bisa membuat kita menjadi pusing... dan rasanya ingin bethenti me lanjutkan petualangan ini... tetapi...
‘menurut penulis... programmer yang takut dengan error belum bisa dikatan “the real programmer” ]
-ospt2.2 Cara Menginstall Module Default Odoo
Pada sub bab ini kita akan mencoba menginstall module-moduke (bisa juga dikatakan
addons) bawaan(default) dari odoo, semua moduke-module odoo ada di menu “Apps”
Itu adalah module-module yang sudah tersedia di odoo, kita dapat langsung menginstall
dan menggunakannya, sekarang mari kita coba menginstall Apps yang bernama “Website
Builder” yang fungsinya adalah membuat website dengan hanya “drag and drop”
seo:
Cara nya cukup mudah, hanya dengan mengetikkan nama module nya (dalam hal ini
website builder) kemudian klik install, dan pilih Theme nya (Bootswatch / Bootstrap)uote You Thame pawn a
B
Peet) acc)
Bebas saja pilih yang mana, di klik install dan dicek saja perbedaannya, itu hanya perbedaan
template yang dihasilkan melalui framework css (bootswatch / Bootstrap), saya mencoba
memilih yang bootswatch, maka setelah memilih tampilan akan menjadi seperti ini
‘od00
Welcome to your Homepage!
rate @ senting in
Oxmase Sane Coma scone as
Keren yah... tinggal klik klak klik install sudah jadi seperti itu tampilannya, sudah smooth pula
tampilannya, ketimbang kita buat pake ess yang ancur nya minta dit Ampun(kecuali para
mastah design) ©
Untuk menggunakan module yang sudah kita install kita bisa klik “Edit” (yang ada gelembung
biru di pojok kanan atas), sehingga tampilannya akan menjadi seperti ini
31Disebelah kiri muncul “Structure” yang berisi widget-widget yang bisa kita “drag and drop” ke
kanan, misalnya kita ingin menggunakan widget title (widget pertama yang ada tulisan Abed)
maka cukup “Klik” dan tarik ke kanan (lembar kosong), menjadi seperti ini
Your Website Title
doable
Tinggal ganti deh tulisannya menjadi seperti yang kita mau, kemudian tekan “Save” seperti
contoh dibawah ini‘odo i z
My First Website
Nah... as simple as that deh pokoknyaaa... sisanya tinggal sesuaikan dengan kreattfitas dan ide
masing-masing yah... ©
Nab diatas kita sudah berhasil menginstall module default / bawaan odoo, untuk module-module
‘yang lainnya pun cara menginstallnya sama, klik menu Apps kemudian cari nama module nya
ddan klik install,
32.3 Upgrade & Uninstal Module Odoo
Adakalanya module-module default/bawaan dari odoo belum atau kurang sesuai dengan
kebutuhan user (user requirement), oleh sebab itu perlu adanya “Customize” module yaitu
dimana kita mengubah-ubah module-module yang sudah ada maupun membuat module baru /
buatan kita sendiri (di Bab 3 Kita akan melakukannya) untuk memenuhi kebutuhan yang
diminta, tentunya jika ada perubahan didalam module odoo kita perlu melakukan “Upgrade”
Module untuk mengaplikasikan perubahan yang sudah kita buat
Caranya cukup mudah, cukup buka menu Apps, kemudian klik nama module yang ingin di
upgrade, maka didalamnya ada tombol untuk Upgrade
e Website Builder
By Odoo S.A.
ee Uninstall
Sama halnya dengan “Uninstal” memang jarang sekali kita uninstall Module akan tetapi itu tetap
diperlukan jika ada module-module yang baru kita install atau baru kita buat bermasalah dan
menyebabkan satu sistem tidak dapat digunakan maka kita perlu uninstall module tersebut agar
bisa digunakan kembali sistemnya, dengan catatan jika anda uninstall module artinya data-data
yang berkaitan dengan module tersebut akan hilang (terhapus).
2.4 Mencari Module di odoo.com/apps
Langkah yang paling tepat untuk menghemat waktu dan tenaga saat kita membangun
sistem (dalam hal ini dengan odoo) adalah dengan memanfiatkan module-module yang sudah
pemah ada atau yang orang lain sudah pernah buat, salah satu cara mendapatkannya selain
meminta pada teman yang punya (ini tipikal temen sue... kita buat susah susah dia main minta
aja -p) adalah dengan cara mencarinya di “odoo.comvapps””
Banyak module-moduke yang sudah di buat orang lain disana, yang tentunya ada yang berbayar
dan ada juga yang free, tinggal kita cari aja, cara nya mudah banget, sama seperti mencari
module di menu Apps odoo kita, oke mari kita praktikan langsungIni dia tampilan odoo.convapps
‘+ rte Odo0 ADPS
Cukup ketik nama module yang ingin kita cari, misalnya kita ingin mencari module yang dapat
me-load video di web yang tadi sudah kita buat, maka ketik saja keyword seperti “embed video”
‘0d00 Apps tee ae Sei
‘Nah... kebetulan ada tuh... maka beruntunglah kalian yang butuh moduke ini, anda tidak perlu
membuatnya,cukup klik modulenya kemudian download saja module nya untuk kemudian
diinstall
Kita bisa filter module di odoo.convapps dengan kriteria FREE atau PAID, juga module untuk
apa (Accounting, Sale Order, Point Of Sale, dil), juga kita tentunya bisa filter berdasarkan
versi 0d00(6,7,8,9,10,11)
35,Embed Videos vane —
Jangan lupa filter versi nya, karena versi odoo kita 10 dan kebetulan module nya support untuk
versi 10, maka cucok... bisa kita gunakan...
2.5 Menginstall Module dari odoo.com/apps
Setelah kita mendownload module “Embed Videos” Di Sub bab 2.4, kita akan
menerapkan module tersebut di database kita, dengan kata lain kita akan menginstall moduke
tersebut... Tapi bagaimanakah caranya?
Cukup mudah... yaitu hanya dengan mengekstrak file yang tadi kita download (dalam bentuk
zip) menjadi sebuah folder
Open
‘BD Enrectfiles...
S batract Here
'B Extract to embed video-10.0.1.0\,
Begini tampilan setelah zip nya diextract, maka akan ada folder bernama embed_video
‘embed video 12/25/2017 10:55... File folder
‘embed video-10.0.1.02ip 12/25/2017 10:55... WinRAR ZIP archive 3KB
Setelah sudah terbentuk folder, kita cukup copy saja folder tersebut ke lokasi module-module
‘doo, secara default jika anda menginstall odoo di C:\ maka lokasi default module- module odoo
adalah di C:\Program Files (x86)\Odoo 10.0\server\odoo\addonsPC > Local Disk (C:) » Program Files (86) > Odoo 100 » server + odoo » addons
Name Date modified Type Sire
() embed video 12/26/2017 11:16. File folder
Th event 7PO1T3OTPM Filefolder
event sale 12972017 307 PM Filefolder
fetch 1/29/2017 3:07PM Filefolder
fleet 7/29/2017 307 PM File folder
gamification 7/29/2017 3.07PM Filefolder
sgamifcation_sale_crm 7/29/2017 3:07PM Filefolder
google account 7/29/2017 3:07PM Filefolder
google_calendar 7/29/2017 307 PM File folder
google drive 7/29/2017 3:07 PMA File folder
google spreadsheet 7/29/2017 3:07PM Filefolder
hr 7/29/2017 307 PM Filefolder
Setelah Fokler module di Copy langkah selanjutnya kita perlu restart service odoo dengan cara
tekan Ml + R bersamaan, kemudian ketikkan “services. msc”
Run x
{Ey Bpethename of «program, folder, document, rntrnet
resource, and Windows will open it for you.
Kemudian klik “OK” dan cari odoo“Sees - 0 x
file Action View Hp
#2) mos Bolo
weve Tm
doo server 100100, Name Descigtion Status Startup Type Log *
Codoo-server-100 100 Running Automatic Loc
— Gotice Soucetngine Saves instal Manual Loc
Lote SotwarePetecion Ofc Se. Manual Net
Gottine Fee The One Manu Tig. Lee
Dhoptimse ves Hee tnee Manual Lee
GiPeerName Recon rot. Enables se Manual Lee
Greer Networking Grouping Enables mul Manual Lee
“QaPeer Networking Identity M... Provide ide Manual Loe
‘QPertormance Counter DLL... Enables vem, Manual Loe
‘Ghpetomance Loge Ales Pefrmane Manual ee
GPhone Seve Manageth Manu Tig. Lee
GyPiug ana Pay Enalerse.. Running Manual Lee
‘G\PNRP Machine Name Publ. Ths see Manual Lee
GiPonabieDevice rumor. Eneres 9 Manual Tig tee
GpongesOl For Odo. Running Automatic or
Qrower Manages... Running Automatic Loc
‘QePrint Spooter ‘This service.. Running Automatic Loc
GiPrinter tenons nd Neti. Th serie Manual Loc
GhProblem Repos an Soli Th erie Manual Lee
‘GiProgam Comput asi- Thssenice.. Running Automatic Loe
Qadnity Windows A Vid Quy Win. Manual Lee ¥
\ tends (Sana
Klik “Restart the service”
Sesudah Restart service odoo, K ita Perlu Melakukan “Update Apps List” dengan cara ke Menu
‘Apps dan klik “Update Apps List”
— aoe. |
= =o" =o” aa
a = a= —_—
Jika ada yang di menu Apps nya tidak ada “Update Apps List” itu artinya anda belum
mengaktifkan mode developer, Cara mengaktifkannya ada di menu Settings* s & <
- O88
Klik saja “Active the developer mode” maka secara otomatis di menu Apps ada “Update Apps
List”
Klik “Update Apps List” sehingga tampilan akan seperti ini
Langsung saja klik “Update”
Setelah di update maka sekarang coba cari nama module yang kita sudah tambahkan tadi
(embed_videos)
‘Nah... module yang kita download dari odoo.comvapps sudah ada di Apps kita, dan kita bisa
install..
Pertanyaannya... Bagaimana kita melakukannya jika sistem operasi kita Centos7?
Konsep nya sama persis, yang membedakan hanyalah, jika ingin Copy file module ke centos7
kita memerlukan Winscp atau Fikzila (software untuk copy file dari windows ke linux)
Seperti ini jika kita memindahkan foldernya melalui winsepBee arenes ner
EE PED Geen tas oe ce
Smetananie gucsaoe
a ee
if
HE
unt
Kita dapat lihat bahwa lokasi default addons odoo ada di
/ust/lib/python2.7 site-packages/odoo/addons
Untuk mengetahui lokasi addons kita dapat melihat odoo.conf
Nah... kita sudah mengerti cara menambahkan module-module dari luar, tetapi ada tips and
trick nih dari saya, tadikan kita meletakan module nya ditempat yang sama dengan module-
module bawaan odoo, tetapi alangkah baiknya kita membuat folder kita sendiri untuk module-
module diluar module bawaan odoo, alasannya adalah
Y Lebih Rapih
Y Gampang Mencari
Y Tau yang mana yang hasil custom kita senditi
¥ Mencegah komputer kena virus (Karena lokasi default di windows C:\) lebih baik di
jangan didisk C:, letakkan diluar disk yang digunakan sistem operasi seperti D:\ dan lain
Jain
vy DI
Nab itulah kurang lebih mengenai instalasi module, di Bab berikutnya saat kita membuat module
sendiri kita akan coba membuat folder kita sendiri untuk tempat module yang kita buat,
Keep fighting... ©BAB 3 : Membuat Module Sederhana di Odoo
Dibab sebelumnya kita sudah mengenal sekilas tentang odoo, dan bagaimana kita
mencari dan menginstall module-module di odoo.
Lalu bagaimana saat kita membutuhkan suatu module tetapi belum ada orang yang membuat
module tersebut? Kita cari-cari di google tidak ada, juga di odoo.com/apps tidak ada...
Maka langkah yang harus dilakukan adalah MAU TIDAK MAU Ya kita harus membuatnya
sendiri, nah di Bab inilah kita akan melakukannya.
Kita akan mencoba membuat sebuah module yang bernama “Fulus Management System” yang
terdiri dari FORM Input pengeluaran, FORM Input pemasukan, juga REPORT untuk
menampilkan pengeluaran dan pemasukan kita...
Jika module ini telah selesai dibuat, maka akan saya berikan link nya untuk bisa
dilihat,diubah, maupun di gunakan,
Sudah tidak sabar kan? Mari langsung kita lakukan,
Modal Perang==:
+ Text Editor (Bebas, pilih salah satu yang anda sukai)
> Sublime Text: https’/notepad-plus-plus.orgidownload/v7.5.4.html
> Notepad++ — :https:/www.sublimetext.conv3
> Pycharm —_: https//www.jetbrains.com/pycharmvdownload
* Semangat dan Daya Juang ©
Download dahulu salah satu editor diatas, yang mana saja yang anda suka, tapi kalau spesifikasi
laptop / komputer anda mencukupi maka bisa menggunakan Pycharm karena memang memiliki
fitur khusus sebagai editor python, tetapi jika spesifikasi laptop/komputer nya biasa-biasa saja
atau mungkin tidak terlalu tinggi bisa menggunakan sublime text 3 dan notepad+-+ latest version.
4a.3.1 Struktur Folder Wajib Module Odoo
Untuk membuat sebuah module di odoo kita memiliki2 file yang wajib ada yaitu
—init_py dan juga_openerp__py /_manifest_py
Untuk file _openerp__.py dan _manifest__py bisa kita gunakan salah satu, keduanya bisa,
tetapi untuk versi 10 seharusnya sudah menggunakan__manifest__py walaupun bisa saja jika
menggunakan _openerp__.py
Supaya lebih komplit mari kita langsung praktekan, kita buat dahulu sebuah folder di partisi kita
selain partisi C (seperti D,E,F.dll), kali ini saya akan membuat fokler nya di partisi saya (E)
7314 (E)
Fe) eee) ee
eh ae This > HUET
sédons ‘yanoie34t PM Felder
Saya membuat folder bernama “addons” di partisi E saya, kemudian buat sebuah fokler lagi
didalam foler “addons” dengan nama “first_module”
buka foldernya dan buat kedua file yang WAJIB Hukumnya tadi...
2 _init_py 1/2/20183:43 PM Python File oKB
P _manifest_ py 1/2/2018 3:45PM Python File OKB
Sehingga ada dua file yang memiliki extension .py (Python File) didalam folder “first_module”
ThisPC » 7314(E) » addons » fist module YG Search fet rm
Name . Datemodified Type Size
/2/2018343 PM Python File os
2/5/2018 11:25PM Python File 18
a23.2 Membuat Menu dan Sub Menu
Didalam suatu aplikasi yang kita buat tidak terlepas dari Menu Maupun Submenu, maka
i sub bab kali ini kita akan belajar bagaimana membuat menu dan sub menu di odoo.
Jika di sub bab sebelumnya kita membuat 2 file dengan ekstension .py maka kal ini kita akan
membuat file lagi, tetapi dengan ekstension .xml, karena di odoo untuk membuat menu dan
submenu menggunakan file dengan ekstension .xml
Jangsung saja buat sebuah file dengan nama menu.xml (pastikan meletakan file menu.xml nya
difolder yang sama dengan file __init__py dan__manifest_.py yang sebelumnya telah kita buat
di folder “first_module”)
kemudian isi file tersebut dengan code seperti ini
Bile Edit Selection Find View Goto Tools Project Preferences Help
FOLDERS
& addons
y B first module
B _init_oy
B _manitest_oy
Struktur yang sudah di buat oleh odoo untuk file xml adalah dengan tag
dan juga tag
Dan code untuk membuat menu nya ada diantara tag , jadi seperti ini aturannya
...Codingan menu disini.....
Maka langsung saja kita tambahkan menu nya dengan code seperti ini
a3
<{-- Aksi ketika sub menu pengeluaran di klik -->
Form Pengeluaran
t-pengeluaran
tree, form
""MenuParent” sequence="10"
Maka file menu.xml kita akan menjadi seperti ini
Simpan file menu. xml
44Nah code untuk menambahkan menu hanya sesimpel itu, yaitu dengan menggunakan tag
dengan attribute :
> Id :sebagai pengenal dari menu id (yang nanti nya bisa digunakan sebagai referensi
dari menuitem ini jika nantinya ingin digunakan / di referensikan di menu lain)
> Name : Nama menu nya ( Bebas )
> Sequence : Urutan menu tersebut di tampilkan
» Action : Action yang dilakukan ketika menu / sub menu di klik ( Diisi sesuai id action
yang akan ingin dituju )
Kita juga ada melihat tag yang mana fungsi nya untuk mengarahkan sebuah menu / sub
menu yang diklik ke model ( yang nantinya akan terhubung ke sebuah Form )
> Name : Nama dari actionnya ( Bebas )
> Res_model : Model yang akan digunakan untuk form ( berhubungan dengan table,
relasi, fiekd, data, dsb )
» View_mode : Mode view yang akan diberikan (tree,formkanban, list,dsb)
Karena adanya Res_model di action yang mana code diatas kita isi dengan tpengeluaran
t.pengel
Maka kita perlu membuat kan “Model” dengan nama t.pengeluaran, untuk istilah-istilah seperti
Model, View, Controller (MVC Concept ),table, field, data, record, dsb kita harus sudah
familiar, karena itu hal yang umum kok di bahasa pemrograman apapun dan framework apapun
eo
‘Oke mari buat sebuah file lagi bernama model.py untuk membuatkan model tpengeluaran di
doo, model di odoo terletak pada file dengan ekstensi .py ya...
Isidengan code seperti ini
from odoo import api, fields, models, _
class Pengeluaran(models. Model):
_name = 'tpengeluaran’
doc_number = fields.Text()
Sehingga akan menjadi seperti ini
45,[BF Exaddons\fist modulmodelpy (ist module) - Sublime Text (UNREGISTERED)
Ble Edt Selection Find Yiew Goto Jools Project Preferences Help
¥ & fist module
ee
Simpan file model_py dan Sekarang buka file _manifest_.py, dan tambahkan code berikut
{
“name” : "Belajar Membuat Module di doo",
"version" 210",
“depends”
1
“author” : "kodekite@ gmail.com’,
“category” :"Odoo",
“website” “onespt blogspot.com’,
“description” :"1. Belajar Membuat menu’,
“data”
1
“installable”: True,
“auto_install" : False,
“application” : True
}
Schingga file _manifest__.py menjadi seperti iniFile Edit Selection Find View Goto Tools Project Preferences Help
¥ & addons
y & tist module
B _int_oy
Keterangan :
Name : adalah nama module yang akan kita buat
Version : versi dari module yang kita buat
+ Depends :keterkaitan module kita dengan module lain
+ Author : Pembuat module
+ Category : Kategori moduke
‘© Website : Informasi website yang ditampilkan di module
+ Description : Deskripsi module
‘> Data : File-File Xml yang akan di load oleh module
‘Installable : Apakah module dapat di install (True / False)
“© Auto_install : Apakah module ingin secara otomatis di install (True / False)
* Application : Apakah module ini termasuk aplikasi (True / False)
Setelah kita lihat penjelasan diatas kita dapat melihat bahwa fungsi Data adalah untuk memberi
dafiar file-file xml mana saja yang akan dijalankan oleh moduke kita, maka sekarang ubah code
i__manifest_.py dengan menambahkan file menu.xml di data, menjadi seperti ini
a7File Edit Selection Find View Goto Tools Broject Preferences Help
y © addons
¥ & first module
B —init_py
B menuxml
Simpan file _manifest_py
Dikarenakan kita membuat module diluar dari folder “addons” default odoo, melainkan di partisi
lain
isPC > 7314(E) > addons
Name Date modified Type
first. module 2/5/20181055 PM Filefolder
maka kita perlu mengubah konfigurasi odoo yang ada di file odoo.conf
SPC» Local Disk (C) > Program Files (86) » Odoo 10.0 > server
Name “
Dstemodiied Type
EB numberspye 2017831 AM Compiled Python ie
B odoo.cont 3/20189:16AM — CONFFile 2kB
[B odooiog 252018 1:20PM Tee Document 058 Ke
[5 odoo-bin.exe 3/6/2017 8:33AM Application 21KB
Menjadi seperti ini di bagian addons_patha Eat Saeton Fad i tea Dect Pade
Save file odoo. conf , dan restart service odoo(karena berhubungan dengan file ber-ekstensi
-py maka kita perlu merestart service, juga jika berhubungan dengan perubahan di file
konfigurasi odoo kita periu restart service), cara merestart service sudah kita pelajari di sub
bab 2.5 saat kita belajar menginstall module
Setelah service sudah di restart, lakukan “Update Apps List” Seperti yang sudah kita pelajari di
sub bab 2.5 tentang menginstall module
Maka sekarang seharusnya modu kita sudah tersedia dimenu Apps odoo kita, sekarang tinggal
kita cari dengan nama first_module (Sesuai nama folder yang kita buat untuk file-file module
kita)
odoo van sows ’
Yang mana kalau kita klik module nya akan menampilkan detail dari module sesuai dengan code
yang telah kita buat
Belajar Membuat Module di Odoo
by icetingamacon
Sekarang kita bisa install module pertama kita dan melihat menu yang sudah kita buat
Se
— a
odoo =
ee =
49Kita dapat melihat ada menu di top menu yang bernama “Fulus Management” dan di bawah logo
odoo terdapat sub menu bernama “Pengeluaran”, juga kita melihat ada Form Pengeluaran. ..
Waw... less code banget ya... sudah jadi menu, sub menu, form beserta CRUD ( Create, Read,
Update, Delete ) nya, juga sudah tersedia filter / search data loh hanya dengan beberapa file yang,
code nya juga tidak sampai ratusan ©
Ketika kita klik Button Create
Form Pengeluaran New
‘Oke sekarang coba klik-klak-klik dahulu semua yang sudah dibuat, coba untuk create dan
masukan data, kemudia coba filter dan search, karena nantinya SEMUA form odoo akan seperti
itu secara default... Di sub bab berikutnya kita akan belajar mengenai form lebih detail lagi ya...
®
3.3 Membuat field-field di odoo
Sekarang kita akan membuat field-field di odoo yang mana field nya akan kita gunakan
di form nantinya.
Sama halnya saat di bab sebelum nya kita membuat sebuah model bernama “tpengeluaran” dan
membuat sebuah field bernama “doc_number” di file modeLpy
Baiklah langsung saja kita buka file modeLpy, dan tambahkan code ini
tanggal_pengeluaran = fields.Date()
jumlah_pengeluaran = fiekds.Float()
Sehingga file model.py menjadi seperti iniHl E\addons\first module\modelpy (fist. module - Sublime Text (UNREGISTERED)
File Edit Selection Find Yew Goto Tools Project Preferences Help
FOLDERS
B _init_.py ° Es eaestsC
BB _manitest_py
menuxmt
Dengan menambahkan kode tersebut maka odoo akan membuatkan field di database (postgresql)
dengan nama dan type data yang di tuliskan, maka setelah field dibuat kita bisa menggunakan
field nya di form (praktek di Sub bab berikutnya tentang “membentuk form dengan field odoo”)
Begitulah cara menambahkan field di odoo, nama field bebas yang menentukan jenis dari field
itu adalah di type data, berikut beberapa daftar type datanya
© Text /Char : Untuk menyimpan data yang berbentuk Text / karakter
© Integer : Untuk menyimpan data yang berbentuk angka / numeric
> Date : Untuk menyimpan data tanggal (tanggal — bulan - tahun)
© Datetime : Untuk menyimpan data tanggal beserta waktu (tanggal ~ bulan — tahun
jam:menitdetik)
Float : Untuk menyimpan data angka yang mengandung decimal, seperti uang, dsb
‘One2many : Untuk membuat field yang bersifat relasi Satu ke Banyak, seperti Satu
‘Company punya banyak Employee
© Many2one : Untuk membuat field yang bersifat relasi Banyak ke Satu, seperti Banyak
User dalam satu Group
© Many2Many : Untuk membuat field yang bersifat relasi Banyak ke Banyak
go
3.3.1 Membuat field relasi di odoo
Sebuah relasi adalah hal yang diperlukan untuk menghubungkan antar Form-Form yang
ada didalam sistem, dalam hal ini odoo memiliki field dengan type One2many, Many2one,
Many2many untuk membuat relasi antar table, maka sekarang buka lagi file model.py untuk
membuat field- field relational odoo, dengan code seperti ini
user_id = fields. Many2one(‘res.users’, string="Nama User’, default=lambda self:
selfenv.user)
51sehingga file modelpy menjadi seperti ini
Te etna
res.users : adalah table yang ingin direlasikan dengan table t pengeluaran
string : adalah Deskripsi field yang akan di tampilkan di form
* Default : adalah nilai default yang ingin di isi ketika form dibuka, dalam hal ini di set
‘menjadi user yang sedang login ke sistem (self.env.user)
Begitulah cara membuat relasi Many2one ( Banyak user hanya 1 yang di pilih di penjualan form
), sekarang tambahkan lagi code ini di file modelpy
penjualin_detail = fields. One2many(tpengeluaran. line’ ‘pengeluaran_i
Detail’)
, string="Pengeluaran
class PengeluaranDetail( models. Model):
tame = 'tpengeluaran.line’
deskripsi_pengeluaran = fields.Text()
amount = fields.Float()
pengeluaran_id = fiekls. Many2one(‘tpengeluaran’, string="Pengeluaran Header’,
required=True, ondelete='cascade’)
Sehingga file model.py menjadi sepe
52Ketika kita ingin menambahkan relasi One2many (Satu Penjualan mempunyai lebih dari 1 /
banyak Detail Penjualan ) maka kita harus membuat field juga di table yang di tuju sebagai
penghubung, perhatikan fie! penjualan_detail dan pengeluaran_id kedua field itu terhubung,
karena di fie! penjualan_detail disebutkan table tujuannya yaitu t.pengeluaran.line dengan
field pengeluaran_id sebagai referensi nya
Sekarang simpan file modeLpy, kemudian restart service odoo ( ingat pembelajaran awal
mengenai module odoo dan cara merestart service nya)
Maka saat kita sudah restart service dan buka odoo tampilan form nya akan menjadi seperti ini
aa,
odoo =
Form secara otomatis berubah menjadi seperti itu karena kita menambahkan field-field relasi di
modelpy kita
Jadi jika kita membangun sistem di odoo, kita bisa membuat sistem tanpa perlu melihat atau
menyentuh database nya, kita bisa buat table dan field hanya dengan code yang kita tuliskan di
model odoo
53Wah... makin seru ya... ini nih codingan full yang udah kita buat di model.py
from odoo import api, fields, model, _
class Pengeluaran(models. Model):
doc_number = fields.Text()
tanggal_pengeluaran = fields.Date()
jumlah_pengeluaran = fields Float()
user_id = fields. Many2one(‘res.users', string='Nama User’, default=lambda self:
selfenv.user)
penjualan_detail = fields.One2many(t.pengeluaran. line’, pengeluaran_id’,
string='Pengeluaran Detail’)\
class PengeluaranDetail( models. Model):
_name = 'tpengeluaran.line™
deskripsi_pengeluaran = fields.Text()
amount = fields.Float()
pengeluaran_id = fiekls. Many2one('t pengeluaran’, string="Pengeluaran Header’,
required=True)Bayangkan hanya dengan 20 baris code kita sudah bisa membuat form di odoo TANPA.
MENYENTUH DATABASE, yang perlu kita pahami hanya konsep, dan dengan sedikit code,
maka kita sudah bisa membuat form yang kita butuhkan, AKAN TETAPI kita perlu
menyempurnakan lagi FORM yang default dibuatkan odoo, karena ada beberapa yang ingin kita
atur posisi nya, ada beberapa pula yang ingin kita hilangkan dari form (tidak perlu ditampilkan).
Mudah kan....? Jangan terlalu serius, coba berenti dulu sebentar, ke warung dan beli kopi untuk
Janjut ke pembelajaran berikutnya, yang pastinya lebih seru dan menyenangkan...
3.3.2 Membentuk form
Memang secara default sudah terbentuk sebuah form setelah kita membuat sebuah menu
dan submenu yang kemudian diarahkan ke suatu model odoo yang didalam nya ada field-field
yang kita deklarasikan, akan tetapi itu hanyalah form default yang disediakan oleh odoo, jadi kita
perlu melakukan perubahan-perubahan agar form yang dihasilkan sesuai apa yang kita ingin, nah
sekarang kita akan mencoba membentuk form yang sudah ada (secara default) menjadi tampilan
yang lebih rapih baik dari sisi posisi penempatan inputan, keterangan inputan, dsb.
Sama halnya saat kita ingin menambahkan menu dan submenu di odoo, yaitu dengan
menambahkan code di file dengan ekstensi xml saat kita ingin memanipula form pun kita cukup
menambahkan code di file dengan ekstensi xml
Baiklah langsung saja kita praktekan, buat sebuah file baru (masih di difolder yang sama yaitu
“first_module”), misalnya nama file nya adalah “pengeluaran. xm!”
55,Setelah membuat file, isi file tersebut dengan code seperti ini
t.pengeluaran,form
t-pengeluaran
form
Schingga file report.xml menjadi seperti ini
toni module repat am it, mode) «Sule Tet (UNREGISTERED)
Bile [4 Selection Find View Goto Teck Boiect_ Preferences Help
¥ BS tat moaue
1B _nt_or
Bi ceantest_oy
Bens
B oseioy
BB pengeusansmiSeperti biasa, setelah menambabkan file baru kita harus meload nya di manifest.py
{HE EAaddons\ ist module_manifes_py (st module) - Sublime Tet (UNREGISTERED)
Ble [de Selection Find Yew Goto Toole Project Preferences tp
¥ Gist module
B —int_oy
B mena!
1B modetpy
By pengetuarnam!
By reportxmt
Seperti biasa, restart service odoo dan akan muncul tombol untuk Report Pengeluaran kita
Pengeluaran Hari Kamis
Dan jika tombol itu di klik akan terdownload pdf dengan nama ReportPengeluaranpdf
Seperti iniReport Pengeluaran.pdf
© http:/localhost:2069/re wnload
Show in folder
Dan jika pdf nya dibuka akan tampil seperti ini
Nah ditahap ini anda telah berhasil membuat sebuah report dalam bentuk pdf, nanti tinggal kita
lah bagaimana bentuk report yang kita inginkan
Mari kita membahas mengenai code yang sudah kita jalankan tadi
adalah tag yang digunakan untuk membuat tombol print out seperti ini
70Pengeluaran Hari Kamis
1d : identitas dari tag report itu sendiri
String : Tulisan yang ditampilkan di tombol
Model : Nama model yang akan menjadi sumber data di report nantinya
Report Type : Tipe dari report yang kita hasilkan, dalam hal ini pdf
File : Nama file yang akan terbuat, dalam hal ini Report Pengeluaran.pdf
Name : Nama template Qweb yang akan kita buat, dalam hal ini
first_module.report_pengeluaran_template karena harus di sertakan nama folder baru id
dari tag
2
>
2
2
2
>
Sedangkan tag ini
Hello Joko
Je
Mempunyai fungsi untuk membentuk report kita, nantinya jika kita ingin mengubah-ubah bentuk
atau tampilan dari report kita bisa mainkan didalam tag
ini, kita bisa menggunakan
bahasa xml maupun html
nBAB 4 : Modifikasi Module Default Odoo (Inheritance)
Didalam membangun sistem dengan odoo memang kita bisa membuat FORM dan
REPORT kita sendiri dari awal, akan tetapi ada kalanya dimana kita membutuhkan FORM atau
REPORT akan tetapi odoo telah menyediakannya, dan ada juga case dimana kita hanya perlu
mengubah sedikit dari FORM atau REPORT yang sudah ada.
maka dari tu penting juga bagi kita untuk memahami bagaimana cara mengubah FORM dan
REPORT default atau bawaan dari odoo itu sendiri
Diodoo kita bisa langsung mengubah-ubah code original yang ada di komputer kita, yaitu
code yang ada disini
C:\Program Files (x86)\Odoo 10.0\server\odoo\addons.
2 » Local Disk (Ci) » Program Files 686) » Odoo 100 » server » odoo » addons
Name Date modified Type Size
account 7/29/2017 3:06PM Filefolder
account accountant 7/29/2017 3:08PM Filefolder
account analytic. default 7/29/2017 3.06PM Flefolder
account asset 7/29/2017 3.06PM File folder
account bank statement import 7/29/2017319PM_—_Filefolder
account budget 7/29/2017 3:08PM ilefolder
account_cancel 7/29/2017 3:06PM Filefolder
account_check printing 1/29/2017 306PM File folder
account tax_cash basis 7/29°2017 3.08PM Flefalder
account tax python 7/29/2017 3:07PM Filefolder
account test 7/29/2017 3.07PM Flefolder
account voucher 7/29/2017 3:07PM File folder
Kita bisa saja langsung membuka file py dan .xml yang ada ditiap-tiap folder yang ada disana
yang tentunya akan merubah FORM maupun REPORT dari odoo
AKAN TETAPT [tu adalah cara Koboi... dan sangat tidak disarankan, karena jika kita
coding dan membuat error... itu akan membuat kita sulit untuk memperbaikinya....
MAKA DARI ITU Kita tidak akan mengubah langsung code yang ada disana, MELAINKAN
Kita menggunakan teknik “Inheritance” atau Konsep Turunan, yang mana kita tidak code
langsung di source code original, tetapi kita membuat sebuah module / addons untuk
menurunkan code original tersebut dan mengembangkan code nya di module / addons kita
Hasil nya biasa disebut Custom Module / Custom Addons
nR4.1 Inherit Model
Pada sub bab ini kita akan mencoba Inberit sebuah model yang sudah ada secara default
di odoo, pertama-tama mari install module / addons yang bernama Invoicing
Buka menu Apps dan cari dengan kata “invoicing”
| ir
Install dan tunggu hingga loading selesai, maka menu akan menjadi seperti ini
Maka akan tampil Form Invoice yang sudah ada default saat kita menginstall module / addons
bernama “invoicing”
BNah FORM inilah yang akan kita inherit model nya untuk dapat melakukan beberapa perubahan
pada model, seperti menambahkan field-field baru, membuat function / method baru, dsb persis
seperti yang sudah kita pelajari di bab sebelumnya.
‘Caranya sangat mudah cukup baca dari URL yang ada di browser saja
‘Cukup lihat di URL sebuah kata yang ada didalam “model” di URL, itulah nama model nya
yang akan kita inherit, dalam hal ini adalah “account invoice”, jika sudah tahu nama model yang
ingin di inherit, langsung saja buka file model_py kita dan tambahkan code ini
class InheritInvoice(models. Model):
inherit = ‘account. invoice’
74.sehingga model.py menjadi seperti ini
Class InberitInvoice(models.Model) berfungsi untuk membuat sebuah class baru dalam object
models. Model odoo
inherit = ‘account. invoice’ berfungsi untuk menurunkan class yang bernama “account. invoice”
DAN INGAT jika ingin menurunkan model kita harus meload folder yang membuat model
tersebut di__manifest__py, karena kalau tidak akan error seperti ini di file odoo.log
Dan di odoo akan tampil error seperti ini
5(© sto nara ener
© © Oveanes
Internal Server Error
‘The server countered an tera ror an wa able complete our request Eiterthe serve i ovrlouded other ian enor in the application.
Cara load nya mudah hanya dengan menambahkan nama folder dari model yang akan kita load,
Buka file __manifest__.py dan ubah hingga menjadi seperti ini
BE E\addons\first_ module\_manifest_,py (addons) - Sublime Text (UNREGISTERED)
File Edit Selection Find View Goto Tools Project Preferences Help
¥ © addons
y ES twst moaute
B _init_py
© menus
& modetpy
By pengetuaran nt
reportxmi
Mengapa kita menambahkan “account” di depends ?
Itu karena file account.invoice yang didalam nya ada model account. invoice itu berada didalam
folder yang bernama account, kita dapat melihat dari gambar ini
76| models
€ <> ThsPC > LocaDisk (CD » Program Files 6) » Of00100 > saver» ooo > addons »Leoun} models
Name ° Date modified Type Size
of Quick acces
int aythonfie 8
ta Ondine © Linen empied Phen ie
amr ? wcouny Python 08
B sccountye Completion. KB
i Desitop ? account_analytic_line py Python File aKB
Documents, B account analytic ine pyc ‘Compiled Python. To
Downionds 1 account bork sterertpy bythe sexe
2 Mac scout bark statement ye Compiled yon be
© Pictures ? accountinvoicepy 8/19/2017 138 PM Python File 75KB
i Viceos B account invoice pye TAEPM Compiled Python. 7K:
vba (e) tecount journal nhboudpy a7oigeao ak pyrene se
B account ioumal dashboard.ove ‘7/25/2017 3:13PM Compiled Prthon 17KB
Jika kita sudah menurunkan modelnya, maka kita bisa melakukan hak hal seperti menambah
field, mereplace field-field yang sudah ada, juga function / method yang sudah ada maupun yang
ingin dibuat di model tersebut
Marikita coba untuk membuat sebuah field baru yaitu field pengeluaran, tambahkan code ini di
modelpy
pengeluaran_detail = fields.One2many(‘t-pengeluaran,, ‘penjualan_detail’,
string='Pengeluaran Detail’)
74.2 Inherit Form
Jika di sub bab sebelumnya kita sudah inherit model “account invoice” dan juga sudah.
menambahkan field bernama pengeluaran_detail, maka di sub bab ini kita akan menampilkan
field tersebut di FORM default / bawaan odoo yang bernama Invoice Form dengan cara inherit
FORM nya, Pertama pastikan bahwa odoo dalam keadaan developer mode
‘© camer ies -O5.
€ > © O tecomost
Customer Invoices
odoo
ssions with your customer are automaticaly displayed atthe botton
Jika di url ada “2debug” itu artinya anda sudah dalam keadaan developer mode
Buka form dengan cara klik tombol “Create” dan kemudian klik icon bergambar kumbang
Ono x °
& 0 owasDan klik “Edit Form View"
Onno
a
‘Akan muncul tampilan seperti ini
Omom x
Nah disitulah kita mendapat beberapa informasi untuk kita dapat inherit form di odoo
‘Ada beberapa yang perlu di lihat yaitu External ID, View Type dan ModelSekarang langsung saja kita inherit form invoice, dengan membuat sebuah file bernama
“invoice.xml” dan menambahkan code seperti ini
<[-- Inherit Form Invoice -->
record id=
‘account.invoice_form_pengeluaran” model="ir.ui. view">
account.invoice_form_pengeluaran
account.invoice
formé/field>
Schingga file invoice.xml menjadi seperti iniDan jangan lupa... jika menambahkan file .xml tambahkan di__manifest_.py
estore modl_manden_ (doen Tet UNREGISTERED
+ ose
ye rot nosue
enact
2 soot
Dan terakhir, pastikan code di model.py ada 3 baris code seperti ini
_tec_name = 'doc_number’
invoice_pengeluaran_id = fields. Many2one(‘t.pengeluaran’, string='Pengeluaran’, required=True)
pengeluaran_detail = fields. One2many(pengeluaran’, 'invoice_pengeluaran_id’,
string="Pengeluaran Detail)
81Code sudah cukup dan langsung saja kita Restart Service dan Upgrade Module Sehingga Form
Invoice menjadi seperti ini
‘Akan bertambah inputan Untuk memasukan Pengeluaran, yang jika kita klik “Add an item” akan
‘menjadi seperti ini
82‘Nab, begitulah cara inherit Form di odoo...
Mudah kan??? ©
Kita sudah bisa inherit Model dan Form dari odoo, maka itu bisa menjadi modal awal kita untuk
merombak-rombak odoo yang apa adanya menjadi sesuai dengan kebutuban...
4.3 Inherit Print Out (Qweb)
Terakhir namun tidak kalah penting, di sub bab ini kita akan mencoba untuk inherit
print out (Qweb) dari odoo, Jika di sub bab sebelumnya kita telah mempelajari cara membuat
print out pdf (Qweb), maka kali ini kita akan inherit Qweb yang sudah ada di odoo, dan
menambahkan “sesuatu” disana.
Karena kadang kala kita memerlukan ini disaat print out default bawaan odoo bisa digunakan,
dan hanya membutuhkan sedikit perubahan.
Misalnya Report “Trial Balance” odoo yang tampilan awalnya seperti ini
83(O nccwingounsons x 0 Yalbdeceet
Jone Downiosinan20Bsnce nat
code
1613000
1613200
1613300
613302
613400
‘11100
‘811200
‘911100
Menjadi Seperti ini
Account
Bioya Meeting
Kantor
Biaya Seway
angsuran
Bioye Operasiona
Bloya Am Bank
‘loys Pak Bunga
Bioyo Pak 22
BlayaLain-ain
Pendapatan
‘unga
Pendapatan Lan
Pak Penghaston
© AconingOtonr = J [) Tal bone pe
Jonae/Downlae/eaP70Rae pl
bebit
737.700.0018
34,142,265.00108
529,500.00 OR
1.426,159.00 OR
126,005,770.00 OR
0.00108
0.00 0
7,070;561.00 OR
creat
0.00108
0.00.08
0.00 08
0.00108
9,000.00 OR
148,97498108
187,001.00108
0.00 08
Balance
737,700.00 OR
40,300,000.00 OR
34,142,265.00 OR
529,500.00 OR
1.426.159.00 DR
25,996,770.00 OR
1489749808
187,001.00 OR
7,070,561.00 OR
code
613100
613200
613300
613301
613202
613400
11100
#811200
911100
Total
Account
Biaya Meeting
Kantor
Blaya Seway
angsuran
Biaya Operasional
Blaya Adm Bank
Biya Pojak Bunga
Bloya Pak 22
Biya Latin
Pendapatan
unga
Pendapatan Lai
‘ae
Palak Penghasian
Debit
737,700.00 OR
40,300,000.00 OR
34.242.265.00 OR
529,500.00 OR
29,794990R
2.426.159.00 OR
26,005,770.00 OR
0.00 08
0.00 108
7,070,561.00 OR
credit
0.00 oR
0.00 oR
0.0008
0.00 oR
0.00 oR
0.00 oR
9,000.00 oR
148,974.98 OR
187,001.00 oF
0.00 oR
1,609,555,154.541DR 1,609,555,154.54 DR
Balance
737,700.00 OR
40,300,000.00 OR
34,142,265.00 OR
529,500.00 OR
29,794990R
1.426,159.00 OR
25,996,770.00 OR
148,974.98 OR
187,001.00 OR
7,970561.0008
0.0008Ya... Betul, kita hanya menambahkan Total pada akhir report nya saja, tetapi apakah jika kita
hanya ingin menambahkan total di akhir report kita harus membuat report yang sama persis dari
awal ? lalu kemudian baru kita tambahkan Total?
Maka jawabannya adalah tidak... Kita bisa langsung menambahkan saja Total diakhir report,
tanpa membuat report yang sama persis dari awal, nah teknik ini disebut inherit Qweb Odoo
Mari langsung kita lakukan, yaitu dengan cara membuat sebuah file bernama inherit_report.xml
Dan isi file tersebut dengan code seperti ini
--Membuat total debit, credit, dan balance-->
InstagramFacebook FacebookPinterest Pinterest