100% found this document useful (1 vote)
537 views96 pages

Basic Odoo For Beginner

Build Expensive System with 30 One Book, One as Author, Odoo

Uploaded by

Asep Sofyan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
100% found this document useful (1 vote)
537 views96 pages

Basic Odoo For Beginner

Build Expensive System with 30 One Book, One as Author, Odoo

Uploaded by

Asep Sofyan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 96
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 bernama langsung saja fixing masalah ini dengan cara mengubah addons_path di odoo.conf menjadi b root note : sama seperti saat menambahkan pengaturan db_template="template0," kalau lupa dilihat lagi ya ubah file dan menyimpan nya kali ada perubahan odoo konfigurasi perlu merestart perintah restart setelah coba refresh browser tadi blank maka tampilan sudah terinstal sempurna ome x e- sds bs .="=" asyikkkkk disini tahap menginstall database pun bisa dikatakan selesai adanya dua error solve... ai="[Baru" install menemukan mana tidak mengerti membuat pusing... rasanya ingin bethenti me lanjutkan petualangan ini... tetapi... penulis... programmer takut dikatan real module default pada sub bab akan mencoba module-moduke juga addons bawaan dari semua moduke-module menu itu adalah module-module tersedia dapat menggunakannya sekarang mari apps builder fungsinya website hanya and drop seo: cukup mudah mengetikkan nama hal kemudian klik pilih theme bootstrap you thame pawn a peet acc bebas dicek perbedaannya perbedaan template dihasilkan melalui framework css saya memilih bootswatch welcome to your homepage rate senting in oxmase sane coma scone as keren yah... tinggal klak jadi tampilannya smooth pula ketimbang buat pake ess ancur minta dit ampun para mastah design untuk menggunakan gelembung biru pojok kanan atas sehingga kiri muncul berisi widget-widget misalnya widget title pertama tulisan abed tarik kosong doable ganti deh tulisannya mau tekan contoh dibawah i z my first nah... simple that pokoknyaaa... sisanya sesuaikan kreattfitas ide masing-masing nab diatas berhasil lainnya menginstallnya cari ddan upgrade uninstal adakalanya atau kurang sesuai kebutuhan user requirement oleh sebab yaitu dimana mengubah-ubah maupun baru buatan sendiri melakukannya memenuhi diminta tentunya jika didalam melakukan mengaplikasikan caranya buka didalamnya tombol e by s.a. ee uninstall halnya memang jarang sekali tetapi tetap diperlukan bermasalah menyebabkan satu sistem digunakan tersebut agar kembali sistemnya catatan anda artinya data-data berkaitan hilang mencari odoo.com langkah paling tepat menghemat waktu tenaga membangun memanfiatkan pemah orang lain pernah salah mendapatkannya selain meminta teman punya tipikal temen sue... susah dia main aja mencarinya banyak disana berbayar free banget oke praktikan odoo.convapps rte odo0 adps ketik me-load video web keyword tee ae sei kebetulan tuh... beruntunglah kalian butuh moduke membuatnya modulenya download diinstall filter kriteria paid apa sale order point of dil berdasarkan versi videos vane jangan karena support cucok... gunakan... mendownload menerapkan kata tersebut... tapi bagaimanakah mudah... mengekstrak bentuk zip sebuah open enrectfiles... s batract here extract embed video-10.0.1.0 begini diextract embed_video video-10.0.1.02ip winrar archive terbentuk copy lokasi secara c: module- files> 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 & 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 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
- jumlah_pengeluaran’ readonly="1"/>_ Tika belum terlalu memahami dari setiap code yang dijalankan, tidak apa apa sebaiknya tulis saja dulu, nanti lama lama terbiasa dan ingat, walaupun bisa di copy + paste, alangkah baiknya tulis setiap code yang ada agar terbiasa dan familiar dengan code-code di xml maupun di python Maka file pengeluaran. xml akan menjadi seperti ini 37Soe te aan aa Stes er an aes as ested ae eee ean ere Dist ao ae se paee aay er oe ed ae engeluaran-De teres ene: Karena kita membuat sebuah file baru, maka hal yang WAJIB dilakukan adalah menambahkan file tersebut ke dalam __manifest__py tepatnya dibagian data seperti iniSees Cera eee ro ‘Simpan file + restart service + upgrade module, maka form akan menjadi seperti ini Fim Pengelaran/ New Form default berubah karena file yang kita buat, yang tentunya didalam file tersebut ada code untuk mengubah form default doo 59Berikut tampilan form sebelum ditambabkan file pengeluaran.xml Foim Pengeluaran/ New Nah... begitulah cara memanipulasi form defiult (bawaan) dari odoo Anda bisa kembangkan dan ubah-ubah lagi form yang sudah dibuat, misalnya saya ingin membuat tanggal pengeluaran menjadi di sebelah nama user, maka ubah saja code nya yang sebelumnya seperti ini jumlah_pengeluaran” readonly:Derr eee peers torres tic ener ee Menjadi seperti ini inggal_pengeluaran"/>oor ome Se ee Maka saat kita simpan + upgrade module, tampilan form menjadi seperti ini Form Pengewaran NewMisalnya masih belum puas dengan formnya, kolom untuk isi Nomor terlalu besar, maka anda bisa ubah di model py saja, dengan cara mengubah type data nya dari Text menjadi Char, karena ‘Text akan membentuk text area (cocok untuk inputan alamat, alasan, dsb), sedangkan char tidak membentuk text area, hanya text saja (cocok untuk document number, dsb) Modelpy sebelumnya Poorer otey " Seer arte Cee eer eno Simpan + restart service maka akan menjadi seprti ini formnya CrInputan nomor tidak dan deskripsi pengeluaran sudah bukan text area, melainkan hanya text saja. Nah begitulah cara memodifikasi form default / bawaan odoo, anda bisa mengembangkan lagi kemampuan anda untuk memodifikasi form odoo dengan banyak referensi di internet. 3.3.3 Function / Method Odoo Disetiap bahasa pemrograman pasti ada yang disebut function / method, demikian juga ‘odoo yang memiliki function / method yang di definisikan dengan perintah “Def” Pada subbab ini kita akan mencoba mempraktekan bagaimana membuat function/method dari ‘doo yang mana didalam nya kita bisa membuat Jogic-logic sederhana untuk sistem yang akan kita buat. Function/method di odoo adalah menggunakan bahasa Python, mari kita buat function/method diodoo. Fungsi pertama yang akan kita buat adalah untuk menghitung Jumlah pengeluaran di Form Pengeluaran kita, Baiklah langsung saja kita praktekan.Buka file model. py, dan tambahkan code berikut @apionchange(‘penjualan_detail’) def _hitung_total_pengeluaran(self): total_pengeluaran = for data_detail in self penjualan_detail: total_pengeluaran = total_pengeluaran + data_detail.amount self.jumlah_pengeluaran = totalpengeluaran i Bonne Maka ketika kita restart service dan kita kembali membuka Form Pengeluaran, maka Inputan “Jumlah Pengeluaran” Akan secara otomatis terisi jumlah dari Pengeluaran, seperti gambar ini 65Form Pengelaran | New Pengeluaran Hari Senin Coy Sedikit kita bahas dari code tadi @apionchange(‘penjualan_detail’) ‘Adalah code untuk menghandle setiap perubahan yang ada di field penjualan_detail (Aksi apa yang ingin kita lakukan jika ada perubahan pada field tersebut) Selain @apionchange, ada juga @api yang lain seperti onclick, dsb def _hitung_total_pengeluaran( self): Adalah code untuk membuat sebuah function / method bernama _hitung_total_pengeluaran, self sendiri adalah parameter yang isi nya adalah data-data yang ada di odoo di tampung dalam variable self ini total_pengeluaran = 0 for data_detail in selfpenjualan_detail: total_pengeluaran = total_pengeluaran + data_detail.amount self.jumlah_pengeluaran = totalpengeluaran Sedangkan code ini adalah logic sederhana untuk menjumlahkan setiap amount yang ada di detail Form Pengeluaran, setelah sudah terjumlah maka langsung di set ke field jumlah_pengeluaran dengan perintah self,jumlah_pengeluaran = total_pengeluaran ‘Nah... Kurang lebih seperti itulah cara membuat function / method di odoo... ©3.4 Membuat Print Out Odoo (Qweb) Pada pembelajaran sebelumnya kita sudah belajar bagaimana membuat sebuah field dan sebuah form serta fungsi didalam form tersebut. Didalam sebuah sistem tidak lepas ujungnya adalah pada Reporting, yang mana salah satu tujuan dari sistem itu sendiri ialah untuk mengolah dan menghasilkan data yang dapat dijadikan sebuah laporan, Pada sub bab ini kita akan membuat Print out dalam bentuk PDF di Odoo yaitu dengan menggunakan Qweb Odoo. Langsung saja kita lakukan dengan membuat sebuah file baru dengan ekstensi .xml di folder addons kita, saya akan menamakan file ini dengan nama report, sehingga menjadi seperti ini E\addons\first_ module\reportam! (fist_ module) - Sublime Text Bile Edit Selection Find View Goto Tools Project Pre FOLDERS ¥ B first module @ —init_py 1 _manitest_py B menus! BB modetpy B pengel Kemudian tambahkan code seperti ini Hello Joko
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