A lot of work

This commit is contained in:
counterweight 2023-09-05 11:47:38 +02:00
parent a3af630c1f
commit f3776966bc
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
3 changed files with 204 additions and 0 deletions

View file

@ -1,3 +1,4 @@
from functools import partial
from pathlib import Path
import datetime
import logging
@ -12,6 +13,7 @@ from camisatoshi_wordpress_reports.constants import (
DEFAULT_DOTENV_FILEPATH,
bbo_royalty_fee,
)
from camisatoshi_wordpress_reports.report_building import ReportChainBuilder, WoocomerceOrderScope, keep_orders_containing_sku
API_CONFIG = dotenv_values(
dotenv_path=Path.home() / Path(DEFAULT_DOTENV_FILEPATH)
@ -176,3 +178,48 @@ def generate_sku_report(start_date, end_date, sku):
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(
wc_order_scope=WoocomerceOrderScope(
after=start_date.isoformat(),
before=end_date.isoformat(),
status="processing,completed"
)
)
report_chain_builder.add_order_filtering_step(
partial(
keep_orders_containing_sku,
sku=sku
)
)
report_chain = report_chain_builder.get_report_chain()
relevant_orders = report_chain.run_chain(WC_API)
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)