examples/standalone/05_data_report.cat
#!/usr/bin/env catnip
# Générateur de rapport de données
# Usage: catnip data_report.cat

# Données de ventes (en production, charger depuis DB/CSV)
sales = list(
    dict(product='Laptop', quantity=5, price=1000),
    dict(product='Mouse', quantity=50, price=20),
    dict(product='Keyboard', quantity=30, price=80),
    dict(product='Monitor', quantity=10, price=300)
)

# Calculer métriques
total_products = len(sales)
total_revenue = 0
total_items = 0

i = 0
while i < total_products {
    item = sales[i]
    revenue = item['quantity'] * item['price']
    total_revenue = total_revenue + revenue
    total_items = total_items + item['quantity']
    i = i + 1
}

avg_price = total_revenue / total_items

# Trouver best seller (par revenue)
best_seller = sales[0]
best_revenue = best_seller['quantity'] * best_seller['price']

j = 1
while j < total_products {
    item = sales[j]
    revenue = item['quantity'] * item['price']
    if revenue > best_revenue {
        best_seller = item
        best_revenue = revenue
    }
    j = j + 1
}

# Générer rapport
print("═══════════════════════════════")
print("   RAPPORT DE VENTES")
print("═══════════════════════════════")
print("")
print("Résumé")
print("------")
print("Total produits : " + str(total_products))
print("Total articles vendus : " + str(total_items))
print("Revenu total : $" + str(total_revenue))
print("Prix moyen : $" + str(avg_price))
print("")
print("Top produit")
print("-----------")
print("Produit : " + best_seller['product'])
print("Quantité : " + str(best_seller['quantity']))
print("Prix unitaire : $" + str(best_seller['price']))
print("Revenu : $" + str(best_revenue))
print("")
print("Détails par produit")
print("-------------------")

k = 0
while k < total_products {
    item = sales[k]
    revenue = item['quantity'] * item['price']
    print("")
    print(item['product'] + " :")
    print("  Quantité : " + str(item['quantity']))
    print("  Prix : $" + str(item['price']))
    print("  Revenu : $" + str(revenue))
    k = k + 1
}

print("")
print("═══════════════════════════════")

# Retourner revenu total
total_revenue