Implement multi SKU filtering
This commit is contained in:
parent
a1dcb826ee
commit
3b24f96352
2 changed files with 24 additions and 6 deletions
|
|
@ -77,6 +77,14 @@ def generate_um_report(
|
||||||
logger.info(f"Filtering by SKU: {relevant_sku}")
|
logger.info(f"Filtering by SKU: {relevant_sku}")
|
||||||
relevant_orders = orders_in_date_range.filter_orders_by_sku(
|
relevant_orders = orders_in_date_range.filter_orders_by_sku(
|
||||||
sku=relevant_sku
|
sku=relevant_sku
|
||||||
|
relevant_skus = [
|
||||||
|
"TEE-05-BBO-BLACK",
|
||||||
|
"SUD-01-BBO-BLACK",
|
||||||
|
"TEE-09-SIMPLY-BITCOIN"
|
||||||
|
]
|
||||||
|
logger.info(f"Filtering by SKUs: {relevant_skus}")
|
||||||
|
relevant_orders = orders_in_date_range.filter_orders_by_skus(
|
||||||
|
skus=relevant_skus
|
||||||
)
|
)
|
||||||
logger.info(f"Kept {len(relevant_orders)} orders.")
|
logger.info(f"Kept {len(relevant_orders)} orders.")
|
||||||
|
|
||||||
|
|
@ -111,12 +119,12 @@ def generate_um_report(
|
||||||
report.append(
|
report.append(
|
||||||
{
|
{
|
||||||
"order_id": order[ORDER_KEYS.id],
|
"order_id": order[ORDER_KEYS.id],
|
||||||
"sku": relevant_sku,
|
"sku": relevant_skus,
|
||||||
"units_sold": order.units_of_sku(relevant_sku),
|
"units_sold": order.units_of_skus(relevant_skus),
|
||||||
"eur_income": order.sales_of_sku(relevant_sku),
|
"eur_income": order.sales_of_sku(relevant_skus),
|
||||||
"sats_income": order.sats_received_for_sku(relevant_sku),
|
"sats_income": order.sats_received_for_sku(relevant_skus),
|
||||||
"sats_owed_to_um": (
|
"sats_owed_to_um": (
|
||||||
order.sats_received_for_sku(relevant_sku)
|
order.sats_received_for_sku(relevant_skus)
|
||||||
* (1 - BBO_ROYALTY_FEE_PERCENTAGE)
|
* (1 - BBO_ROYALTY_FEE_PERCENTAGE)
|
||||||
)
|
)
|
||||||
* UM_FIRST_AGREEMENT_PERCENTAGE,
|
* UM_FIRST_AGREEMENT_PERCENTAGE,
|
||||||
|
|
@ -160,7 +168,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_sku(sku),
|
"units_sold": order.units_of_skus(sku),
|
||||||
"eur_income": order.sales_of_sku(sku),
|
"eur_income": order.sales_of_sku(sku),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,16 @@ class Orders:
|
||||||
|
|
||||||
return Orders(filtered_orders)
|
return Orders(filtered_orders)
|
||||||
|
|
||||||
|
def filter_orders_by_skus(self, skus: Collection[str]) -> "Orders":
|
||||||
|
filtered_orders = []
|
||||||
|
|
||||||
|
for order in self:
|
||||||
|
for sku in skus:
|
||||||
|
if order.contains_sku(sku):
|
||||||
|
filtered_orders.append(order)
|
||||||
|
|
||||||
|
return Orders(filtered_orders)
|
||||||
|
|
||||||
def filter_orders_without_sats_received(self) -> "Orders":
|
def filter_orders_without_sats_received(self) -> "Orders":
|
||||||
orders_without_sats_received = []
|
orders_without_sats_received = []
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue