diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 17:14:58 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 17:14:58 +0700 |
| commit | 1ca3b3df3421961caec3b747a364071c80f5c7da (patch) | |
| tree | 6778a1f0f3f9b4c6e26d6d87ccde16e24da6c9d6 /vit_efaktur/wizard/partner.py | |
| parent | b57188be371d36d96caac4b8d65a40745c0e972c (diff) | |
initial commit
Diffstat (limited to 'vit_efaktur/wizard/partner.py')
| -rw-r--r-- | vit_efaktur/wizard/partner.py | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/vit_efaktur/wizard/partner.py b/vit_efaktur/wizard/partner.py new file mode 100644 index 0000000..fe87361 --- /dev/null +++ b/vit_efaktur/wizard/partner.py @@ -0,0 +1,96 @@ +from odoo import api, fields, models, _ +import time +import csv +from odoo.modules import get_modules, get_module_path +from odoo.exceptions import UserError +import copy +import logging +from io import StringIO +import base64 + +_logger = logging.getLogger(__name__) + + +class efaktur_partner_wizard(models.TransientModel): + _name = 'vit.efaktur_partner' + + export_file = fields.Binary(string="Export File", ) + export_filename = fields.Char(string="Export File", ) + + # @api.multi + def confirm_button(self): + """ + export partner yang is_efaktur_exported = False + update setelah export + :return: + """ + cr = self.env.cr + + headers = [ + 'LT', + 'NPWP', + 'NAMA', + 'JALAN', + 'BLOK', + 'NOMOR', + 'RT', + 'RW', + 'KECAMATAN', + 'KELURAHAN', + 'KABUPATEN', + 'PROPINSI', + 'KODE_POS', + 'NOMOR_TELEPON' + ] + + mpath = get_module_path('vit_efaktur') + # csvfile = open(mpath + '/static/partner.csv', 'wb') + + csvfile = StringIO() + csvwriter = csv.writer(csvfile, delimiter=',') + csvwriter.writerow([h.upper() for h in headers]) + + partner = self.env['res.partner'] + partners = partner.search([('is_efaktur_exported','=',False), + ('npwp','!=',False)]) + i=0 + for part in partners: + npwp = part.npwp.replace(".","").replace("-","") + data = { + 'LT' : 'LT', + 'NPWP' : npwp, + 'NAMA' : part.name, + 'JALAN' : part.street or '', + 'BLOK' : part.blok or '', + 'NOMOR' : part.nomor or '', + 'RT' : part.rt or '', + 'RW' : part.rw or '', + 'KECAMATAN' : part.kecamatan_id.name or '', + 'KELURAHAN' : part.kelurahan_id.name or '', + 'KABUPATEN' : part.kecamatan_id.kota_id.name or '', + 'PROPINSI' : part.state_id.name or '', + 'KODE_POS' : part.zip or '', + 'NOMOR_TELEPON': part.phone or '' + } + csvwriter.writerow([data[v] for v in headers]) + + part.is_efaktur_exported=True + part.date_efaktur_exported=time.strftime("%Y-%m-%d %H:%M:%S") + i+=1 + + cr.commit() + # csvfile.close() + + # raise UserError("Export %s record(s) Done!" % i) + + self.export_file = base64.b64encode(csvfile.getvalue().encode()) + self.export_filename = 'Export-%s.csv' % time.strftime("%Y%m%d_%H%M%S") + return { + 'name': "Export E-Faktur Complete, total %s records" % i, + 'type': 'ir.actions.act_window', + 'res_model': 'vit.efaktur_partner', + 'view_mode': 'form', + 'res_id': self.id, + 'views': [(False, 'form')], + 'target': 'new', + } |
