1
📊
Ambil data stok & jualanAPI inventory sales velocity, lead time, stock on hand
2
🧮
Kira kuantiti reorderSales velocity × lead time − stock on hand
3
🔍
Rank by urgencyKategorikan high/medium/low berdasarkan ketersediaan
4
📋
Hasilkan purchase orderSenarai PO dioptimumkan + anggaran kos
import requests, json, pandas as pd
API_INV = "https://api.example.com/v2/inventory"
def fetch_inventory():
resp = requests.get(API_INV, params={"status": "active"})
return resp.json().get("items", [])
def calc_reorder(items):
rows = []
for i in items:
req = i["sales_velocity"] * i["lead_time_days"]
reorder = max(0, req - i["stock_on_hand"])
urgency = "High" if i["stock_on_hand"] < req * 0.3 else "Medium" if i["stock_on_hand"] < req * 0.7 else "Low"
rows.append({"sku": i["sku"], "reorder": reorder, "cost": reorder * i["unit_cost"], "urgency": urgency})
return sorted(rows, key=lambda r: -r["reorder"])
po = calc_reorder(fetch_inventory())
print(json.dumps(po, indent=2))