added get_euro_charge_from_context_or_basename() + fixed space issue

This commit is contained in:
Karl Voit 2016-03-12 15:21:36 +01:00
parent ff1c84c71c
commit bcc6f3adac
2 changed files with 35 additions and 24 deletions

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Time-stamp: <2016-03-12 14:32:54 vk> # Time-stamp: <2016-03-12 15:20:56 vk>
# TODO: # TODO:
# * add -i (interactive) where user gets asked if renaming should be done (per file) # * add -i (interactive) where user gets asked if renaming should be done (per file)
@ -284,6 +284,20 @@ class GuessFilename(object):
else: else:
return False return False
def get_euro_charge_from_context_or_basename(self, string, before, after, basename):
"""
Returns the included -currency which is between before and after
strings or within the basename or return 'FIXXME'
"""
charge = self.get_euro_charge_from_context(string, before, after)
if not charge:
charge = self.get_euro_charge(basename)
if not charge:
return 'FIXXME'
return charge
def get_euro_charge_from_context(self, string, before, after): def get_euro_charge_from_context(self, string, before, after):
""" """
Returns the included -currency which is between before and after strings or False Returns the included -currency which is between before and after strings or False
@ -373,15 +387,15 @@ class GuessFilename(object):
# 2016-01-19 bill foobar baz 12,12EUR.pdf -> 2016-01-19 foobar baz 12,12€ -- scan bill.pdf # 2016-01-19 bill foobar baz 12,12EUR.pdf -> 2016-01-19 foobar baz 12,12€ -- scan bill.pdf
if u'bill' in oldfilename and datetimestr and s.has_euro_charge(oldfilename): if u'bill' in oldfilename and datetimestr and s.has_euro_charge(oldfilename):
return datetimestr + ' ' + \ return datetimestr + ' ' + \
basefilename.replace(' bill', ' ').replace('bill ', ' ').replace(' ', ' ').replace(u'EUR', u'') + \ basefilename.replace(' bill', ' ').replace('bill ', ' ').replace(' ', ' ').replace(u'EUR', u'').strip() + \
u" -- " + ' '.join(s.adding_tags(tags, ['scan', 'bill'])) + \ u" -- " + ' '.join(s.adding_tags(tags, ['scan', 'bill'])) + \
u".pdf" u".pdf"
# 2015-04-30 FH St.Poelten - Abrechnungsbeleg 12,34 EUR - Honorar -- scan finance.pdf # 2015-04-30 FH St.Poelten - Abrechnungsbeleg 12,34 EUR - Honorar -- scan fhstp.pdf
if s.contains_all_of(oldfilename, [" FH ", "Abrechnungsbeleg"]) and s.has_euro_charge(oldfilename) and datetimestr: if s.contains_all_of(oldfilename, [" FH ", "Abrechnungsbeleg"]) and s.has_euro_charge(oldfilename) and datetimestr:
return datetimestr + \ return datetimestr + \
u" FH St.Poelten - Abrechnungsbeleg " + s.get_euro_charge(oldfilename) + \ u" FH St.Poelten - Abrechnungsbeleg " + s.get_euro_charge(oldfilename) + \
u"€ Honorar -- " + ' '.join(s.adding_tags(tags, ['scan'])) + \ u"€ Honorar -- " + ' '.join(s.adding_tags(tags, ['scan', 'fhstp'])) + \
u".pdf" u".pdf"
# FIXXME: more cases! # FIXXME: more cases!
@ -430,11 +444,9 @@ class GuessFilename(object):
u".pdf" u".pdf"
# 2015-11-20 Kirchenbeitrag 12,34 EUR -- scan taxes bill.pdf # 2015-11-20 Kirchenbeitrag 12,34 EUR -- scan taxes bill.pdf
if self.fuzzy_contains_all_of(content, ["4294-0208", "AT086000000007042401", "Kontonachricht"]) and \ if self.fuzzy_contains_all_of(content, ["4294-0208", "AT086000000007042401"]) and \
datetimestr: datetimestr:
floatstr = self.get_euro_charge_from_context(content, "Offen", "Zahlungen") floatstr = self.get_euro_charge_from_context_or_basename(content, "Offen", "Zahlungen", basename)
if not floatstr:
floatstr = 'FIXXME'
return datetimestr + \ return datetimestr + \
u" Kirchenbeitrag " + floatstr + u"€ -- " + \ u" Kirchenbeitrag " + floatstr + u"€ -- " + \
' '.join(self.adding_tags(tags, ['scan', 'taxes', 'bill'])) + \ ' '.join(self.adding_tags(tags, ['scan', 'taxes', 'bill'])) + \
@ -446,11 +458,10 @@ class GuessFilename(object):
u"IhreangepasstePrämiebeträgtdahermonatlich", u"IhreangepasstePrämiebeträgtdahermonatlich",
u"AT44ZZZ00000002054"]) and \ u"AT44ZZZ00000002054"]) and \
datetimestr: datetimestr:
floatstr = self.get_euro_charge_from_context(content, floatstr = self.get_euro_charge_from_context_or_basename(content,
"IndiesemBetragistauchdiegesetzlicheVersicherungssteuerenthalten.EUR", "IndiesemBetragistauchdiegesetzlicheVersicherungssteuerenthalten.EUR",
"Wird") "Wird",
if not floatstr: basename)
floatstr = 'FIXXME'
return datetimestr + \ return datetimestr + \
u" Generali Erhoehung Dynamikklausel - Praemie nun " + floatstr + \ u" Generali Erhoehung Dynamikklausel - Praemie nun " + floatstr + \
u"€ - Polizze " + self.config.GENERALI1_POLIZZE_NUMBER + " -- " + \ u"€ - Polizze " + self.config.GENERALI1_POLIZZE_NUMBER + " -- " + \
@ -462,11 +473,10 @@ class GuessFilename(object):
self.fuzzy_contains_all_of(content, [u"Prämienvorschreibung", self.fuzzy_contains_all_of(content, [u"Prämienvorschreibung",
self.config.MERKUR_GESUNDHEITSVORSORGE_ZAHLUNGSREFERENZ]) and \ self.config.MERKUR_GESUNDHEITSVORSORGE_ZAHLUNGSREFERENZ]) and \
datetimestr: datetimestr:
floatstr = self.get_euro_charge_from_context(content, floatstr = self.get_euro_charge_from_context_or_basename(content,
"EUR", "EUR",
"Gesundheit ist ein kostbares Gut") "Gesundheit ist ein kostbares Gut",
if not floatstr: basename)
floatstr = 'FIXXME'
return datetimestr + \ return datetimestr + \
u" Merkur Lebensversicherung " + self.config.MERKUR_GESUNDHEITSVORSORGE_NUMBER + \ u" Merkur Lebensversicherung " + self.config.MERKUR_GESUNDHEITSVORSORGE_NUMBER + \
u" - Praemienzahlungsaufforderung " + floatstr + \ u" - Praemienzahlungsaufforderung " + floatstr + \
@ -485,11 +495,10 @@ class GuessFilename(object):
# 2015-11-24 Rechnung A1 Festnetz-Internet 12,34€ -- scan bill.pdf # 2015-11-24 Rechnung A1 Festnetz-Internet 12,34€ -- scan bill.pdf
if self.fuzzy_contains_all_of(content, [self.config.PROVIDER_CONTRACT, self.config.PROVIDER_CUE]) and \ if self.fuzzy_contains_all_of(content, [self.config.PROVIDER_CONTRACT, self.config.PROVIDER_CUE]) and \
datetimestr: datetimestr:
floatstr = self.get_euro_charge_from_context(content, floatstr = self.get_euro_charge_from_context_or_basename(content,
u"\u2022", u"\u2022",
"Bei Online Zahlungen geben Sie") "Bei Online Zahlungen geben Sie",
if not floatstr: basename)
floatstr = 'FIXXME'
return datetimestr + \ return datetimestr + \
u" A1 Festnetz-Internet " + floatstr + \ u" A1 Festnetz-Internet " + floatstr + \
u"€ -- " + ' '.join(self.adding_tags(tags, ['scan', 'bill'])) + \ u"€ -- " + ' '.join(self.adding_tags(tags, ['scan', 'bill'])) + \

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8; mode: python; -*- # -*- coding: utf-8; mode: python; -*-
# Time-stamp: <2016-03-10 16:21:36 vk> # Time-stamp: <2016-03-12 15:19:10 vk>
import unittest import unittest
import logging import logging
@ -105,6 +105,8 @@ class TestGuessFilename(unittest.TestCase):
u"2016-01-19--2016-02-12 benutzter GVB 10er Block -- foobar scan transportation graz.pdf") u"2016-01-19--2016-02-12 benutzter GVB 10er Block -- foobar scan transportation graz.pdf")
self.assertEquals(self.guess_filename.derive_new_filename_from_old_filename(u"2016-01-19 bill foobar baz 12,12EUR.pdf"), self.assertEquals(self.guess_filename.derive_new_filename_from_old_filename(u"2016-01-19 bill foobar baz 12,12EUR.pdf"),
u"2016-01-19 foobar baz 12,12€ -- scan bill.pdf") u"2016-01-19 foobar baz 12,12€ -- scan bill.pdf")
self.assertEquals(self.guess_filename.derive_new_filename_from_old_filename(u"2016-03-12 another bill 34,55EUR.pdf"),
u"2016-03-12 another 34,55€ -- scan bill.pdf")
def test_contains_one_of(self): def test_contains_one_of(self):