#!/usr/bin/env python3 import argparse import getpass import sys import requests TOKEN_URL = "/api/token/" FILL_SALES_CODES_URL = "/don_confiao/api/sales/fill_codes/" FILL_CATALOG_SALES_CODES_URL = "/don_confiao/api/catalog_sales/fill_codes/" def get_credentials(): username = input("Usuario: ") password = getpass.getpass("Contraseña: ") return username, password def get_token(domain, username, password): url = domain.rstrip("/") + TOKEN_URL response = requests.post( url, json={"username": username, "password": password} ) if response.status_code != 200: print( f"Error al obtener token: {response.status_code} {response.text}", file=sys.stderr, ) sys.exit(1) return response.json()["access"] def fill_codes(domain, token, url): headers = {"Authorization": f"Bearer {token}"} full_url = domain.rstrip("/") + url response = requests.post(full_url, headers=headers) if response.status_code != 200: print( f"Error al llenar códigos ({url}): {response.status_code} {response.text}", file=sys.stderr, ) sys.exit(1) return response.json() def main(): parser = argparse.ArgumentParser( description="Asigna un código único a todas las ventas y pedidos que lo requieran." ) parser.add_argument( "domain", help="Dominio del backend (ej: http://localhost:8000)" ) args = parser.parse_args() username, password = get_credentials() token = get_token(args.domain, username, password) print("Token obtenido correctamente.") print("Asignando códigos a ventas...") sales_result = fill_codes(args.domain, token, FILL_SALES_CODES_URL) print(f" [OK] Ventas actualizadas: {sales_result['sales_updated']}") print("Asignando códigos a pedidos de catálogo...") catalog_result = fill_codes( args.domain, token, FILL_CATALOG_SALES_CODES_URL ) print( f" [OK] Pedidos de catálogo actualizados: " f"{catalog_result['catalog_sales_updated']}" ) print( f"\nResumen: {sales_result['sales_updated']} ventas, " f"{catalog_result['catalog_sales_updated']} pedidos de catálogo actualizados" ) if __name__ == "__main__": main()