31 Desember 2012

Install OpenERP 7.0 di Ubuntu

Bismillahirrahmaanirrahiim

AKhirnya ada waktu juga untuk oprek-oprek OpenERP 7.0
Karena belum rilis all-in-one instaler nya, jadinya ambil dari trunk dulu

Berikut cara instalnya...
Saya lihat contohnya di sini

Karena, sebelumnya saya sudah instal versi 6.1, jadi saya langsung download aja src nya

wget http://nightly.openerp.com/7.0/nightly/src/openerp-7.0-latest.tar.gz

extract dengan

cd /opt/openerp
sudo tar xvf ~/openerp-7.0-latest.tar.gz


sudo chown -R openerp: *

sudo cp /opt/openerp/openerp-7.0/install/openerp-server.conf /etc/
sudo chown openerp: /etc/openerp-server.conf
sudo chmod 640 /etc/openerp-server.conf


Lalu,karena di Ubuntu saya sudah ada OpenERP versi 6.1 dan 6.0
maka konfigurasi filenya saya tambahkan utk edit port2 nya


addons_path = /home/mawaddah/openerp-server/7.0/addons
db_host = False
db_port = False
db_user = openerp
db_password = False
xmlrpcs_port = 8075
xmlrpc_port = 8067
netrpc_port = 8074


addons_path nya juga saya pindahkan ke /home/mawaddah/openerp-server/7.0

kemudian save

lalu nyalakan deh openerp nya

> su openerp
> /opt/openerp/openerp-7.0/openerp-server

saya gak ngerti kenapa konfigurasi file saya gak kebaca
jadinya saya tambahkan --config utk menyalakan:

> /opt/openerp/openerp-7.0/openerp-server --config=/etc/openerp-server.conf

ohya sampe lupa... karena saya gk ngecek satu persatu requirement yg ternyata belum ada saat saya instal OpenERP 6.1, jadi akan ada sedikit problem

1. OpenERP nya gak bisa nyala sam sek... dengan error


Couldn't load module web

or something like that...

SOlusinya:
Install paket: python-docutils
sudo apt-get install python-docutils

2. warning WARNING ? openerp.addons.google_docs.google_docs: Please install latest gdata-python-client from http://code.google.com/p/gdata-python-client/downloads/list

Solusi:

sudo apt-get install python-pip
sudo pip install gdata --upgrade


udah deh.. nyalain lagi yaa

> /opt/openerp/openerp-7.0/openerp-server --config=/etc/openerp-server.conf

abis itu buka di browser




15 Desember 2012

[OpenERP 6.1][Ubuntu] File log openerp-server gak ter-update

Bismillahirrahmaanirrahiim

Yaa jadi ceritanya saya kembali menggunakan Ubuntu setelah hampir 2 tahun ditinggalkan :D
Ini karena ternyata OpenERP 6.1 bekerja dengan baik di Ubuntu dibandingkan Windows terutama berhubungan dengan masalah UTC datetime..

Karena sudah lama gak pake Ubuntu, jadi suka "gaptu" (gagap Ubuntu) deh.. Jdi, saya coba mendokumentasikan semua nya di sini.. biar gak lupa lagi,,

Ini masalah log file nya openerp server.
Log file nya gak pernah ke-update .. tanggal terakhir yang ada di log file /var/log/openerp-server.log itu tanggal saya instal OpenERP nya yaitu tanggal 7 Desember 2012...
Habis itu gak ada log lagi..
bahkan ketika saya restart openerp-servernya, ubah2 di file python nya... dll.. gak ketulis sama sekali di file log nya.....

hohoho ada apakah?
gugling2 ..
akhirnya dapet deh penyebabnya...
jadi si log nya kan disimpen di /var/log/
nah folder /var/log ini hanya bisa diwrite oleh si super admin root...
sedangkan user untuk openerp itu ada sendiri yaitu openerp yang tidak bisa menulis apapun di /var/log kecuali securitynya diubah sedemikan rupa yang artinya menjadi penuh resiko...

yasudah akhirnya, dibuat folder /openerp di dalam /var/log/
lalu buat folder openerp tersebut dimiliki user openerp dengan perintah: sudo chown openerp openerp
abis itu baru deh buat file openerp-server.log di dalam /var/log/openerp/

