81 lines
2.3 KiB
Python
81 lines
2.3 KiB
Python
#!/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()
|