hanhwa_nexacro/scripts/generate_sample_uploads.py

70 lines
2.0 KiB
Python

from pathlib import Path
from openpyxl import Workbook
ROOT = Path(__file__).resolve().parents[1]
OUT_DIR = ROOT / "sample-data"
def write_workbook(template_code: str, rows: list[list[str]], filename: str) -> None:
workbook = Workbook()
meta_sheet = workbook.active
meta_sheet.title = "META"
meta_sheet.append(["key", "value"])
meta_sheet.append(["templateCode", template_code])
meta_sheet.append(["templateVersion", "1.0"])
data_sheet = workbook.create_sheet("DATA")
if template_code == "trial-balance":
headers = ["fiscalPeriod", "entityCode", "accountCode", "partnerEntityCode", "currencyCode", "debitAmount", "creditAmount"]
else:
headers = ["fiscalPeriod", "entityCode", "accountCode", "currencyCode", "scenarioCode", "amountValue"]
data_sheet.append(headers)
for row in rows:
data_sheet.append(row)
workbook.save(OUT_DIR / filename)
def main() -> None:
OUT_DIR.mkdir(parents=True, exist_ok=True)
write_workbook(
"trial-balance",
[
["2026-03", "US1", "AR_INT", "", "USD", "100", "0"],
["2026-03", "HQ", "REV_EXT", "", "KRW", "0", "70"],
],
"trial-balance-invalid.xlsx",
)
write_workbook(
"trial-balance",
[
["2026-03", "US1", "AR_INT", "HQ", "USD", "100", "0"],
["2026-03", "HQ", "AP_INT", "US1", "KRW", "0", "100"],
["2026-03", "HQ", "REV_EXT", "", "KRW", "0", "200000"],
["2026-03", "HQ", "EXP_OPEX", "", "KRW", "200000", "0"],
],
"trial-balance-valid.xlsx",
)
write_workbook(
"forecast",
[
["2026-03", "US1", "REV_EXT", "USD", "PLAN", "500"],
["2026-03", "SG1", "EXP_OPEX", "SGD", "FORECAST", "100"],
],
"forecast-valid.xlsx",
)
write_workbook("trial-balance", [], "trial-balance-template.xlsx")
write_workbook("forecast", [], "forecast-template.xlsx")
if __name__ == "__main__":
main()