class InquiryResponse(BaseResponse): def __init__(self, parent): BaseResponse.__init__(self, parent) self.invoice_profile = FixLength(INVOICE_PROFILE) self.invoice_profile.from_dict({ 'Invoice ID': self.invoice_id_raw, 'Alamat Objek Pajak': nama_kelurahan(self.invoice_id), 'Kecamatan': nama_kecamatan(self.invoice_id), }) try: int(self.invoice_id_raw) except ValueError: self.calc = None return self.calc = CalculateInvoice(models, DBSession, persen_denda, self.invoice_id['Propinsi'], self.invoice_id['Kabupaten'], self.invoice_id['Kecamatan'], self.invoice_id['Kelurahan'], self.invoice_id['Blok'], self.invoice_id['Urut'], self.invoice_id['Jenis'], self.invoice_id['Tahun Pajak']) def set_invoice_profile(self): self.parent.set_amount(self.calc.total) self.set_invoice_profile_to_parent() def set_invoice_profile_to_parent(self): if self.calc.invoice: self.invoice_profile.from_dict({ 'Nama Wajib Pajak': self.calc.invoice.nm_wp_sppt, 'Tagihan Pokok': self.calc.tagihan, 'Denda': self.calc.denda, 'Total Tagihan': self.calc.total}) self.parent.set_invoice_profile(self.invoice_profile.get_raw()) def is_valid(self, is_need_invoice_profile=True): if not self.calc: return self.parent.ack_invalid_number() if not self.calc.invoice: is_need_invoice_profile and self.set_invoice_profile_to_parent() return self.parent.ack_not_available() is_need_invoice_profile and self.set_invoice_profile() if self.calc.paid: return self.parent.ack_already_paid() if self.calc.total <= 0: return self.parent.ack_already_paid_2(self.calc.total) return True def ack_already_paid(self): pay = self.calc.invoice2payment() ntp = '' if pay and self.is_transaction_owner(pay): calc = self.calc q = DBSession.query(models.Payment).filter_by( propinsi=calc.propinsi, kabupaten=calc.kabupaten, kecamatan=calc.kecamatan, kelurahan=calc.kelurahan, blok=calc.blok, urut=calc.urut, jenis=calc.jenis, tahun=calc.tahun).order_by( models.Payment.ke.desc()) iso_pay = q.first() if iso_pay: ntp = iso_pay.id self.set_ntp(ntp) return self.parent.ack_already_paid() def set_ntp(self, ntp): self.invoice_profile.from_dict({'NTP': ntp}) def response(self): if not self.is_valid(): return self.parent.set_amount(0) self.parent.set_amount(self.calc.total) query.create_inquiry(self.calc, self.parent.from_iso, persen_denda) self.commit()
class InquiryResponse(BaseResponse): def __init__(self, parent): BaseResponse.__init__(self, parent) self.invoice_profile = FixLength(INVOICE_PROFILE) self.invoice_profile.from_dict({ 'Propinsi': self.invoice_id['Propinsi'], 'Kabupaten': self.invoice_id['Kabupaten'], 'Kecamatan': self.invoice_id['Kecamatan'], 'Kelurahan': self.invoice_id['Kelurahan'], 'Blok': self.invoice_id['Blok'], 'Urut': self.invoice_id['Urut'], 'Jenis': self.invoice_id['Jenis'], 'Tahun Pajak': self.invoice_id['Tahun Pajak'], 'Nama Kelurahan': nama_kelurahan(self.invoice_id), 'Nama Kecamatan': nama_kecamatan(self.invoice_id), 'Nama Propinsi': nama_propinsi(self.invoice_id)}) try: int(self.invoice_id_raw) except ValueError: self.calc = None return self.calc = CalculateInvoice(models, DBSession, persen_denda, self.invoice_id['Propinsi'], self.invoice_id['Kabupaten'], self.invoice_id['Kecamatan'], self.invoice_id['Kelurahan'], self.invoice_id['Blok'], self.invoice_id['Urut'], self.invoice_id['Jenis'], self.invoice_id['Tahun Pajak']) def set_invoice_profile(self): inv = self.calc.invoice self.parent.set_amount(self.calc.total) self.invoice_profile.from_dict({ 'Nama': inv.nm_wp_sppt, 'Luas Tanah': int(inv.luas_bumi_sppt), 'Luas Bangunan': int(inv.luas_bng_sppt), 'Lokasi': inv.jln_wp_sppt, 'Jatuh Tempo': inv.tgl_jatuh_tempo_sppt.strftime('%Y%m%d'), 'Tagihan': self.calc.tagihan, 'Denda': self.calc.denda, 'Total Bayar': self.calc.total}) self.set_invoice_profile_to_parent() def set_invoice_profile_to_parent(self): self.parent.set_invoice_profile(self.invoice_profile.get_raw()) def is_valid(self, is_need_invoice_profile=True): if not self.calc: return self.parent.ack_invalid_number() if not self.calc.invoice: is_need_invoice_profile and self.set_invoice_profile_to_parent() return self.parent.ack_not_available() is_need_invoice_profile and self.set_invoice_profile() if self.calc.paid: return self.ack_already_paid() if self.calc.total <= 0: return self.parent.ack_already_paid_2(self.calc.total) return True def ack_already_paid(self): pay = self.calc.invoice2payment() if pay and self.is_transaction_owner(pay): ntp = pay.id else: ntp = '' self.parent.set_ntp(ntp) return self.parent.ack_already_paid() def response(self): if not self.is_valid(): return self.parent.set_amount(0) self.parent.set_amount(self.calc.total) query.create_inquiry(self.calc, self.parent.from_iso, persen_denda) self.commit()