размещения ручки
This commit is contained in:
@@ -60,20 +60,29 @@ def _format_period_label(dt: datetime.datetime, grouping: dto.DateGrouping) -> s
|
||||
raise ValueError('Invalid date grouping')
|
||||
|
||||
|
||||
def _get_placement_date(placement_post: domain.PlacementPost) -> datetime.datetime:
|
||||
placement = placement_post.placement
|
||||
if placement and placement.placement_at:
|
||||
return placement.placement_at
|
||||
if placement_post.post and placement_post.post.created_at:
|
||||
return placement_post.post.created_at
|
||||
return placement_post.created_at
|
||||
|
||||
|
||||
def _get_grouping_date(placement_post: domain.PlacementPost, date_grouping: dto.DateGroupingType) -> datetime.datetime:
|
||||
match date_grouping:
|
||||
case dto.DateGroupingType.PLACEMENT_DATE:
|
||||
return placement_post.wanted_placement_date
|
||||
return _get_placement_date(placement_post)
|
||||
case dto.DateGroupingType.PURCHASE_DATE:
|
||||
if placement_post.placement:
|
||||
return placement_post.placement.created_at
|
||||
return placement_post.wanted_placement_date # Fallback
|
||||
return _get_placement_date(placement_post) # Fallback
|
||||
case dto.DateGroupingType.LINK_DATE:
|
||||
if placement_post.placement:
|
||||
return placement_post.placement.created_at
|
||||
return placement_post.wanted_placement_date # Fallback
|
||||
return _get_placement_date(placement_post) # Fallback
|
||||
case _:
|
||||
return placement_post.wanted_placement_date
|
||||
return _get_placement_date(placement_post)
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -223,7 +232,8 @@ async def get_projects_analytics(
|
||||
pd.purchases_count += 1
|
||||
total_metrics.purchases_count += 1
|
||||
|
||||
cost = placement_post.cost or 0.0
|
||||
placement = placement_post.placement
|
||||
cost = placement.cost_value if placement and placement.cost_value is not None else 0.0
|
||||
pd.total_cost += cost
|
||||
total_metrics.total_cost += cost
|
||||
|
||||
@@ -241,7 +251,6 @@ async def get_projects_analytics(
|
||||
total_metrics.reach_volume += views_count
|
||||
|
||||
# Расчет скидок
|
||||
placement = placement_post.placement
|
||||
if placement and placement.cost_before_bargain and placement.cost_before_bargain > cost:
|
||||
discount = placement.cost_before_bargain - cost
|
||||
discount_percent = (
|
||||
|
||||
Reference in New Issue
Block a user