@cvp said:
@DavinE and what is the code of self.setFileNamePDF ?
this is my complete self.setFileNamePDF:
@ui.in_background
def setFileNamePDF(self, customer, customer_project, materiallistType):
self.createLog(False, 'setFileNamePDF -- Aufruf der Funktion - Dateiname für die *.pdf Datei finden', '', 1)
materiallistFilesName = None
self.Synology_DS718(customer)
try:
decontrol = None
for directory in self.connection_FTP.nlst(self.mainDirCustomer__CONFIG):
if directory.encode('latin-1').decode('utf-8') == self.subDirCustomer__CUSTOMER:
decontrol = True
break
if decontrol:
subDirCustomer_Materiallisten__CUSTOMER = '%s/%s' % (self.subDirCustomer_Materiallisten, customer_project)
subDirCustomer_Eintragungen = '%s/%s' % (subDirCustomer_Materiallisten__CUSTOMER, self.subDirCustomer_Eintragungen__CONFIG)
subDirCustomer_ZwischenRechnung = '%s/%s' % (subDirCustomer_Materiallisten__CUSTOMER, self.subDirCustomer_ZwischenRechnung__CONFIG)
subDirCustomer_Abgeschlossen = '%s/%s' % (subDirCustomer_Materiallisten__CUSTOMER, self.subDirCustomer_Abgeschlossen__CONFIG)
if materiallistType == self.subDirCustomer_Eintragungen__CONFIG:
materiallistType__Path = subDirCustomer_Eintragungen
elif materiallistType == self.subDirCustomer_ZwischenRechnung__CONFIG:
materiallistType__Path = subDirCustomer_ZwischenRechnung
elif materiallistType == self.subDirCustomer_Abgeschlossen__CONFIG:
materiallistType__Path = subDirCustomer_Abgeschlossen
else:
print(f'[ 7000 ] -- Der Materiallisten Typ konnte nicht ermittelt werden: [ {materiallistType} ]:\n{e}')
sound.play_effect(play_sound('play_effect', 'mysql', 'error'))
self.createLog(False, '[ 7000 ]', '', 2)
self.createLog(False, f'Der Materiallisten Typ konnte nicht ermittelt werden: [ {materiallistType} ]', '', 2)
console.alert('ftp-error', 'Der Materiallisten Typ konnte nicht ermittelt werden:\n[ {materiallistType} ]', hide_cancel_button=False)
if materiallistType == self.subDirCustomer_Abgeschlossen__CONFIG:
print("Abfrage drine!!")
materiallistFilesName = f'{date.today()} -- {customer_project}.pdf'
else:
for i, files in enumerate(self.connection_FTP.nlst(materiallistType__Path)):
for n in range(1, 51):
if os.path.basename(files).encode('latin-1').decode('utf-8') == f'{date.today()}__{n} -- {customer_project}.pdf':
materiallistFilesName = f'{date.today()}__{(n + 1)} -- {customer_project}.pdf'
if (len(self.connection_FTP.nlst(materiallistType__Path)) - 1) is i:
if not materiallistFilesName:
materiallistFilesName = f'{date.today()}__1 -- {customer_project}.pdf'
break
else:
materiallistFilesName = f'{date.today()}__1 -- {customer_project}.pdf'
except ftplib.all_errors as e:
print(f'[ 7001 ] -- Error bei der Funktion [ setFileNamePDF ]:\n{e}')
sound.play_effect(play_sound('play_effect', 'mysql', 'error'))
self.createLog(False, '[ 7001 ]', '', 2)
self.createLog(False, 'Error bei der Funktion [ setFileNamePDF ]', '', 2)
self.createLog(False, f'FTP-Server Fehler: {e}', '', 2)
console.alert('ftp-error', 'Kundenordner konnten nicht erstellt werden. [ Kunde Erstellen ]\nFehlerausgabe im Terminal', hide_cancel_button=False)
finally:
self.connection_FTP.quit()
print(materiallistFilesName)
return os.path.join(os.path.dirname(sys.argv[0]), 'Reportlab', materiallistFilesName)