예제 #1
0
    def parse(self):
        payments = []
        for r in self.f:
            if r.strip():
                data = r.strip().split('\t')
                try:
                    p = payment.Payment()
                    p.kirjauspvm = self._read_pvm(data[0])
                    p.arvopvm = self._read_pvm(data[1])
                    p.maksupvm = self._read_pvm(data[2])
                    p.summa = float(data[3].replace(',', '.'))
                    p.vastapuoli = data[4]  # or data[7] ?
                    p.vastatili_nro = data[5]
                    p.viite = data[8]
                    # Viesti on tai ei ole, muut on
                    if len(data) > 10:
                        p.viesti = data[10]

                    p.organize()

                    payments.append(p)

                except IndexError:
                    pass
                except ValueError:
                    pass
        return payments
예제 #2
0
 def __init__(self, controller, phoneNumber, captcha, orderId, appchannel,
              privatekey, paths):
     self.controller = controller
     self.general = gen.General(controller, appchannel, privatekey, paths)
     self.order = order.Order(controller, paths)
     self.payment = pay.Payment(controller, paths)
     self.wallet = wal.Wallet(controller, paths)
     self.phoneNumber = phoneNumber
     self.captcha = captcha
     self.orderId = orderId
예제 #3
0
    def __getattribute__(self, name):
        attr = object.__getattribute__(self, name)
        if name == 'subscription':
            import subscription
            return ListProperty(subscription.Subscription).wrap(attr)
        if name == 'payment':
            import payment
            if isinstance(attr, dict):
                return ListProperty(payment.Payment).wrap(attr)
            if isinstance(attr, str):
                return list(payment.Payment(id=attr))

        return object.__getattribute__(self, name)
예제 #4
0
def nextPage():
    total = 0
    error = False
    for row in arrary:
        catch = False
        catch, total = validateRow(row)
        if catch:
            error=True

    ignoreError = True
    if error:
        ignoreError = popups.invalidInputWarning()

    if ignoreError:
        newWindow = payment.Payment(None, reciept, total)
예제 #5
0
    def _addPayment(self, csv_line):

        fields = csv_line.split(CSV_DLMTR)
        #print "__[DEBUG]", fields
        if len(fields) != CSV_FIELDS_NUMB:
            print "Len(fields) = ", len(fields)
            print "Fields:"
            print fields
            raise Exception("[GAG Exception] Wrong number of fields")

        # set order of fields as expected by Payments constructor
        payment_fields = ["", "", "", 0, "", ""]
        payment_fields[0] = fields[CSV_F_TITLE]
        payment_fields[1] = fields[CSV_F_DATE]
        payment_fields[2] = fields[CSV_F_PURPOSE]
        payment_fields[3] = int(fields[CSV_F_PRICE])
        payment_fields[4] = fields[CSV_F_PAYER]
        payment_fields[5] = (
            fields[CSV_F_COMMENT])[:-len(CSV_EOL)]  # cut off EOL symbol

        # if all checks passed - add payment fields finally
        p = payment.Payment(payment_fields)
        self._parsed_payments.append(p)
 def add(self, amount, currency, time, to_addr, from_addr, no_confirm):
     self.payments.append(
         payment.Payment(amount, currency, time, to_addr, from_addr,
                         no_confirm))
