Browse Source

Anpassungen Docuware

gc-server3 3 tháng trước cách đây
mục cha
commit
a666295e47
2 tập tin đã thay đổi với 15 bổ sung và 12 xóa
  1. 1 1
      app/docuware_search.py
  2. 14 11
      app/routes.py

+ 1 - 1
app/docuware_search.py

@@ -104,7 +104,7 @@ def get_invoice_pdf_by_document_no(client_db: str, document_no: str) -> bytes:
 
     for doc in dlg.search(search_condition):
         # return os.getenv("DW_URL").strip("/") + doc.document.endpoints["content"]
-        data, content_type, filename = doc.download(keep_annotations=True)
+        data, content_type, filename = doc.document.download(keep_annotations=True)
         return data
     raise ValueError(f"Document with document_no {document_no} not found in client_db {client_db}")
 

+ 14 - 11
app/routes.py

@@ -108,7 +108,7 @@ def forderungen_liste(request: Request, db: Session = Depends(get_session), limi
         ]
         if filter_temp:
             print(filter_temp[0])
-            filters[f.name] = {item[1]: item[2] for item in sorted(list(set(filter_temp)))}
+            filters[f.name] = {item[1]: item[2] for item in sorted(list(set(filter_temp))) if item[1]}
         else:
             print(f"Filter {f.name} has no options, skipping")
             filters[f.name] = {}
@@ -396,16 +396,19 @@ def get_files2(request: Request):
     return FileResponse(filename, media_type="application/octet-stream", filename=filename.name)
 
 
-@router.get("/app/forderungen/files/{primary_key}", response_class=HTMLResponse)
+@router.get("/app/forderungen/files/{primary_key}", response_class=StreamingResponse)
 def forderungen_files(request: Request, primary_key: str, db: Session = Depends(get_session)):
     pkey = convert_primary_key("forderungen", primary_key)
+    filename = "http://localhost:8093/static/assets/pdf/invoice.pdf"
+    filestream = requests.get(filename, stream=True).raw
     try:
-        filestream = get_invoice_pdf_by_document_no(client_db=pkey["Client_DB"], document_no=pkey["Beleg_Nr"])
-        # filename = "http://localhost:8093/static/assets/pdf/invoice.pdf"
-        # filestream = requests.get(filename, stream=True).raw,
-        return StreamingResponse(
-            filestream,
-            media_type="application/pdf",
-        )
-    except ValueError as e:
-        raise HTTPException(status_code=404, detail=str(e))
+        file_content = get_invoice_pdf_by_document_no(client_db=pkey["Client_DB"], document_no=pkey["Beleg_Nr"])
+        filestream = io.BytesIO(file_content)
+
+    except Exception as e:
+        print(f"Error fetching invoice PDF: {e}")
+
+    return StreamingResponse(
+        filestream,
+        media_type="application/pdf",
+    )