diff --git a/afip_seleccionar_empresa.lua b/afip_seleccionar_empresa.lua new file mode 100644 index 0000000..5e632db --- /dev/null +++ b/afip_seleccionar_empresa.lua @@ -0,0 +1,96 @@ + +-- Sample json payload +--[[ +{ + "uid": "53935f27-5cf0-4281-9a29-a68f100ee981", + "execution_status": "Borrador", + "tipo_comprobante": "factura c", + "fecha_comprobante": "13/11/2025", + "tipo_concepto": "servicios", + "servicio_fecha_desde": "01/10/2025", + "servicio_fecha_hasta": "01/10/2025", + "servicio_fecha_vencimiento_pago": "13/11/2025", + "referencia": "", + "tipo_iva_receptor": "consumidor final", + "cuit_receptor": "", + "forma_pago": "contado", + "monto_unitario": "10000", + "cantidad": "1", + "descripcion": "Clase de apoyo", + "execution_request": { + "request_uid": "f976aa76-8d49-4564-8e44-2100819bae77", + "execution_status": "Fallido", + "user_uid": "bc31ddeb-b8c7-48e1-b569-20bbd8e7ec12", + "options": { + "automatic_confirmation_flag": false + }, + "csv_data": "factura c,16/11/2025,servicios,01/10/2025,01/10/2025,16/11/2025,,monotributo,27287630412,contado,10000,1,Clase de apoyo\\n", + "credentials": { + "cuit": "20292929092", + "password": "password", + "orden_punto_venta": 1, + "nombre_empresa": "NOMBRE DE EMPRESA" + } + } +} +--]] + + +---------------------------------------------------------------------- +-- Helpers +---------------------------------------------------------------------- +local function logErrorAndExit(message) + log(message) + error(message) +end + +---------------------------------------------------------------------- +-- Main logic +---------------------------------------------------------------------- +local function main() + log("afip_seleccionar_empresa: starting") + local json = require("json") + local payload, err = json.decode(json_payload) + + local nombre_empresa = payload["execution_request"]["credentials"]["nombre_empresa"] + -------------------------------------------------------------------- + -- 1) Navegar a la página de selección de empresa + -------------------------------------------------------------------- + local err = navigate("https://fe.afip.gob.ar/rcel/jsp/index_bis.jsp") + if err then + logErrorAndExit("afip_seleccionar_empresa: error navigating to URL: " .. tostring(err)) + end + + -------------------------------------------------------------------- + -- 2) Esperar 5 segundos para que la página cargue completamente + -------------------------------------------------------------------- + waitSecs(5) + + -------------------------------------------------------------------- + -- 3) Esperar a que el input de la empresa esté visible + -------------------------------------------------------------------- + local selector = "input[value=\"" .. nombre_empresa .. "\"]" + + err = waitVisibleByQuerySelector(selector) + if err then + logErrorAndExit("afip_seleccionar_empresa: error waiting for selector '" .. selector .. "': " .. tostring(err)) + end + + -------------------------------------------------------------------- + -- 4) Clickear el elemento + -------------------------------------------------------------------- + err = clickElementByQuerySelector(selector) + if err then + logErrorAndExit("afip_seleccionar_empresa: error clicking selector '" .. selector .. "': " .. tostring(err)) + end + + -------------------------------------------------------------------- + -- Done + -------------------------------------------------------------------- + log("afip_seleccionar_empresa: completed successfully") +end + +local ok, err = pcall(main) +if not ok then + logErrorAndExit("afip_seleccionar_empresa failed: " .. tostring(err)) +end