setelah itu ubah destinasi log nya di file /etc/init.d/openerp
LOGFILE=/var/log/openerp/openerp-server.log

restart deh openerpnya dengan: sudo /etc/init.d/openerp restart
coba cek: tailf /var/log/openerp/openerp-server.log

TADA... keluar deh log yg selalu ter-update

Demikian dari saya...
Semoga hal kecil ini membantu...

29 November 2012

[OpenERP 6.1] Penjualan di Point of Sale (POS) selalu Pending. Ada apakah?

Bismillahirrahmaanirrahiim

Kisahnya begini...
Lagi coba modul POS nya OpenERP 6.1 nih.
Berkali-kali .. semua transaksi POS nya dianggap pending, yaitu dengan munculnya tulisan yang dihighlite warna merah di pojok kanan atas PoS.. dengan tulisan [jumlah] pending orders.. Sayangnya saya lupa nge-screenshot..

Bingung dan bingung.. cari-cari ke forum... ada yang bilang dibersihin cache nya.. maka pending orders nya akan hilang.. tapi tetep aja gak masuk ke tabel pos_order..

Akhirnya masuk deh ke source code nya...
terus cek ke log, ternyata ada error berikut:
Configuration Error !
There is no receivable account defined to make payment


cari ke source code point_of_sale.py
Ketemu deh biang keladinya..
cek di baris 289 dan seterusnya
account_def = property_obj.get(cr, uid, 'property_account_receivable', 'res.partner', context=context)

intinya default partner_id adalah null,
maka dia mau ambil account dari property_account_receivable yang res.partner nya null... karena pas ditrace context itu isinya kosong...

coba dicek di tabel ir_property
ada property property_account_receivable tapi ada res_id nya yaitu res.partner,1
maunya si pos itu, res_id nya kosong

Secara default pasti ada property property_account_receivable dengan res_id kosong (saya cek di default database yg belum saya oprek). Saya memang sudah melakukan banyak konfigurasi account, maka bisa jadi si property ini hilang.

Yaudah deh bikin aja tuh property,
masuk ke menu Settings > Configuration > Parameters > Configuration Parameters

input data baru:
dengan
Name: property_account_receivable
Field: Account Receivable
Type: Many2One
Value: your receivable account
Resource: gak usah dipilih alias Null

udah dehhh
coba lagi bikin data transaksi di POS... Validate, makaaa
Semua transaksi Pending akan masuk semua ke data pos..

Demikian,
semoga membantu


27 November 2012

[OpenERP 6.1] Tidak bisa hapus account "Reserve Profit/Loss"

Bismillahirrahmaanirrahiim

Ceritanya saya sudah instal modul account dengan CoA general..
Lalu saya tambahkan CoA baru dengan proses import biasa..

Lalu saya mau ganti account Reserve Profit Loss Account di data setup perusahaan.
dengan CoA baru.
Awalnya kan account nya "Reserve Profit Loss" atau semacamnya deh..
Lalu saya mau ganti dengan account baru namanya "Ikhtisar R/L"

udah saya ganti...
lalu saya mau hapus deh account bawaannya OpenERP yaitu Reserve Profit Loss,
tapi gak bisa dengan warning berikut:

Warning !

You can not remove/desactivate an account which is set on a customer or supplier. 


Padahal tuh account gak ada di mana2,, saya cek di customer/supplier dll gak ada tuh yang pake account Reserver Profit Loss

akhirnya cek and ricek di source code account.py
ternyata account tersebut sudah teregister di tabel ir_property

Jadi, setiap input account Reserver Profit Loss di company setup, akan langsung teregister di tabel ir_property dengan name = "property_reserve_and_surplus_account"
artinya akan terus bertambah, bukan direplace property sebelumnya...
Saya belum cek, apakah ini bugs atau ada tujuan tertentu dari keadaan ini.

yaudah deh... delete aja dari tabel or_property tersebut langsung dari database, karena emang gak akan digunakan lagi..
habis itu baru hapus account tsb dari menu account (CoA).

Demikian.......
Semoga bermanfaat

10 November 2012

OpenERP 6.1 tidak compatible dengan PostgreSQL 9.**

