Spaces:
Runtime error
Runtime error
JairoDanielMT
commited on
Commit
•
01bbbdd
1
Parent(s):
60c0f1e
mejoras con los metodos para boleta ver y descargar PDF
Browse files
app.py
CHANGED
@@ -1151,9 +1151,8 @@ def obtener_pdf_prescripcion(id_prescripcion: int):
|
|
1151 |
nombre_archivo = (
|
1152 |
f"{directorio_pdf}prescripcion_{id_prescripcion}_{fecha_hoy}.pdf"
|
1153 |
)
|
1154 |
-
|
1155 |
obj_datos_prescripcion.generar_pdf(f"{nombre_archivo}")
|
1156 |
-
return FileResponse(
|
1157 |
else:
|
1158 |
raise HTTPException(status_code=404, detail="Prescripción no encontrada")
|
1159 |
|
@@ -1896,7 +1895,7 @@ def obtener_productos_por_boleta(id_boleta):
|
|
1896 |
for resultado_montura in resultados_monturas:
|
1897 |
producto_montura = {
|
1898 |
"cantidad": resultado_montura[0],
|
1899 |
-
"descripcion": f"Código:{resultado_montura[1]}, \nNombre: {resultado_montura[2]}, \nMarca: {resultado_montura[3]}, \nColor: {resultado_montura[4]}, \nMaterial: {resultado_montura[5]}",
|
1900 |
"precio": resultado_montura[6],
|
1901 |
"importe": resultado_montura[7],
|
1902 |
}
|
@@ -1940,9 +1939,9 @@ def generar_boleta_desde_bd(id_boleta, adelanto):
|
|
1940 |
print(f"No se encontraron datos para la boleta con ID {id_boleta}.")
|
1941 |
|
1942 |
|
1943 |
-
#
|
1944 |
-
@app.get("/boleta/
|
1945 |
-
def
|
1946 |
try:
|
1947 |
directorio_pdf = "pdf/boleta/"
|
1948 |
now = datetime.now()
|
@@ -1950,8 +1949,9 @@ def generar_boleta_pdf(id_boleta: int, adelanto: float):
|
|
1950 |
nombre_archivo = f"{directorio_pdf}boleta_{formatted_date_time}.pdf"
|
1951 |
# crear pdf
|
1952 |
generar_boleta_desde_bd(id_boleta, adelanto)
|
1953 |
-
# validacion si existe el archivo o no
|
1954 |
if os.path.exists(nombre_archivo):
|
|
|
1955 |
return FileResponse(
|
1956 |
nombre_archivo,
|
1957 |
media_type="application/pdf",
|
@@ -1966,24 +1966,16 @@ def generar_boleta_pdf(id_boleta: int, adelanto: float):
|
|
1966 |
return []
|
1967 |
|
1968 |
|
1969 |
-
# endpoint
|
1970 |
-
@app.get("/boleta/
|
1971 |
-
def
|
1972 |
try:
|
1973 |
directorio_pdf = "pdf/boleta/"
|
1974 |
-
|
1975 |
-
formatted_date_time = now.strftime("%Y%m%d%H%M%S")
|
1976 |
nombre_archivo = f"{directorio_pdf}boleta_{formatted_date_time}.pdf"
|
1977 |
-
# crear pdf
|
1978 |
generar_boleta_desde_bd(id_boleta, adelanto)
|
1979 |
-
# validacion si existe el archivo o no y retorna el archivo pdf
|
1980 |
if os.path.exists(nombre_archivo):
|
1981 |
-
|
1982 |
-
return FileResponse(
|
1983 |
-
nombre_archivo,
|
1984 |
-
media_type="application/pdf",
|
1985 |
-
filename=nombre_archivo,
|
1986 |
-
)
|
1987 |
else:
|
1988 |
raise HTTPException(
|
1989 |
status_code=404, detail="No se encontró la boleta solicitada"
|
@@ -2000,8 +1992,8 @@ class BoletaPDF(BaseModel):
|
|
2000 |
|
2001 |
|
2002 |
# ruta para generar boleta en pdf con manejo de errores en caso no se encuentre la boleta
|
2003 |
-
@app.post("/boleta/
|
2004 |
-
def
|
2005 |
try:
|
2006 |
directorio_pdf = "pdf/boleta/"
|
2007 |
now = datetime.now()
|
|
|
1151 |
nombre_archivo = (
|
1152 |
f"{directorio_pdf}prescripcion_{id_prescripcion}_{fecha_hoy}.pdf"
|
1153 |
)
|
|
|
1154 |
obj_datos_prescripcion.generar_pdf(f"{nombre_archivo}")
|
1155 |
+
return FileResponse(path=nombre_archivo)
|
1156 |
else:
|
1157 |
raise HTTPException(status_code=404, detail="Prescripción no encontrada")
|
1158 |
|
|
|
1895 |
for resultado_montura in resultados_monturas:
|
1896 |
producto_montura = {
|
1897 |
"cantidad": resultado_montura[0],
|
1898 |
+
"descripcion": f"Código: {resultado_montura[1]}, \nNombre: {resultado_montura[2]}, \nMarca: {resultado_montura[3]}, \nColor: {resultado_montura[4]}, \nMaterial: {resultado_montura[5]}",
|
1899 |
"precio": resultado_montura[6],
|
1900 |
"importe": resultado_montura[7],
|
1901 |
}
|
|
|
1939 |
print(f"No se encontraron datos para la boleta con ID {id_boleta}.")
|
1940 |
|
1941 |
|
1942 |
+
# endpoint retorna el pdf de la boleta con idboleta y adelanto
|
1943 |
+
@app.get("/boleta/descargarPDF/{id_boleta}/{adelanto}")
|
1944 |
+
def descargar_pdf_boleta_get(id_boleta: int, adelanto: float):
|
1945 |
try:
|
1946 |
directorio_pdf = "pdf/boleta/"
|
1947 |
now = datetime.now()
|
|
|
1949 |
nombre_archivo = f"{directorio_pdf}boleta_{formatted_date_time}.pdf"
|
1950 |
# crear pdf
|
1951 |
generar_boleta_desde_bd(id_boleta, adelanto)
|
1952 |
+
# validacion si existe el archivo o no y retorna el archivo pdf
|
1953 |
if os.path.exists(nombre_archivo):
|
1954 |
+
# return nombre_archivo
|
1955 |
return FileResponse(
|
1956 |
nombre_archivo,
|
1957 |
media_type="application/pdf",
|
|
|
1966 |
return []
|
1967 |
|
1968 |
|
1969 |
+
# crear endpoint retornando la url del PDF con los datos de la prescripción
|
1970 |
+
@app.get("/boleta/verPDF/{id_boleta}/{adelanto}")
|
1971 |
+
def ver_pdf_boleta_get(id_boleta: int, adelanto: float):
|
1972 |
try:
|
1973 |
directorio_pdf = "pdf/boleta/"
|
1974 |
+
formatted_date_time = datetime.now().strftime("%Y%m%d%H%M%S")
|
|
|
1975 |
nombre_archivo = f"{directorio_pdf}boleta_{formatted_date_time}.pdf"
|
|
|
1976 |
generar_boleta_desde_bd(id_boleta, adelanto)
|
|
|
1977 |
if os.path.exists(nombre_archivo):
|
1978 |
+
return FileResponse(path=nombre_archivo)
|
|
|
|
|
|
|
|
|
|
|
1979 |
else:
|
1980 |
raise HTTPException(
|
1981 |
status_code=404, detail="No se encontró la boleta solicitada"
|
|
|
1992 |
|
1993 |
|
1994 |
# ruta para generar boleta en pdf con manejo de errores en caso no se encuentre la boleta
|
1995 |
+
@app.post("/boleta/descargarPDF")
|
1996 |
+
def descargar_boleta_pdf_post(boleta_pdf: BoletaPDF):
|
1997 |
try:
|
1998 |
directorio_pdf = "pdf/boleta/"
|
1999 |
now = datetime.now()
|
pdf/boleta/{boleta_20231211202519.pdf → boleta_20231211230525.pdf}
RENAMED
@@ -288,7 +288,7 @@ endobj
|
|
288 |
endobj
|
289 |
14 0 obj
|
290 |
<<
|
291 |
-
/Author (anonymous) /CreationDate (D:
|
292 |
/Subject (unspecified) /Title (untitled) /Trapped /False
|
293 |
>>
|
294 |
endobj
|
@@ -302,7 +302,7 @@ endobj
|
|
302 |
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1325
|
303 |
>>
|
304 |
stream
|
305 |
-
Gatm;gN)%,&:N/3m%]bF&8hVA]fDCL`a^AkXBltG!`>1T%n/GlQ#ulq=jWBbWF!Z;<#h$j"jZ(5%[NafNeciDq%DWA'Ll^:KS8RkKOu."(N;DUTO%1g"m9:`5@*8Jq$RGH_dm>qe>)'$/`;\1[<C(>R,5[Om2fNU/\".Bm^%p;I[V=qj:nal-Qa\-BF^4q3,U!*JNs+Oo/n1\(sh_2"rD^l^EK4_I'EaJjRAV/ZV.aGpiV+sN_qu:-5Me*(nLJ7q3R_YL"=@.:D7<Mb85=cbG@d8AnPh?B)-fY'0l9)j-N<P(tu0Pb@/9,O=,>WR7W0go:Zpk,[1khZQfG(NU`\e+\.\g'hO^gBs%ifP4[#DOh5lpL@_gRiMoOUnSa(XdYsBq.It,>%TSSK`)Te<a#JopY_t;(G>_E+au*\M;JQoIA4./([a!8-4Kp!PeBKHJo)e>!5@<TU?]G)8)H>3%MmOttl0Ek.d5*"Ts4Z6<C7Hk3$Q<+,:g.N>=M.(gE,:7\h[K,TnL_L-PA((ReV**5Y&;FnRhJXL_b:b/.9:^mhY2/@Sjd7C.2sG@@_^N+l^H6d:S=e$M2f(9@<q=H=)Gd!LYY[Z<6U$%,$66"8^0ZE!d4VhM]qqBH0`LD?ao@@M-o4e/o)<H'r4S1WfMThCPjiO'Qo<cW\/0.lrgBpL7)sV@:d,#0Mr;P!22@[^61cg\gGH%nU?IUOX?478n='9MV(uO(LQ>HaWaSFTklh9I;(DQ=,l1QEiZXm#m&+@1+d!5?&tA7S8h:QkU-Z^iXH/\.6pf\:eY7(6q/MD?TO?D-Pt"d]0oaNSU9)4I1:&`:EYXr7>j]A]is8ur^g0O@jXRP&k^RkXglC$GI/m!(<qt3e&pLF`T9PSg&kfXK/tCr_8HAe:(M)n;^IK<7Ab;Qo=-Fg7HG.$Xq%HF<%=O/13qR6iMB_ZkTXF_<fu$\]hEh@(YGSp240Vknn\)[V8`>[p7aTdkch;N=^3Z7*5F'<<K+c]"Taogp^+8`W\84u.9RHC7u(t;RKX^m-p=q;(%EFuZrku:qcHcgMnG'+bVk<i=P%F*[UQ_EjRSdEd@k38a.r5t/G,Q#G6O>_lAQLK7(oVY,g2)Q*^_#%37Zmre=2''Y1s`7MlQ^_E7jfTj8Y.pkC7c<_quR1qTEb<+7:Vgm]=(1nK#gHS;5Ml,/Z?*Dm`ASan<Z2G8mSZBl=H))lo7;&T9S9A-5W!d)tu=]Qn%8,i%l8%rN`K?3\`-0jL?PWh6<"k'l`Y]oTGSS_W(grk,3!]>
|
306 |
endobj
|
307 |
xref
|
308 |
0 17
|
@@ -326,7 +326,7 @@ xref
|
|
326 |
trailer
|
327 |
<<
|
328 |
/ID
|
329 |
-
[<
|
330 |
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
|
331 |
|
332 |
/Info 14 0 R
|
|
|
288 |
endobj
|
289 |
14 0 obj
|
290 |
<<
|
291 |
+
/Author (anonymous) /CreationDate (D:20231211230525+05'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20231211230525+05'00') /Producer (ReportLab PDF Library - www.reportlab.com)
|
292 |
/Subject (unspecified) /Title (untitled) /Trapped /False
|
293 |
>>
|
294 |
endobj
|
|
|
302 |
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1325
|
303 |
>>
|
304 |
stream
|
305 |
+
Gatm;gN)%,&:N/3m%]bF&8hVA]fDCL`a^AkXBltG!`>1T%n/GlQ#ulq=jWBbWF!Z;<#h$j"jZ(5%[NafNeciDq%DWA'Ll^:KS8RkKOu."(N;DUTO%1g"m9:`5@*8Jq$RGH_dm>qe>)'$/`;\1[<C(>R,5[Om2fNU/\".Bm^%p;I[V=qj:nal-Qa\-BF^4q3,U!*JNs+Oo/n1\(sh_2"rD^l^EK4_I'EaJjRAV/ZV.aGpiV+sN_qu:-5Me*(nLJ7q3R_YL"=@.:D7<Mb85=cbG@d8AnPh?B)-fY'0l9)j-N<P(tu0Pb@/9,O=,>WR7W0go:Zpk,[1khZQfG(NU`\e+\.\g'hO^gBs%ifP4[#DOh5lpL@_gRiMoOUnSa(XdYsBq.It,>%TSSK`)Te<a#JopY_t;(G>_E+au*\M;JQoIA4./([a!8-4Kp!PeBKHJo)e>!5@<TU?]G)8)H>3%MmOttl0Ek.d5*"Ts4Z6<C7Hk3$Q<+,:g.N>=M.(gE,:7\h[K,TnL_L-PA((ReV**5Y&;FnRhJXL_b:b/.9:^mhY2/@Sjd7C.2sG@@_^N+l^H6d:S=e$M2f(9@<q=H=)Gd!LYY[Z<6U$%,$66"8^0ZE!d4VhM]qqBH0`LD?ao@@M-o4e/o)<H'r4S1WfMThCPjiO'Qo<cW\/0.lrgBpL7)sV@:d,#0Mr;P!22@[^61cg\gGH%nU?IUOX?478n='9MV(uO(LQ>HaWaSFTklh9I;(DQ=,l1QEiZXm#m&+@1+d!5?&tA7S8h:QkU-Z^iXH/\.6pf\:eY7(6q/MD?TO?D-Pt"d]0oaNSU9)4I1:&`:EYXr7>j]A]is8ur^g0O@jXRP&k^RkXglC$GI/m!(<qt3e&pLF`T9PSg&kfXK/tCr_8HAe:(M)n;^IK<7Ab;Qo=-Fg7HG.$Xq%HF<%=O/13qR6iMB_ZkTXF_<fu$\]hEh@(YGSp240Vknn\)[V8`>[p7aTdkch;N=^3Z7*5F'<<K+c]"Taogp^+8`W\84u.9RHC7u(t;RKX^m-p=q;(%EFuZrku:qcHcgMnG'+bVk<i=P%F*[UQ_EjRSdEd@k38a.r5t/G,Q#G6O>_lAQLK7(oVY,g2)Q*^_#%37Zmre=2''Y1s`7MlQ^_E7jfTj8Y.pkC7c<_quR1qTEb<+7:Vgm]=(1nK#gHS;5Ml,/Z?*Dm`ASan<Z2G8mSZBl=H))lo7;&T9S9A-5W!d)tu=]Qn%8,i%l8%rN`K?3\`-0jL?PWh6<"k'l`Y]oTGSS_W(grk,3!]>fo*.ni?l8Y#"u<V$H]1pSP%!LB^'_`K9J%CJt6K-)V4oAf~>endstream
|
306 |
endobj
|
307 |
xref
|
308 |
0 17
|
|
|
326 |
trailer
|
327 |
<<
|
328 |
/ID
|
329 |
+
[<112f1def649e5ce676f4ac4b97986280><112f1def649e5ce676f4ac4b97986280>]
|
330 |
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
|
331 |
|
332 |
/Info 14 0 R
|
pdf/boleta/boleta_20231211230615.pdf
ADDED
The diff for this file is too large to render.
See raw diff
|
|
pdf/prescripcion/{prescripcion_1_2023-12-09.pdf → prescripcion_1_2023-12-11.pdf}
RENAMED
Binary files a/pdf/prescripcion/prescripcion_1_2023-12-09.pdf and b/pdf/prescripcion/prescripcion_1_2023-12-11.pdf differ
|
|