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
|
UM_FIRST_AGREEMENT_PERCENTAGE = 0.5
|
||||||
BBO_ROYALTY_FEE_PERCENTAGE = 0.2
|
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,
|
UM_FIRST_AGREEMENT_PERCENTAGE,
|
||||||
DEFAULT_DOTENV_FILEPATH,
|
DEFAULT_DOTENV_FILEPATH,
|
||||||
BBO_ROYALTY_FEE_PERCENTAGE,
|
BBO_ROYALTY_FEE_PERCENTAGE,
|
||||||
|
BBO_SKUS,
|
||||||
)
|
)
|
||||||
from camisatoshi_wordpress_reports.report_building import (
|
from camisatoshi_wordpress_reports.report_building import (
|
||||||
OrderObtentionChainBuilder,
|
OrderObtentionChainBuilder,
|
||||||
|
|
@ -73,14 +74,10 @@ def generate_um_report(
|
||||||
)
|
)
|
||||||
logger.info(f"Received {len(orders_in_date_range)} orders.")
|
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 = [
|
relevant_skus = [
|
||||||
"TEE-05-BBO-BLACK",
|
"TEE-05-BBO-BLACK",
|
||||||
"SUD-01-BBO-BLACK",
|
"SUD-01-BBO-BLACK",
|
||||||
"TEE-09-SIMPLY-BITCOIN"
|
"TEE-09-SIMPLY-BITCOIN",
|
||||||
]
|
]
|
||||||
logger.info(f"Filtering by SKUs: {relevant_skus}")
|
logger.info(f"Filtering by SKUs: {relevant_skus}")
|
||||||
relevant_orders = orders_in_date_range.filter_orders_by_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]}."
|
f"Relevant orders: {[order['id'] for order in unsettled_orders]}."
|
||||||
)
|
)
|
||||||
report = []
|
report = []
|
||||||
|
for relevant_sku in relevant_skus:
|
||||||
|
logger.debug(f"Reporting SKU {relevant_sku}")
|
||||||
for order in unsettled_orders:
|
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(
|
report.append(
|
||||||
{
|
{
|
||||||
"order_id": order[ORDER_KEYS.id],
|
"order_id": order[ORDER_KEYS.id],
|
||||||
"sku": relevant_skus,
|
"sku": relevant_sku,
|
||||||
"units_sold": order.units_of_skus(relevant_skus),
|
"units_sold": order.units_of_sku(relevant_sku),
|
||||||
"eur_income": order.sales_of_sku(relevant_skus),
|
"eur_income": order.sales_of_sku(relevant_sku),
|
||||||
"sats_income": order.sats_received_for_sku(relevant_skus),
|
"sats_income": order.sats_received_for_sku(relevant_sku),
|
||||||
"sats_owed_to_um": (
|
"sats_owed_to_um": (
|
||||||
order.sats_received_for_sku(relevant_skus)
|
order.sats_received_for_sku(relevant_sku)
|
||||||
* (1 - BBO_ROYALTY_FEE_PERCENTAGE)
|
* (
|
||||||
|
1
|
||||||
|
- (
|
||||||
|
BBO_ROYALTY_FEE_PERCENTAGE
|
||||||
|
* (relevant_sku in BBO_SKUS)
|
||||||
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
* UM_FIRST_AGREEMENT_PERCENTAGE,
|
* UM_FIRST_AGREEMENT_PERCENTAGE,
|
||||||
}
|
}
|
||||||
|
|
@ -169,7 +177,7 @@ def generate_sku_report(start_date, end_date, sku):
|
||||||
"order_id": order[ORDER_KEYS.id],
|
"order_id": order[ORDER_KEYS.id],
|
||||||
"sku": sku,
|
"sku": sku,
|
||||||
"units_sold": order.units_of_skus(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.")
|
logger.info("Report generated.")
|
||||||
|
|
|
||||||
|
|
@ -109,8 +109,11 @@ class Orders:
|
||||||
filtered_orders = []
|
filtered_orders = []
|
||||||
|
|
||||||
for order in self:
|
for order in self:
|
||||||
|
order_contains_at_least_one_of_the_skus = None # Guilty until proven innocent
|
||||||
for sku in skus:
|
for sku in skus:
|
||||||
if order.contains_sku(sku):
|
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)
|
filtered_orders.append(order)
|
||||||
|
|
||||||
return Orders(filtered_orders)
|
return Orders(filtered_orders)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue