Files
rips_manager/app/routes/config.py
T
Lizandro GuarnizoandClaude Sonnet 4.6 c64a68ec6f Add test-rda page, fix prefijo/remisionante/especialidad for TNS RDA sends
- New /test-rda route: list Firebird candidates with valid contract/factura,
  send individual RDA with auto tercero creation and full result display
- json_generator: use prefijo_tns_default config instead of Firebird PREFIJO,
  add profesionalRemisionante from DOCIDMEDICO or remisionante_default config
- All queries: add DOCIDMEDICO column from MEDICO JOIN
- automation/transaccion: add remisionante_default and prefijo_tns_default params
- config: add remisionante_default (00) and prefijo_tns_default (00) keys
- automation SQL: filter NUM_FACTURA > 0 to skip unbilled records
- config.html: add UI fields for new config keys

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 18:57:54 -05:00

81 lines
2.6 KiB
Python

from fastapi import APIRouter, Request, Form, Depends
from fastapi.responses import JSONResponse, RedirectResponse
from app.database import get_connection
from app.auth import get_current_user
from app.services.api_client import get_tns_token
router = APIRouter(prefix="/config", tags=["config"])
DEFAULT_KEYS = [
("firebird_host", "localhost"),
("firebird_port", "3050"),
("firebird_database", "/path/to/database.fdb"),
("firebird_user", "SYSDBA"),
("firebird_password", "masterkey"),
("api_url", "http://192.168.0.125"),
("api_method", "POST"),
("api_key", ""),
("api_timeout", "30"),
("api_version", "1"),
("api_sucursal", "00"),
("tns_empresa", "9002787299"),
("tns_usuario", "DOCUXER"),
("tns_password", "Nicolas2796*+"),
("num_documento_obligado", ""),
("cod_prestador", ""),
("profesional_default", ""),
("especialidad_default", ""),
("remisionante_default", "00"),
("prefijo_tns_default", "00"),
]
def ensure_defaults():
conn = get_connection()
for key, default in DEFAULT_KEYS:
exists = conn.execute("SELECT id FROM config WHERE key = ?", (key,)).fetchone()
if not exists:
conn.execute("INSERT INTO config (key, value) VALUES (?, ?)", (key, default))
conn.commit()
conn.close()
@router.get("")
async def config_page(request: Request, user: dict = Depends(get_current_user)):
conn = get_connection()
configs = conn.execute("SELECT * FROM config ORDER BY key").fetchall()
conn.close()
return request.app.state.templates.TemplateResponse("config.html", {
"request": request, "user": user, "configs": configs
})
@router.post("/test-tns")
async def test_tns(
request: Request,
user: dict = Depends(get_current_user),
empresa: str = Form(""),
usuario: str = Form(""),
password: str = Form(""),
):
token, err = await get_tns_token(empresa, usuario, password)
if token:
return JSONResponse({"success": True, "message": "Login TNS exitoso"})
return JSONResponse({"success": False, "message": err or "Error desconocido"})
@router.post("/save")
async def config_save(request: Request, user: dict = Depends(get_current_user)):
form = await request.form()
conn = get_connection()
for key, value in form.multi_items():
if key.startswith("config_"):
real_key = key.replace("config_", "", 1)
conn.execute(
"UPDATE config SET value = ? WHERE key = ?",
(value, real_key)
)
conn.commit()
conn.close()
return RedirectResponse("/config", status_code=302)