
| Current Path : /proc/thread-self/root/home/ift/52_procpy/park/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //proc/thread-self/root/home/ift/52_procpy/park/publish_abrechnung.py |
import os,re,sys,glob,time
# Erstellt Monatsabrechnungen und publiziert sie
# Grundsaetzlich werden alle Mandanten durchgegangen, optional kann aber ein Parameter angegeben werden,
# der ein Pattern-Matching auf dem Namen des Mandanten macht.
# Eingabeformat: python3 -m publish_abrechnung.py <yy><m> [<filter>]
# oder: python3 -m publish_abrechnung.py <yy><m1>-<m2> [<filter>]
# oder: python3 -m publish_abrechnung.py <filter> <yy><m>
# oder: python3 -m publish_abrechnung.py <filter> <yy><m1>-<m2>
# Monatsangaben mit 0..9ABC (ein Zeichen)
filter = ""
try:
filter = sys.argv[1]
except:
filter = ""
endmonat = ""
try:
endmonat = sys.argv[2]
except:
endmonat = ""
m = re.search(r"^(\d\d.|\d\d.-.)$",filter)
if m:
ee = endmonat
endmonat = filter
filter = ee
if endmonat == "":
print("Endmonat muss angegeben werden (JJX)")
exit()
if __name__ == "__main__":
m = re.search(r"^(\d\d)(.)-(.)$",endmonat)
if m:
print(endmonat)
endjahr = m.group(1)
endmonat1 = m.group(2)
endmonat2 = m.group(3)
endmonate = []
for nr in ("1","2","3","4","5","6","7","8","9","A","B","C"):
# print(nr)
if len(endmonate) == 0:
if nr == endmonat1:
endmonate = [endjahr+nr]
else:
continue
else:
endmonate.append(endjahr+nr)
if nr == endmonat2:
break
else:
endmonate = [endmonat]
for endmonat in endmonate:
monat1 = "20" + endmonat[0:2] + "_0" + endmonat[2]
monat1 = re.sub(r"_0A","_10",monat1)
monat1 = re.sub(r"_0B","_11",monat1)
monat1 = re.sub(r"_0C","_12",monat1)
if filter == "":
mandanten = glob.glob("[a-z]*")
else:
mandanten = glob.glob(filter+"*")
for mandant in mandanten:
print(glob.glob(mandant+"/20_*"))
os.system("cd " + glob.glob(mandant+"/20_*")[0] + "; python3 -m park.abrechnung abrechnung " + endmonat)
x = glob.glob("/var/www/html/12park/web/report/*/."+mandant)
if len(x) > 0: # nur, wenn das Mandantenverzeichnis gefunden wird
m = re.search(r"^(.*)[\\\/]\.[a-z]+$",x[0])
ablage = m.group(1) # das ist das gefundene Verzeichnis, in das zu publizieren ist
os.system("cp " + mandant + "/*/*report*"+monat1+"*md _tmp_; cd _tmp_; " +
"python3 -m iftlib.md.gx md2svg *.md; cp *.pdf " + m.group(1))
os.system("rm _tmp_/*report*;")
time.sleep(0.1)
for jahr in (2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,
2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,
2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,
2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,
2051,2052,2053,2054,2055,2056,2057,2058,2059,2060):
jahr1 = str(jahr)
x = glob.glob(ablage+"/*report*"+jahr1+"*pdf")
if len(x) == 12:
x1 = re.sub(r"_\d\d\.pdf",".pdf",x[0])
os.system("cd " + ablage + "; pdftk *report*"+jahr1+"*pdf output " + x1)
for x2 in x:
os.unlink(x2)
time.sleep(0.1)
# os.system("rm -r _tmp_")
# for p in pp.keys():
# os.system("cd " + p + "; yy")