fix: set valor=0 in detallePedido; parse full factura (prefix+number) in search
- json_generator: send valor:0 per item instead of PRECIO from Firebird - test_rda + transaccion: accept "LHXC03726" format — extracts numeric part for NUM_FACTURA and letter prefix for PREFIJO filter when prefix present Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
4b77f0a0ac
commit
1548aadf3c
+10
-2
@@ -222,8 +222,16 @@ async def test_enviar(request: Request, user: dict = Depends(get_current_user)):
|
|||||||
return JSONResponse({"error": f"Error Firebird: {fb_msg}"})
|
return JSONResponse({"error": f"Error Firebird: {fb_msg}"})
|
||||||
|
|
||||||
if modo == "factura":
|
if modo == "factura":
|
||||||
where = "r.NUM_FACTURA = :val"
|
import re as _re
|
||||||
params = {"val": int(valor)}
|
nums = _re.findall(r'\d+', valor)
|
||||||
|
num_val = int(nums[-1]) if nums else 0
|
||||||
|
prefix = _re.sub(r'[\d\s]', '', valor).strip().upper()
|
||||||
|
if prefix:
|
||||||
|
where = "r.NUM_FACTURA = :val AND TRIM(r.PREFIJO) = :prefijo"
|
||||||
|
params = {"val": num_val, "prefijo": prefix}
|
||||||
|
else:
|
||||||
|
where = "r.NUM_FACTURA = :val"
|
||||||
|
params = {"val": num_val}
|
||||||
else:
|
else:
|
||||||
where = "r.IDRECEPCION = :val"
|
where = "r.IDRECEPCION = :val"
|
||||||
params = {"val": int(valor)}
|
params = {"val": int(valor)}
|
||||||
|
|||||||
@@ -26,9 +26,12 @@ def _query_rows(cfg, query_text, factura, fecha_inicio, fecha_fin):
|
|||||||
return None, msg, None
|
return None, msg, None
|
||||||
nums = _re.findall(r'\d+', factura or "")
|
nums = _re.findall(r'\d+', factura or "")
|
||||||
num_val = int(nums[-1]) if nums else (factura or "")
|
num_val = int(nums[-1]) if nums else (factura or "")
|
||||||
|
prefix = _re.sub(r'[\d\s]', '', factura or "").strip().upper()
|
||||||
params = {"fecha_ini": f"{fecha_inicio} 00:00:00", "fecha_fin": f"{fecha_fin} 23:59:59"}
|
params = {"fecha_ini": f"{fecha_inicio} 00:00:00", "fecha_fin": f"{fecha_fin} 23:59:59"}
|
||||||
if ":num_factura" in query_text:
|
if ":num_factura" in query_text:
|
||||||
params["num_factura"] = num_val
|
params["num_factura"] = num_val
|
||||||
|
if ":prefijo" in query_text:
|
||||||
|
params["prefijo"] = prefix
|
||||||
ok2, err, rows = fb.execute_query(query_text, params)
|
ok2, err, rows = fb.execute_query(query_text, params)
|
||||||
fb.disconnect()
|
fb.disconnect()
|
||||||
if not ok2:
|
if not ok2:
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ def generar_rda_paciente(rows: list, default_profesional: str = "", default_espe
|
|||||||
"codigoBodega": "00",
|
"codigoBodega": "00",
|
||||||
"cantidad": 1,
|
"cantidad": 1,
|
||||||
"tipoUnidad": "D",
|
"tipoUnidad": "D",
|
||||||
"valor": float(row.get("PRECIO") or 0),
|
"valor": 0,
|
||||||
"descuento": float(row.get("DESCUENTO") or 0),
|
"descuento": float(row.get("DESCUENTO") or 0),
|
||||||
"porcentajeIva": 0,
|
"porcentajeIva": 0,
|
||||||
"impConsumo": 0,
|
"impConsumo": 0,
|
||||||
|
|||||||
Reference in New Issue
Block a user