Added errors in log

Signed-off-by: Ettore Dreucci <ettore.dreucci@gmail.com>
This commit is contained in:
2021-01-09 00:45:27 +01:00
parent 33408c4c17
commit 1429d20951
3 changed files with 89 additions and 77 deletions

View File

@@ -6,6 +6,24 @@ import openpyxl
import PyPDF2
import wx
def download_input_file(parent):
"""download input file"""
start_date = parent.start_date_picker.GetValue().Format("%d/%m/%Y")
end_date = parent.end_date_picker.GetValue().Format("%d/%m/%Y")
input_file_url = 'https://report.casadicurasanrossore.it:8443/reportserver?/STAT_FATTURATO_CTERZI&dataI='+start_date+'&dataF='+end_date+'&rs:Format=EXCELOPENXML'
downloaded_input_file = parent.session.get(input_file_url)
if downloaded_input_file.status_code != 200:
parent.log_dialog.log_text.SetDefaultStyle(wx.TextAttr(wx.RED, font=wx.Font(wx.FontInfo(8).Bold())))
parent.log_dialog.log_text.AppendText("ERRORE: impossibile scaricare il file di input.\nControllare la connessione ad internet e l'operatività del portale CCSR. Code %d\n" % downloaded_input_file.status_code)
parent.log_dialog.log_text.SetDefaultStyle(wx.TextAttr())
wx.Yield()
return
input_file_descriptor, parent.input_file_path = tempfile.mkstemp(suffix='.xlsx')
parent.input_files.append(parent.input_file_path)
with open(input_file_descriptor, 'wb') as input_file:
input_file.write(downloaded_input_file.content)
def get_invoices_info(input_file_path: str) -> tuple:
"""extract invoices IDs and URLs from xlsx input file"""
xlsx_file = openpyxl.load_workbook(input_file_path)
@@ -33,6 +51,10 @@ def download_invoices(parent):
"""download invoices from CCSR"""
output_file_path = None
parent.log_dialog.log_text.AppendText("Download file input\n")
wx.Yield()
download_input_file(parent)
invoices_info = get_invoices_info(parent.input_file_path)
invoices = invoices_info[1]
@@ -53,7 +75,9 @@ def download_invoices(parent):
try:
PyPDF2.PdfFileReader(open(invoice["path"], "rb"))
except (PyPDF2.utils.PdfReadError, OSError):
parent.log_dialog.log_text.SetDefaultStyle(wx.TextAttr(wx.RED, font=wx.Font(wx.FontInfo(8).Bold())))
parent.log_dialog.log_text.AppendText("Errore: fattura %s corrotta!\n" % invoice_id)
parent.log_dialog.log_text.SetDefaultStyle(wx.TextAttr())
wx.Yield()
invoice["good"] = False
else:
@@ -62,25 +86,37 @@ def download_invoices(parent):
wx.Yield()
invoice["good"] = True
else:
parent.log_dialog.log_text.SetDefaultStyle(wx.TextAttr(wx.RED, font=wx.Font(wx.FontInfo(8).Bold())))
parent.log_dialog.log_text.AppendText("Errore: impossibile scaricare fattura %s: %d\n" % (invoice_id, resp.status_code))
parent.log_dialog.log_text.SetDefaultStyle(wx.TextAttr())
wx.Yield()
invoice["good"] = False
parent.log_dialog.log_text.SetDefaultStyle(wx.TextAttr(wx.BLACK, font=wx.Font(wx.FontInfo(8).Bold())))
parent.log_dialog.log_text.AppendText("Download terminato.")
parent.log_dialog.log_text.SetDefaultStyle(wx.TextAttr())
wx.Yield()
parent.output_pdf_dialog.SetFilename("fatture_%s.pdf" % invoices_info[0])
if parent.output_pdf_dialog.ShowModal() == wx.ID_OK:
output_file_path = parent.output_pdf_dialog.GetPath()
merger = PyPDF2.PdfFileMerger()
for invoice in invoices.values():
if invoice["good"]:
merger.append(PyPDF2.PdfFileReader(open(invoice["path"], "rb")))
merger.write(output_file_path)
shutil.rmtree(tmp_dir, ignore_errors=True)
parent.log_dialog.log_text.SetDefaultStyle(wx.TextAttr(wx.BLACK, font=wx.Font(wx.FontInfo(8).Bold())))
parent.log_dialog.log_text.AppendText("Il pdf contenente le fatture si trova in %s\n" % output_file_path)
parent.log_dialog.log_text.SetDefaultStyle(wx.TextAttr())
wx.Yield()
parent.log_dialog.open_file_btn.Enable()
else:
#TODO: avviso errore file output
return
merger = PyPDF2.PdfFileMerger()
for invoice in invoices.values():
if invoice["good"]:
merger.append(PyPDF2.PdfFileReader(open(invoice["path"], "rb")))
merger.write(output_file_path)
shutil.rmtree(tmp_dir, ignore_errors=True)
parent.log_dialog.log_text.AppendText("Download terminato.\nIl pdf contenente le fatture si trova in %s\n" % output_file_path)
wx.Yield()
parent.log_dialog.log_text.SetDefaultStyle(wx.TextAttr(wx.RED, font=wx.Font(wx.FontInfo(8).Bold())))
parent.log_dialog.log_text.AppendText("Non è stata eseguita l'unione delle fatture in un singolo pdf.\nLe singole fatture si trovano in %s\n" % tmp_dir)
parent.log_dialog.log_text.SetDefaultStyle(wx.TextAttr())
wx.Yield()