Bismillahirrahmaanirrahiim

Yapss... dengan pede-nya saya instal OpenERP 6.1 dengan database PostgreSQL 9.1
Karena saya pikir OpenERP versi 6.0.2 aja bisa kok pake PostgreSQL 9.1

tapii eh tapiii... akhirnya ketahuan deh "belangnya"
gak bisa .. super gagal...
setidaknya untuk 2 bugs penting berikut:

1. tidak bisa gambar logo perusahaan 
2. semua report PDF tidak bisa digenerate dengan error:


Client Traceback (most recent call last):
  File "C:\Program Files\OpenERP 6.1-20120705-232542\Server\server\openerp\addons\web\common\http.py", line 260, in dispatch
  File "C:\Program Files\OpenERP 6.1-20120705-232542\Server\server\openerp\addons\web\controllers\main.py", line 1834, in index
  File "C:\Program Files\OpenERP 6.1-20120705-232542\Server\server\openerp\addons\web\common\openerplib\main.py", line 117, in proxy
  File "C:\Program Files\OpenERP 6.1-20120705-232542\Server\server\openerp\addons\web\common\http.py", line 596, in send
TypeError: coercing to Unicode: need string or buffer, tuple found
 
Dicek and ricek di forum.. memang sudah banyak yang membuktikan tidak compatiblenya OpenERP 6.1 dengan versi Postgre 9.1

Sekian laporannya
Semoga bermanfaat.. 

 Pesan Sponsor: 
"Promo Umroh Akhir Tahun"
InsyaAllah akan dilaksanakan pada:
~Hari/Tgl: Jum'at 28 Des 2012
~ Durasi: 9 hari
~ Biaya: US$ 2100 (DP: Rp. 3.000.000)
~ Hotel: Ajiyad Makarim Mekkah & Dallah Tayyibah Madinah (*****)
~ Pesawat: GIA/SAA.

Bagi rekan2 yg berniat dan berminat utk menjalankan ibadah tsb, bisa konfirm via JaPri krn kuota terbatas.

Hubungi suami saya yaaaa Fadil 0813 9414 1424
BBM 2A430DEC
 

Instal 2 versi OpenERP 6.0* dan 6.1 dalam satu PC

Bismillahirrahmaanirrahiim

Ingin instal 2 versi OpenERP dalam 1 PC? tentu saja bisa.. hehe

Cuma edit port di konfigurasinya aja kok..

Saya memutuskan untuk edit konfigurasi versi 6.1 nya saja,

jadi kembali ke file C:\Program Files\OpenERP 6.1-20120705-232542\Server\server\openerp-server.conf

Cek 3 baris berikut:

xmlrpcs_port = 8071
xmlrpc_port = 8069
netrpc_port = 8070

Itu aslinya yang dipake juga persis di OpenERP versi 6.0.* (dalam hal ini 6.0.3)
jadi, ubah deh... jadi misalnya:

xmlrpcs_port = 8073
xmlrpc_port = 8068 

netrpc_port = 8072

