Browse Source

Docuware File Stream

gc-server3 2 ngày trước cách đây
mục cha
commit
77a31b8576

+ 5 - 3
app/routes.py

@@ -6,6 +6,7 @@ from typing import Annotated
 from urllib.parse import unquote, urlencode
 
 import pandas as pd
+import requests
 from docx import Document
 from docxtpl import DocxTemplate
 from fastapi import APIRouter, Depends, Form, HTTPException, Request, Response
@@ -400,9 +401,10 @@ def forderungen_files(request: Request, primary_key: str, db: Session = Depends(
     pkey = convert_primary_key("forderungen", primary_key)
     try:
         filename = get_invoice_pdf_by_document_no(client_db=pkey["Client_DB"], document_no=pkey["Beleg_Nr"])
-        return Response(
-            content=f'<iframe src="{filename}" style="width: 100%; height: 800px;" frameborder="0">Ihr Browser kann leider keine eingebetteten Frames anzeigen.</iframe>',
-            media_type="text/html",
+        # filename = "http://localhost:8093/static/assets/pdf/invoice.pdf"
+        return StreamingResponse(
+            requests.get(filename, stream=True).raw,
+            media_type="application/pdf",
         )
     except ValueError as e:
         raise HTTPException(status_code=404, detail=str(e))

+ 1 - 1
templates/base/liste.html

@@ -70,7 +70,7 @@ Klassen:
         <button type="button" class="btn-close" data-coreui-dismiss="modal" aria-label="Close"></button>
       </div>
       <div class="modal-body" id="exampleModalBody">
-        <iframe src="/static/assets/pdf/invoice.pdf" style="width: 100%; height: 800px;" frameborder="0">
+        <iframe src="/static/assets/pdf/invoice.pdf" style="width: 100%; height: 800px;" frameborder="0" id="invoiceIframe">
           Ihr Browser kann leider keine eingebetteten Frames anzeigen.
         </iframe>
       </div>

+ 1 - 1
templates/forderungen/liste/liste_zeile.html

@@ -16,7 +16,7 @@
 
   <td class="text-end align-top">
     <div class="gc-money">{{ row.Beleg_Betrag|number_format }} €</div>
-    <a href="#" data-coreui-toggle="modal" data-coreui-target="#exampleModal" hx-get="/app/forderungen/files/{{ row.Client_DB }}_{{ row.Beleg_Nr }}" hx-target="#exampleModalBody" hx-swap="innerHTML">
+    <a href="#" data-coreui-toggle="modal" data-coreui-target="#exampleModal" onclick='javascript:document.getElementById("invoiceIframe").src="/app/forderungen/files/{{ row.Client_DB }}_{{ row.Beleg_Nr }}";'>
       <span class="gc-badge gc-badge-info">{{ row.Beleg_Nr }}</span>
     </a>
   </td>