"""Genera un Excel de sueldos a partir del historial (que PHP entrega como JSON).

Uso:  python sueldos_excel.py <entrada.json> <salida.xlsx>
La entrada es una lista de registros del historial, cada uno con:
  creado, rut, nombre, num_licencia, excel_origen, pdf, remuneraciones (dict o None)
"""
import json
import sys
import openpyxl


def _g(lista, i):
    lista = lista or []
    return lista[i] if i < len(lista) else ""


def main(entrada, salida):
    with open(entrada, encoding="utf-8") as f:
        registros = json.load(f)

    wb = openpyxl.Workbook()
    ws = wb.active
    ws.title = "Sueldos"
    headers = ["Fecha", "RUT", "Nombre", "N° Licencia", "Excel Origen"]
    for n in (1, 2, 3):
        headers += [f"Mes {n}", f"Imponible {n}", f"Cotiz AFP {n}",
                    f"Salud {n}", f"Impuesto {n}", f"Líquido {n}"]
    headers.append("PDF")
    ws.append(headers)

    for e in registros:
        rem = e.get("remuneraciones") or {}
        if isinstance(rem, str):
            try:
                rem = json.loads(rem)
            except Exception:
                rem = {}
        fila = [e.get("creado", ""), e.get("rut", ""), e.get("nombre", ""),
                e.get("num_licencia", ""), e.get("excel_origen", "")]
        for i in range(3):
            fila += [_g(rem.get("meses"), i), _g(rem.get("imponible"), i),
                     _g(rem.get("cotizacion_afp"), i), _g(rem.get("salud"), i),
                     _g(rem.get("impuesto"), i), _g(rem.get("liquido"), i)]
        fila.append(e.get("pdf", ""))
        ws.append(fila)

    wb.save(salida)


if __name__ == "__main__":
    main(sys.argv[1], sys.argv[2])
