Seorang pelanggan telah membeli sejumlah barang dan membutuhkan bon sebagai bukti pembeliannya. Saatnya membuat laporan sesuai bentuk yang kita inginkan di OpenERP.
Sebuah transaksi penjualan terdiri dari dua bagian yang bisa disebut sebagai master dan detail. Data master memuat nomor transaksi, tanggal, dan nama pelanggan. Sedangkan detail memuat daftar barang yang dibeli. Anda bisa lihat daftar transaksi di menu Sale Management, Sales Order. Klik salah satu transaksi, tepatnya pada bagian tanggal, lalu akan tampil rincian untuk transaksi tersebut.
Sampai di sini sebenarnya Anda sudah bisa mencetak laporan penjualan dengan klik pada menu Quotation / Order, ada di kanan atas. Laporan akan tampil dalam PDF. Kita juga akan membuat yang seperti itu dimana akan ada link baru untuk mencetak transaksi penjualan ini, namun dengan bentuk yang kita tentukan sendiri.
Mulailah menggunakan OpenOffice Writer untuk membuat penjualan.sxw seperti yang tampil di bawah ini:
Selanjutnya kita perlu memberitahu report generator bahwa ada bagian yang berulang, yaitu daftar barang (detail):
Simpan dokumen ini dengan nama penjualan.sxw.
Report generator tidak membutuhkan file sxw, ia membutuhkan rml. Untuk itu perlu diubah dengan cara berikut ini:
$ cd /usr/lib/openerp-server/addons/sale/report $ sudo python /usr/lib/openerp-server/addons/base_report_designer/wizard/tiny_sxw2rml/tiny_sxw2rml.py /home/ilham/penjualan.sxw > penjualan.rml
Lalu buatlah parser tambahan di /usr/lib/openerp-server/addons/sale/report/penjualan.py:
import time from report import report_sxw class penjualan(report_sxw.rml_parse): def __init__(self, cr, uid, name, context): super(penjualan, self).__init__(cr, uid, name, context) self.localcontext.update({ 'time': time, }) report_sxw.report_sxw('report.sale.penjualan', 'sale.order', 'addons/sale/report/penjualan.rml', parser=penjualan)
Dengan file ini, Anda bisa menyertakan waktu pencetakan di file sxw dengan cara menambahkan:
[[ time.strftime('%d-%m-%Y %H:%M:%S') ]]
Pastikan parser tadi dikenal oleh sistem, yaitu dengan menambahkan baris berikut ini di /usr/lib/openerp-server/addons/sale/report/__init__.py:
import penjualan
Update 2 Mei 2012
Juga di /usr/lib/openerp-server/addons/sale/__init__.py tambahkan (kalau belum ada):
import report
Sekarang definisikan menunya di /usr/lib/openerp-server/addons/sale/penjualan.xml:
<?xml version="1.0" encoding="utf-8"?> <openerp> <data> <report id="report_sale_penjualan" string="Penjualan" model="sale.order" name="sale.penjualan" rml="sale/report/penjualan.rml" auto="False" header="False"/> </data> </openerp>
Pastikan menu baru tersebut didaftarkan oleh sistem, yaitu dengan menambahkan baris berikut ini di file /usr/lib/openerp-server/addons/sale/__terp__.py pada bagian "update_xml":
"penjualan.xml",
"update_xml": [ "security/sale_security.xml", "security/ir.model.access.csv", "sale_workflow.xml", "sale_sequence.xml", "sale_data.xml", "sale_wizard.xml", "sale_view.xml", "sale_report.xml", "sale_wizard.xml", "stock_view.xml", "process/sale_process.xml", "penjualan.xml", ],
Terakhir apply:
$ sudo su # su - openerp $ openerp-server --database=openerp --update=sale --stop-after-init
Update 2 Mei 2012
Cara lain adalah dengan restart terlebih dahulu:
# sudo /etc/init.d/openerp-server restart
Cobalah dengan mencetak sebuah transaksi sebagaimana diterangkan di awal tulisan ini. Contoh bisa dilihat pada file pdf terlampir.
Selamat mencoba.
Referensi:
Lampiran | Ukuran |
---|---|
master-detail.png | 38.83 KB |
detail-section.png | 124.85 KB |
penjualan.sxw | 12.15 KB |
penjualan.pdf | 3.75 KB |
Komentar terbaru
10 tahun 43 pekan y.l.
13 tahun 21 pekan y.l.
13 tahun 21 pekan y.l.
13 tahun 21 pekan y.l.