untuk baris yang dibold, port ini dipake juga untuk port web nya (aslinya http://localhost:8069) jadi saya ganti jadi 8068 (http://localhost:8068)

sedangkan di versi 6.0 port webnya diseting di
C:\Program Files\OpenERP 6.0\Web\conf\openerp-web.cfg
server.socket_port = 8080

Jangan lupa restart server 6.1 nya yaaa
gitu deh..

Semoga bermanfaat

 Pesan Sponsor: 

"Promo Umroh Akhir Tahun"
InsyaAllah akan dilaksanakan pada:
~Hari/Tgl: Jum'at 28 Des 2012
~ Durasi: 9 hari
~ Biaya: US$ 2100 (DP: Rp. 3.000.000)
~ Hotel: Ajiyad Makarim Mekkah & Dallah Tayyibah Madinah (*****)
~ Pesawat: GIA/SAA.

Bagi rekan2 yg berniat dan berminat utk menjalankan ibadah tsb, bisa konfirm via JaPri krn kuota terbatas.

Hubungi suami saya yaaaa Fadil 0813 9414 1424
BBM 2A430DEC

OpenERP 6.1 tidak bisa listen database port selain 5432

Bismillahirrahmaanirrahiim

Sudah lama gak ngeblog di sini... hmm banyak faktorr... tapi yaaa gak usah dibahas lah faktornya hehe

Jadi ini pemanasan aja deh dengan hal simple berikut... mudah2an terus aktif berbagi... Berbagi biar nambah ilmu baru..... ^^
Kebetulan saya baru mau mulai oprek2 OpenERP 6.1 .. Jadi, anggaplah saya orang awam yang baru belajar OpenERP.

Misalkan, kita punya 2 versi database Postgre di OS kita. Yang satu PostgreSQL 8.4 dengan port 5432 dan yang satu lagi PostgreSQL 9.1 dengan port 5433.
Kita ingin OpenERP 6.1 dipasang dengan database PostgreSQL9.1 port 5433.
Saat instal OpenERP 6.1 dengan all-in-one installer, sebenarnya ditanyakan port yang akan dilisten dan saya sudah masukan port 5433.
Tapi, ketika sudah sukses instal OpenERP 6.1 dan kita jalankan di browser dengan URL: http://localhost:8069 ternyata yang muncul itu database2 yang dibuat di PostgreSQL 8.4 alias port 5432.

Kenapa begitu yaa?

Saya cek configuration di: C:\Program Files\OpenERP 6.1-20120705-232542\Server\openerp-server.conf sudah benar seting db_port
[options]
db_host=localhost
db_user=openpg
db_password=openpgpwd
db_port=5433

 Usut punya usut, dengan memanfaatkan a very useful tools for me “WinGrep” ternyata eh ternyata file configurasi di: C:\Program Files\OpenERP 6.1-20120705-232542\Server\openerp-server.conf TIDAK DIGUNAKAN

Yang  dipake itu file di C:\Program Files\OpenERP 6.1-20120705-232542\Server\server\openerp-server.conf

Ubah baris db_port=5432 jadi db_port = 5433
Restart... dan PostgreSQL 9.1 port 5433 bisa digunakan.......

Semoga bermanfaat.

12 Agustus 2012

Off Sementara

Bismillahirrahmaanirrahiim

Mohon maaf teman2 ... untuk sementara saya tidak aktif di blog ini dulu...
Sejak bulan Juli saya off bekerja, sedang fokus ngurus anak dan rumah tangga hehe...
jadi gak sempet nge-blog...

InsyaAllah after lebaran mulai aktif nge-blog lagi...

Ohya.. mohon maaf lahir bathin yaaaaaaaaaaaaaaaa

13 Juni 2012

Pesan Warning/Error ketika salah input field

Bismillahirrahmaanirrahiim

Karena saya orangnya sangat pelupa tapi tidak berminta untuk menghapal sintax code sama sekali, maka lebih baik saya posting saja apa2 yang sering saya gunakan di sini.

Ini code untuk mengeluarkan pesan error/warning ketika input sesuatu.
Biasanya saya pakai di method on_change suatu field.

Contoh:
Lihat layar wizard berikut:


Ketika input field date_stop (As Of) 03/01/2012 , akan otomatis mengisi field fiscalyear 2012 dan date_start 01/01/2012
Namun, ketika memasukkan tanggal di tahun 2013, akan muncul warning, karena belum dibuat fiscalyear tahun 2013


Terus bagaimana caranya,
tentunya pertama kali di field As Of, ditambahkan atribut on_change seperti berikut:
<field name="date_to" string="As of" on_change="onchange_asof(date_to)" required="1" colspan="4"/>
Lalu method untuk menjalankan aksi on_change nya seperti berikut:
    def onchange_asof(self, cr, uid, ids, date_to, context=None):
        value = {}
        fiscalyear_pool = self.pool.get('account.fiscalyear')
        if date_to:
            fiscalyear_id = fiscalyear_pool.search(cr, uid, [('date_start','<=',date_to),('date_stop','>=',date_to)])
            if fiscalyear_id:
                fiscalyear = fiscalyear_pool.browse(cr, uid, fiscalyear_id)[0]
                value = {'date_from': fiscalyear.date_start, 'fiscalyear_id': fiscalyear.id}
                return {'value': value}
            else:
                value = {'date_from':False, 'fiscalyear_id':False}
                return {'value': value, 'warning':{'title':'Warning','message':'No fiscal year for your choosen date! Choose another "As Of" date'}}     
Nah perhatikan saja perbedaan yg saya highlight kuning dengan biru

Oke begitu saja...

Semoga bermanfaat..

07 Juni 2012

IntegrityError: duplicate key value violates unique constraint "table_name_pkey"

Bismillahirrahmaanirrahiim

Pernah mengalami masalah seperti ini?
Gagal ketika mau buat data baru di suatu form ... dengan error:
contoh:

IntegrityError: duplicate key value violates unique constraint "ir_module_module_dependency_pkey"

padahal kemaren2 bisa??

terus kenapa ini?

Saya mengalami masalah ini beberapa minggu lalu... 

Ketika itu saya sedang tidak masuk kantor, dan team saya hubungi saya masalah ini...
Dia bilang, setelah diklik berkali2 baru bisa...

kenapakah?

Setelah mencari beberapa sumber, saya menemukan link berikut:

Selidik punya selidik, ternyata team saya sempat melakukan ketidaksengajaan,
yaitu restore database produksi dengan data backup database sebelumnya... Whoaaa 
kacau balau deh...

Akibatnya yaitu deh, banyak tabel yang nilai next sequence nya tidak sesuai... 
karena restore database yang sudah terisi pasti gagal, tapi ternyata ada beberapa data yang terestore... diantaranya nilai sequence dari tabel berubah sesuai dengan nilai sequence data backup..

AKhirnya kacau..
COntoh tabel ir_module_module_dependency. 
nilai max(id) nya 384. nilai ini diperoleh dengan jalankan query;

SELECT max(id) from ir_module_module_dependency;

tapi nilai next sequencenya yang didapatkan dari query berikut
select nextval('ir_module_module_dependency_id_seq');
masih 190, padahal seharusnya 385 kan?

terus solusinya bagaimana?
sesuai dengan link yang saya sampaikan sebelumnya, maka solusinya adalah update nilai next sequence dari tabel yang bermaslah tersebut;

caranya dengan jalankan query berikut:
SELECT setval('ir_module_module_dependency_id_seq', (SELECT MAX(id) FROM ir_module_module_dependency)+1);

habis itu coba, jalankan lagi query:

select nextval('ir_module_module_dependency_id_seq');

pasti nilainya sudah berubah jadi 385..

Selesai deh...
masalahnya banyak sekali tabel yang terpengaruh...
akhirnya yaa perbaiki setiap terjadi masalah saja...

ohya jangan lupa backup database nya dulu ya......

Semoga membantu


24 Mei 2012

Konsep Inventory Valuation pada Data Produk di OpenERP

Bismillahirrahmaanirrahiim

Hmm tadinya mau lanjutin blog sebelumnya yaitu cara membuat Report ke dalam Excel,
tapi saya sedang mematangkan modul Warehouse Management nih...

jadi saya sharing dulu aja sedikit pemahaman saya di modul ini , terutama pengertian Inventory Valuation di data produk. Semoga ada yang menanggapi (koreksi maksudnya gituh..)

Jadi, contohnya di tampilan produk berikut ini.
di tab accounting tersebut ada pilihan "Inventory Valuation", pilihannya hanya 2, yaitu:

  1. Periodical (manual)
  2. Real Time (automated), yang jika dipilih, maka field Stock Input Account  dan Stock Output Account  akan enable
Secara umum, ada 4 account yang harus diset untuk metode Real TIme (automated):
  1. Inventory Variation Account
    Account yang akan dicatat di journal ketika penerimaan barang pertama kali
    Contoh account: Persediaan barang dagang (dalam kelompok Asset)
    Diset pada Produk Category
  2. Stock Input Account
  3. Stock Output Account
  4. Expense Account
Sedangkan untuk metode periodical, hanya "Expense Account" saja yang diset
Nah, kalau dari yang saya pahami, barang itu bisa dibagi 2, yaitu barang sekali/habis pakai dan persediaan barang. Persediaan barang bisa dianggap sebagai  bagian dari Aktiva Lancar (Asset Lancar). 
Contoh barang habis pakai, misalnya bahan bakar
Sedangkan persediaan barang, contohnya ban, spare part dll 

Dari hasil gugling, saya ketahui bahwa ada "Metode Pencatatan Persediaan ke dalam laporan keuangan" (cek: http://id-id.facebook.com/note.php?note_id=10150280559947088) metode tersebut dibagi 2, yaitu:
  1. Metode Periodik
  2. Metode Perpetual 
Dalam sistem persediaan periodik, penjualan dicatat saat penjualan tersebut terjadi tetapi persediaannya tidak diperbaharui.  Pemeriksaan persediaan fisik harus dilakukan pada akhir tahun untuk menentukan harga pokok penjualan

Sedangkan Sistem persediaan perpetual memerlukan catatan akuntansi untuk menunjukkan jumlah persediaan yang ada di tangan di setiap waktu.  Sistem ini menggunakan akun yang terpisah dalam buku besar pembantu untuk masing-masing persediaan barang, dan akun tersebut diperbaharui setiap kali kuantitasnya bertambah atau diambil keluar.

Nah inilah yang diakomodasi OpenERP.

1. Periodical (Manual)

Inventory Valuation ini menggambarkan metode Periodik 
Kalo saya pikir ini paling cocok untuk barang habis pakai. 
Untuk persediaan barang juga bisa, tapi ya itu harus dilakukan secara manual nantinya setiap tahun pemeriksaan persediaan fisik untuk menentukan HPP.

Nah di OpenERP, setiap barang dengan metode periodik ini dibeli, maka akan dibuat jurnal ketika invoicing saja.

Gambaran pencatatan penjurnalan yang terjadi seperti ini:
1.1. Buat Purchase Order


1.2. Terima (Validate) Purchase Invoice
maka jurnal yang akan dibuat adalah:
Jurnal: Purchase Journal
Expense Account (D)
    Account Payable Supplier (C)

COntoh:
HPP - Bensin, dll    400.000
    Hutang Usaha              400.000

* Saya buat Expense Account langsung sebagai HPP  


1.3. Bayar Invoice
Jurnal: Bank 
Account Payable Supplier (D)
    Bank (C)

Contoh:
Hutang Usaha  400.000
    Bank                 400.000

2. Real Time (automated)

  • Menggambarkan metode Perpetual 
  • untuk barang yang akan dianggap sebagai Persediaan Barang Dagang
  • Akan di-generate journal setiap kali ada pergerakan barang (masuk atau keluar)
  • Penerimaan barang pertama kali dari supplier akan dicatat sebagai Persediaan Brang Dagang (Inventory Variation Account)
  • Keluar dan Masuknya barang akan mengurangi/menambah Persediaan Barang Dagang dengan conra account Stock Input Account/Stock Output Account
maka contoh:
Produk: Ban
Produk Category: Spare Part
akan disetup account berikut
  1. Inventory Variation Account (di produk category Spare Part)
    Account: 1300. Persediaan Barang Dagang
  2. Expense Account: 5000. Biaya Kendaraan *
  3. Stock Input Account: 5000. Biaya Kendaraan * 
  4. Stock Output Account: 5100. HPP - Ban, Plat dll
Kenapa Expense Account dan Stock INput Account memiliki COA yang sama?
akan terlihat di contoh berikut:

2.1. Buat Purchase Order
Beli ban 50 pcs dengan harga per ban: 1.000.000

2.2, Validasi Purchase Invoice
maka jurnal yang akan dibuat adalah:
Jurnal: Purchase Journal
Expense Account (D)
    Account Payable Supplier (C)

COntoh:
Biaya Kendaraan    50.000.000
    Hutang Usaha              50.000.000
2.3. Terima Barang 
maka jurnal yang akan dibuat adalah
Jurnal: Stock Journal
Inventory Variation Account (D)
      Stock Input Account (C)

Contoh:
Persediaan Barang Dagang  50.000.000
      Biaya Kendaraan                50.000.000

2.4 Bayar Invoice
Jurnal: Bank 
Account Payable Supplier (D)
    Bank (C)

Contoh:
Hutang Usaha  50.000.000
    Bank                 50.000.000
2.5. Deliver Barang ke Customer
jumlah: 3 item 
menu: Warehouse > Product Moves > Deliver Products
Jurnal: Stock Journal
Stock Output Account (D)
     Inventory Variation Account (C)

Contoh:
HPP - Ban, Plat dll                   3.000.000
    Persediaan Barang Dagang          3.000.000

Issue di Metode Ini:

  • Lihat jurnal yang dihasilkan di step 2.2 dan 2.3
    Karena itulah, saya menyamakan COA Stock Input Account dengan Expense Account
    agar bisa mem-balancekan (membuat 0) COA Biaya Kendaraan
    APakah prinsip seperti ini sudah benar?

    Saya sudah sempat menanyakan ke salah satu accountant mengenai proses penjurnalan seperti ini, dan belia katakan sudah tepat.

    Kalau begitu, menurut saya sebaiknya ketika menerima barang dari supplier harusnya, jurnal yang terjadi adalah langsung terhadap Expense Account:

    Inventory Variation Account (D)
          Expense Account (C)

    karena hasilnya aneh jika salah memasukkan Stock Input Account (memasukkan yang tidak sama dengan Expense Account)
Hmmm sementara itu aja dulu sharig dari saya.
Mohon koreksi ya jika ada yang salah

terima kasih

10 Mei 2012

Export Report OpenERP ke Excel

Bismillahirrahmaanirrahiim

Alhamdulillah bisa juga bikin report ke Excel (bukan CSV lhoo)...
laporannya nanti yaaa.......


04 April 2012

Pengganti checkbox tree di dalam form OpenERP

Bismillahirrahmaanirrahiim

Pernah memiliki pertanyaan seperti pertanyaan ini: http://www.openerp.com/forum/topic29356.html ?
Saya pernah dan sudah berbulan2 lalu belum menemukan jawabannya...


Jadi kalau tree di depan (saat pertama kali buka menu) akan selalu muncul checkbox di sebelah kiri seperti ini.




Sedangkan jika di dalam form ada tree, maka checkbox tersebut tidak muncul, paling yang ada icon Save atau Edit seperti berikut.




Sedangkan kebutuhan adanya checkbox pada tree di dalam form cukup sering yaitu untuk menjalankan action tertentu. Contohnya ingin membeli barang tertentu saja dari daftar produk di dalam form Purchase Requisition.


Nah, ini solusi sementara dari saya. Jadi ya saya buat saja tombol Check dan Uncheck di setiap baris di tree seperti berikut.




Sebelumnya ditambahkan dulu field state dengan tipe boolean, True jika di-check False bila uncheck.
Tombol Check visible jika state False dan Uncheck visible hanya jika state True

mirip-mirip aja kan dengan checkbox biasa tinggal klik klik doang =P

Jadi dalam view.xml nya bisa dibuat seperti ini.

<field name="po_ids" colspan="4" nolabel="1" >
  <tree string="Products to be aded on Purchase Order">
     <field name="state"/>
     <button name="check_po" type="object" string="Select Product to Purchase Order" attrs="{'invisible':[('
state','=',True)]}" icon="gtk-apply"/>
     <button name="uncheck_po" type="object" string="UnSelect Product to Purchase Order" attrs="{'invisible':[('
state','=',False)]}" icon="gtk-cancel"/>

Gitu deh... mudah2an membantu..
Tapi kalau ada yang punya solusi lebih mudah tolong dibagi ilmunya ya :)

Ohya kalau masih menggunakan OpenERP web client versi 6.0.2 harap diupgrade ke versi 6.0.3 yaa
karena mungkin ada bugs...
jadi kalau pake web versi 6.0.2 ketika click tombol di dalam tree maka akan reload keseluruhan form ...


Terima kasih :)

