Пример #1
0
 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'])
Пример #2
0
 def hitung(self):
     BaseCalc.hitung(self)
     # 1-10-2017 Perwal penghapusan denda Kota Bogor
     debug_label('Tahun Pajak', self.invoice.thn_pajak_sppt)
     if self.invoice.thn_pajak_sppt < '2013':
         debug_rp('Total Sebelum Discount', self.total)
         self.discount = self.denda
         debug_rp('Discount', self.discount)
         self.denda = 0
         self.total -= self.discount
         debug_rp('Total Setelah Discount', self.total)
     else:
         self.discount = 0
Пример #3
0
 def hitung(self):
     BaseCalc.hitung(self)
     # 1-10-2017 Perwal penghapusan denda Kota Bogor
     debug_label('Tahun Pajak', self.invoice.thn_pajak_sppt)
     if self.invoice.thn_pajak_sppt < '2013':
         debug_rp('Total Sebelum Discount', self.total)
         self.discount = self.denda
         debug_rp('Discount', self.discount)
         self.denda = 0
         self.total -= self.discount
         debug_rp('Total Setelah Discount', self.total)
     else:
         self.discount = 0
Пример #4
0
 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'])
Пример #5
0
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()
Пример #6
0
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()
Пример #7
0
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()