|
| 1 | +REPORT_TEMPLATE = """ |
| 2 | +Monthly Sales Report |
| 3 | +-------------------- |
| 4 | +Report Date Range: {start_date} to {end_date} |
| 5 | +
|
| 6 | +Number of Transactions: {sep:.>20} {transactions:,} |
| 7 | +Average Transaction Value: {sep:.>11} ${avg_transaction:,.2f} |
| 8 | +
|
| 9 | +Total Sales: {sep:.>23} ${total_sales:,.2f} |
| 10 | +""" |
| 11 | + |
| 12 | + |
| 13 | +def build_sales_report(sales_data, report_template=REPORT_TEMPLATE): |
| 14 | + total_sales = sum(sale["amount"] for sale in sales_data) |
| 15 | + transactions = len(sales_data) |
| 16 | + avg_transaction = total_sales / transactions |
| 17 | + |
| 18 | + return report_template.format( |
| 19 | + sep=".", |
| 20 | + start_date=sales_data[0]["date"], |
| 21 | + end_date=sales_data[-1]["date"], |
| 22 | + total_sales=total_sales, |
| 23 | + transactions=transactions, |
| 24 | + avg_transaction=avg_transaction, |
| 25 | + ) |
| 26 | + |
| 27 | + |
| 28 | +sales_data = [ |
| 29 | + {"date": "2024-04-01", "amount": 100}, |
| 30 | + {"date": "2024-04-02", "amount": 200}, |
| 31 | + {"date": "2024-04-03", "amount": 300}, |
| 32 | + {"date": "2024-04-04", "amount": 400}, |
| 33 | + {"date": "2024-04-05", "amount": 500}, |
| 34 | +] |
| 35 | + |
| 36 | +print(build_sales_report(sales_data)) |
0 commit comments