13 Maret 2012

Membuat laporan OpenERP dalam CSV/Excel (create excel/csv report on OpenERP)

Bismillahirrahmaanirrahiim

Alhamdulillah masih bulan Maret, hehe niatnya tiap bulan bisa menghasilkan 1 tulisan... Mudah2an selalu sempat dan ingin berbagi :)

Alhamdulillah juga menemukan cara untuk buat report OpenERP dalam bentuk Excel.. hmm masih csv sii, tapi kan tetap bisa dibuka di Excel :D

Sebelumnya say thanks for Wyden Silvan  yang sudah berbagi informasi cara membuat report dalam CSV.

Jadi, yang harus kita lakukan adalah buat class Report (report.py)

seperti berikut:

import base64
from osv import fields,osv
from tools.translate import _
import time

class Report(osv.osv_memory):
    """
    Wizard to create custom report
    """
    _name = "report"
    _description = "Create Report"
    _columns = {
                'start_date' : fields.date('Start Date', required=True),
                'end_date' : fields.date('End Date', required=True),
                'data': fields.binary('File', readonly=True),
                'name': fields.char('Filename', 16, readonly=True),
                'state': fields.selection( ( ('choose','choose'),   # choose date
                     ('get','get'),         # get the file
                   ) ),
                }
    
    def create_report(self,cr,uid,ids,context={}):
        this = self.browse(cr, uid, ids)[0]
        output = 'Start;Ende'
        output += '\n' + this.start_date + ';' + this.end_date
        print this.start_date
        out=base64.encodestring(output)
        return self.write(cr, uid, ids, {'state':'get',  'data':out,'name':'test.csv'}, context=context)
        
    _defaults = { 
                 'state': lambda *a: 'choose',
                 'start_date' : lambda *a: time.strftime('%Y-%m-%d'),
                 'end_date' : lambda *a: time.strftime('%Y-%m-%d'),
                }
   
