Got the reporting fixed for multi skus.
This commit is contained in:
parent
3b24f96352
commit
f5b33cce74
3 changed files with 34 additions and 22 deletions
|
|
@ -26,3 +26,4 @@ CUSTOM_META_DATA_KEYS.sats_received = "sats_received"
|
|||
|
||||
UM_FIRST_AGREEMENT_PERCENTAGE = 0.5
|
||||
BBO_ROYALTY_FEE_PERCENTAGE = 0.2
|
||||
BBO_SKUS = ["TEE-05-BBO-BLACK", "SUD-01-BBO-BLACK"]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ from camisatoshi_wordpress_reports.constants import (
|
|||
UM_FIRST_AGREEMENT_PERCENTAGE,
|
||||
DEFAULT_DOTENV_FILEPATH,
|
||||
BBO_ROYALTY_FEE_PERCENTAGE,
|
||||
BBO_SKUS,
|
||||
)
|
||||
from camisatoshi_wordpress_reports.report_building import (
|
||||
OrderObtentionChainBuilder,
|
||||
|
|
@ -73,14 +74,10 @@ def generate_um_report(
|
|||
)
|
||||
logger.info(f"Received {len(orders_in_date_range)} orders.")
|
||||
|
||||
relevant_sku = "TEE-05-BBO-BLACK"
|
||||
logger.info(f"Filtering by SKU: {relevant_sku}")
|
||||
relevant_orders = orders_in_date_range.filter_orders_by_sku(
|
||||
sku=relevant_sku
|
||||
relevant_skus = [
|
||||
"TEE-05-BBO-BLACK",
|
||||
"SUD-01-BBO-BLACK",
|
||||
"TEE-09-SIMPLY-BITCOIN"
|
||||
"TEE-09-SIMPLY-BITCOIN",
|
||||
]
|
||||
logger.info(f"Filtering by SKUs: {relevant_skus}")
|
||||
relevant_orders = orders_in_date_range.filter_orders_by_skus(
|
||||
|
|
@ -115,17 +112,28 @@ def generate_um_report(
|
|||
f"Relevant orders: {[order['id'] for order in unsettled_orders]}."
|
||||
)
|
||||
report = []
|
||||
for relevant_sku in relevant_skus:
|
||||
logger.debug(f"Reporting SKU {relevant_sku}")
|
||||
for order in unsettled_orders:
|
||||
if not order.contains_sku(relevant_sku):
|
||||
continue
|
||||
logger.debug(f"Reporting for order {order[ORDER_KEYS.id]}")
|
||||
report.append(
|
||||
{
|
||||
"order_id": order[ORDER_KEYS.id],
|
||||
"sku": relevant_skus,
|
||||
"units_sold": order.units_of_skus(relevant_skus),
|
||||
"eur_income": order.sales_of_sku(relevant_skus),
|
||||
"sats_income": order.sats_received_for_sku(relevant_skus),
|
||||
"sku": relevant_sku,
|
||||
"units_sold": order.units_of_sku(relevant_sku),
|
||||
"eur_income": order.sales_of_sku(relevant_sku),
|
||||
"sats_income": order.sats_received_for_sku(relevant_sku),
|
||||
"sats_owed_to_um": (
|
||||
order.sats_received_for_sku(relevant_skus)
|
||||
* (1 - BBO_ROYALTY_FEE_PERCENTAGE)
|
||||
order.sats_received_for_sku(relevant_sku)
|
||||
* (
|
||||
1
|
||||
- (
|
||||
BBO_ROYALTY_FEE_PERCENTAGE
|
||||
* (relevant_sku in BBO_SKUS)
|
||||
)
|
||||
)
|
||||
)
|
||||
* UM_FIRST_AGREEMENT_PERCENTAGE,
|
||||
}
|
||||
|
|
@ -169,7 +177,7 @@ def generate_sku_report(start_date, end_date, sku):
|
|||
"order_id": order[ORDER_KEYS.id],
|
||||
"sku": sku,
|
||||
"units_sold": order.units_of_skus(sku),
|
||||
"eur_income": order.sales_of_sku(sku),
|
||||
"eur_income": order.sales_of_skus(sku),
|
||||
}
|
||||
)
|
||||
logger.info("Report generated.")
|
||||
|
|
|
|||
|
|
@ -109,8 +109,11 @@ class Orders:
|
|||
filtered_orders = []
|
||||
|
||||
for order in self:
|
||||
order_contains_at_least_one_of_the_skus = None # Guilty until proven innocent
|
||||
for sku in skus:
|
||||
if order.contains_sku(sku):
|
||||
order_contains_at_least_one_of_the_skus = True
|
||||
if order_contains_at_least_one_of_the_skus:
|
||||
filtered_orders.append(order)
|
||||
|
||||
return Orders(filtered_orders)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue