33 lines
913 B
Python
33 lines
913 B
Python
"""Import a procurement-order workbook into the purchase order ledger."""
|
|
|
|
import argparse
|
|
import asyncio
|
|
import logging
|
|
from pathlib import Path
|
|
|
|
from app.core.config import get_settings
|
|
from app.database.session import SessionFactory
|
|
from app.services.purchase_orders import import_purchase_orders
|
|
|
|
|
|
async def run(path: Path) -> None:
|
|
async with SessionFactory() as session:
|
|
result = await import_purchase_orders(session, path)
|
|
await session.commit()
|
|
for key, value in result.items():
|
|
print(f"{key}={value}")
|
|
|
|
|
|
def main() -> None:
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--file", type=Path, required=True)
|
|
args = parser.parse_args()
|
|
if not args.file.is_file():
|
|
parser.error(f"file does not exist: {args.file}")
|
|
logging.basicConfig(level=get_settings().log_level)
|
|
asyncio.run(run(args.file))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|