Managed to get the sku doing the same thing as the previous code.
This commit is contained in:
parent
83743ca526
commit
2728ad2aae
2 changed files with 1 additions and 53 deletions
|
|
@ -23,7 +23,7 @@ def generate_sku_report(
|
||||||
end_date: Annotated[datetime.datetime, typer.Option(prompt=True)],
|
end_date: Annotated[datetime.datetime, typer.Option(prompt=True)],
|
||||||
sku: Annotated[str, 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()
|
@app.command()
|
||||||
def generate_um_report(
|
def generate_um_report(
|
||||||
|
|
|
||||||
|
|
@ -131,61 +131,9 @@ def generate_um_report(
|
||||||
dict_writer.writeheader()
|
dict_writer.writeheader()
|
||||||
dict_writer.writerows(report)
|
dict_writer.writerows(report)
|
||||||
|
|
||||||
|
|
||||||
def generate_sku_report(start_date, end_date, sku):
|
def generate_sku_report(start_date, end_date, sku):
|
||||||
logger.info(f"Fetching orders between {start_date} and {end_date}.")
|
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 = ReportChainBuilder()
|
||||||
|
|
||||||
report_chain_builder.add_order_fetching_step(
|
report_chain_builder.add_order_fetching_step(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue