# http://doc.openerp.com/developer/3_10_wizard/index.html?highlight=report%20wizard import wizard import pooler from mako.template import Template from mako.lookup import TemplateLookup import time import os import locale locale.setlocale(locale.LC_ALL, 'id_ID.UTF-8') tpl_lookup = TemplateLookup(directories=['/usr/lib/openerp-server/addons/sale/wizard']) def money(n): return locale.format('%.2f', n, True) cetak_form = '''
''' cetak_fields = { 'teks' : {'type' : 'text', 'default': 'Pencetakan sedang berlangsung.', 'readonly': True }, } class sale_cetak(wizard.interface): def cetak(self, cr, uid, data, context): obj = pooler.get_pool(cr.dbname).get('sale.order') order = obj.browse(cr, uid, data['id']) print order.name, order.date_order, order.partner_id.name, order.amount_total no = 0 rows = [] tpl_line = tpl_lookup.get_template('order_line.txt') for line in order.order_line: no += 1 s = tpl_line.render(no=str(no), prod=line.name, jml=str(int(line.product_uom_qty)), hrg=money(line.price_unit), disc=str(line.discount), subt=money(line.price_subtotal), ) rows.append(s) tpl = tpl_lookup.get_template('order.txt') s = tpl.render(id=order.name, tgl=order.date_order, pelanggan=order.partner_id.name, rows=''.join(rows), total=money(order.amount_total).rjust(12), ) # filename = '/dev/lp0' filename = '/tmp/%s.txt' % uid f = open(filename,'w') f.write(s) f.close() return {} states = { 'init': { 'actions': [cetak], 'result': {'type':'form', 'arch':cetak_form, 'fields': cetak_fields, 'state':[] } }, } sale_cetak('sale.cetak')