Report()

Perhatikan yang saya highlight warna biru. Itu merupakan field yang harus tersedia.
Sedangkan yang saya highlight warna merah, merupakan proses inti dari export file ke CSV.

Kemudian untuk view xml nya (file report.xml)

<?xml version="1.0" encoding="UTF-8"?>

<openerp>
    <data>
    
        <!--  =========== VIEWS =========== -->    
    
        <record model="ir.ui.view" id="view_wizard">
            <field name="name">Custom Report</field>
            <field name="model">report</field>
            <field name="type">form</field>
            <field name="priority">16</field>
            <field name="arch" type="xml">
                <form col="3" string="Custom Report">
                    <group col="2" fill="0" height="2500" states="choose">
                        <separator string="Report" colspan="2"/>
                        <field name="start_date" width="200"/>
                        <field name="end_date" width="200"/>
                        <separator colspan="2"/>
                        <group colspan="2">
                            <button special="cancel" icon="gtk-cancel" string="Cancel"/>
                            <button type="object" name="create_report" icon="gtk-go-forward" string="Create"/>
                        </group>
                        <field invisible="1" name="state"/>
                    </group>
                    <group col="3" fill="0" states="get">
                        <separator colspan="3" string="Export done"/>
                        <field name="name" invisible="1" width="100"/>
                        <field name="data" nolabel="1" readonly="1" width="100" fieldname="name"/>
                    </group>
                </form>
            </field>
        </record>
        
        <!--  =========== ACTIONS =========== -->    
        
        <record model="ir.actions.act_window" id="action_report">
            <field name="name">Custom Report</field>
            <field name="res_model">report</field>
            <field name="view_type">form</field>
            <field name="view_mode">form</field>
            <field name="target">new</field>
        </record>
        
        <!--  =========== MENU ITEMS =========== -->
        <menuitem id="menu_report" name="Report"
                    action="action_report"
                    parent="account.menu_finance_reporting" 
                    sequence="40" />
        
        
    </data>
</openerp>

Yang saya highlight merah, adalah tombol proses yang akan mengeksekusi method create_report pada class Report. Proses tersebut hanya mengexport data yang akan dibuat file csv.
Jika proses berhasil, akan muncul tombol Save As untuk memilih lokasi file csv (default file name: test.csv lihat yang dihighligt kuning pada file report.py)


Nah hasil dari proses di atas, adalah menu Report yang berada di bawah menu ACCOUNTING > Reporting>Report
yang jika diklik akan muncul window berikut:




 Kemudian jika diklik tombol Create, akan muncul form berikut:






Klik tombol Save As untuk memunculkan file dialog.

Hasil file csv nya seperti ini deh:



Demikian...
Seterusnya bisa dimodif sesuka hati.
Kalau saya sendiri, saya tambahkan tombol Export to CSV bersisian dengan tombol yang menghasilkan report PDF seperti contoh ini:




Semoga membantu.......