예제 #7
0
    def parse(self):
        """ Parsitaan konekielinen tiliote. """
        data = []
        f = self.f  # lyhyempi

        while True:
            aineistotunnus = f.read(1)
            if aineistotunnus == '':
                break
            if aineistotunnus != 'T':
                print 'aineistotunnus: -' + aineistotunnus + '-'
                print f.read(32)
                raise ValueError('Aineistotunnus on virheellinen!')
            tietuetunnus = f.read(2)

            #print 'Tietuetunnus %s' % tietuetunnus
            size = int(f.read(3)) - (1 + 2 + 3)

            if tietuetunnus == '00':
                """
                4.4 Tiliotteen perustietue (00) 
                """

                versio = f.read(3)

                tilinumero = f.read(14)

                tiliote_nro = f.read(3)
                tiliote_alkupvm = f.read(6)
                tiliote_loppupvm = f.read(6)

                tiliote_muodostettu_pvm = f.read(6)
                tiliote_muodostettu_klo = f.read(4)

                asiakastunnus = f.read(17)

                alkusaldo_pvm = f.read(6)
                alkusaldo = self._read_raha(f)

                tiliote_tietue_lkm = f.read(6)
                valuutta = f.read(3)
                tili_nimi = f.read(30)
                tili_limitti = f.read(18)
                tili_omistaja = f.read(35)

                pankki = f.read(40)
                konttori = f.read(40)
                konsernitili = f.read(30)
                iban = f.read(30)

            elif tietuetunnus == '10':
                """
                4.5 Tapahtuman perustietue (10, 80)
                """

                p = payment.Payment()

                p.tapahtuma = f.read(6)
                p.arkistointitunnus = f.read(18)
                p.kirjauspvm = f.read(6)
                p.arvopvm = f.read(6)
                p.maksupvm = f.read(6)

                p.tapahtumatunnus = f.read(1)
                p.kirjausselite_koodi = f.read(3)
                p.kirjausselite_teksti = f.read(35)

                p.summa = self._read_raha(f)

                p.kuittikoodi = f.read(1)
                p.valitystapa = f.read(1)

                p.vastapuoli = f.read(35)
                p.vastapuoli_nimi_lahde = f.read(1)

                p.vastatili_nro = f.read(14)
                p.vastatili_muuttunut = f.read(1)

                p.viite = f.read(20)
                p.lomakenro = f.read(8)
                p.tasotunnus = f.read(1)

                p.organize()

                data.append(p)

            elif tietuetunnus == '11':
                """
                4.6 Tapahtuman lisätietue (11, 81)
                Lisätietueita käytetään viestien välitykseen. ...
                """

                tyyppi = f.read(2)
                size -= 2

                if tyyppi == '00':
                    """ 
                    vapaa viesti
                    """
                    if not data[-1].viesti:
                        data[-1].viesti = ''
                    data[-1].viesti += f.read(size)

                elif tyyppi == '03':
                    """
                    Korttitapahtuman tiedot, lisätiedon tyyppi = 03 
                    """
                    f.read(size)

                elif tyyppi == '06':
                    """
                    Toimeksiantajan tiedot, lisätiedon tyyppi = 06 
                    """
                    f.read(size)

                elif tyyppi == '09':
                    """
                    Nimitarkenteen tiedot, lisätiedon tyyppi = 09 
                    """
                    f.read(size)

                elif tyyppi == '11':
                    """
                    Euromaksualueen tilisiirron lisätyyppi, lisätiedon tyyppi = 11 
                    """
                    f.read(size)

                else:
                    print "Tuntematon lisätietueen tyyppi %s" % tyyppi
                    f.read(size)

            elif tietuetunnus == '40':
                """
                4.7 Saldotietue (40) 
                Saldotietueita on päivätiliotteella vain yksi. 
                Kausitiliotteella on jokaista tapahtumallista kirjauspäivää kohden saldotietue. Käytettävissä oleva saldo 
                on nollaa muilla kuin viimeisen tapahtumallisen päivän saldotietueella. Viimeisellä saldotietueella on 
                käytettävissä oleva saldo kyseiseltä päivältä.  
                """

                f.read(size)

            elif tietuetunnus == '50':
                """
                4.8 Kumulatiivinen perustietue (50) 
                Kumulatiivisella perustietueella kerrotaan tiliotteella olevien panojen ja ottojen kappale- ja rahamäärät.
                """

                f.read(size)

            else:
                print "Tuntematon tietuetunnus %s" % tietuetunnus
                f.read(size)

            f.read(2)  # \r\n

        return data