Managed to get the sku doing the same thing as the previous code.

This commit is contained in:
counterweight 2023-09-06 14:21:10 +02:00
parent 83743ca526
commit 2728ad2aae
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
2 changed files with 1 additions and 53 deletions

View file

@ -23,7 +23,7 @@ def generate_sku_report(
end_date: Annotated[datetime.datetime, typer.Option(prompt=True)],
sku: Annotated[str, typer.Option(prompt=True)]
):
controllers.wip_generate_sku_report(start_date, end_date, sku)
controllers.generate_sku_report(start_date, end_date, sku)
@app.command()
def generate_um_report(

View file

@ -131,61 +131,9 @@ def generate_um_report(
dict_writer.writeheader()
dict_writer.writerows(report)
def generate_sku_report(start_date, end_date, sku):
logger.info(f"Fetching orders between {start_date} and {end_date}.")
orders_in_date_range = WC_API.get(
endpoint="orders",
params={
"after": start_date.isoformat(),
"before": end_date.isoformat(),
"per_page": 100,
"status": "processing,completed",
},
).json()
orders_in_date_range = Orders(
[
Order.from_api_response(order_raw_data)
for order_raw_data in orders_in_date_range
]
)
logger.info(f"Received {len(orders_in_date_range)} orders.")
logger.info(f"Filtering by SKU: {sku}")
relevant_orders = orders_in_date_range.filter_orders_by_sku(sku=sku)
logger.info(f"Kept {len(relevant_orders)} orders.")
logger.info("Order filtering finished.")
logger.info(
f"Relevant orders: {[order['id'] for order in relevant_orders]}."
)
report = []
for order in relevant_orders:
report.append(
{
"order_id": order["id"],
"sku": sku,
"units_sold": order.units_of_sku(sku),
"eur_income": order.sales_of_sku(sku),
}
)
logger.info("Report generated.")
logger.info(report)
keys = report[0].keys()
with open("report.csv", "w", newline="") as output_file:
dict_writer = csv.DictWriter(output_file, keys)
dict_writer.writeheader()
dict_writer.writerows(report)
def wip_generate_sku_report(start_date, end_date, sku):
logger.info(f"Fetching orders between {start_date} and {end_date}.")
report_chain_builder = ReportChainBuilder()
report_chain_builder.add_order_fetching_step(