display used-up date on used-up ammo

This commit is contained in:
2022-11-07 01:36:28 -05:00
parent cc31958bbe
commit cfbec3189c
31 changed files with 230 additions and 141 deletions

View File

@ -227,7 +227,7 @@ defmodule Cannery.Ammo do
def list_ammo_groups_for_type(
%AmmoType{id: ammo_type_id, user_id: user_id},
%User{id: user_id},
_include_empty = true
true = _include_empty
) do
Repo.all(
from ag in AmmoGroup,
@ -242,7 +242,7 @@ defmodule Cannery.Ammo do
def list_ammo_groups_for_type(
%AmmoType{id: ammo_type_id, user_id: user_id},
%User{id: user_id},
_include_empty = false
false = _include_empty
) do
Repo.all(
from ag in AmmoGroup,
@ -272,7 +272,7 @@ defmodule Cannery.Ammo do
def list_ammo_groups_for_container(
%Container{id: container_id, user_id: user_id},
%User{id: user_id},
_include_empty = true
true = _include_empty
) do
Repo.all(
from ag in AmmoGroup,
@ -287,7 +287,7 @@ defmodule Cannery.Ammo do
def list_ammo_groups_for_container(
%Container{id: container_id, user_id: user_id},
%User{id: user_id},
_include_empty = false
false = _include_empty
) do
Repo.all(
from ag in AmmoGroup,
@ -317,7 +317,7 @@ defmodule Cannery.Ammo do
def get_ammo_groups_count_for_type(
%AmmoType{id: ammo_type_id, user_id: user_id},
%User{id: user_id},
_include_empty = true
true = _include_empty
) do
Repo.one!(
from ag in AmmoGroup,
@ -331,7 +331,7 @@ defmodule Cannery.Ammo do
def get_ammo_groups_count_for_type(
%AmmoType{id: ammo_type_id, user_id: user_id},
%User{id: user_id},
_include_empty = false
false = _include_empty
) do
Repo.one!(
from ag in AmmoGroup,
@ -356,7 +356,7 @@ defmodule Cannery.Ammo do
@spec list_ammo_groups(User.t(), include_empty :: boolean()) :: [AmmoGroup.t()]
def list_ammo_groups(user, include_empty \\ false)
def list_ammo_groups(%User{id: user_id}, _include_empty = true) do
def list_ammo_groups(%User{id: user_id}, true = _include_empty) do
Repo.all(
from ag in AmmoGroup,
left_join: sg in assoc(ag, :shot_groups),
@ -366,7 +366,7 @@ defmodule Cannery.Ammo do
)
end
def list_ammo_groups(%User{id: user_id}, _include_empty = false) do
def list_ammo_groups(%User{id: user_id}, false = _include_empty) do
Repo.all(
from ag in AmmoGroup,
left_join: sg in assoc(ag, :shot_groups),
@ -435,6 +435,17 @@ defmodule Cannery.Ammo do
|> Enum.sum()
end
@doc """
Returns the last entered shot group for an ammo group
"""
@spec get_last_used_shot_group(AmmoGroup.t()) :: ShotGroup.t() | nil
def get_last_used_shot_group(%AmmoGroup{} = ammo_group) do
ammo_group
|> Repo.preload(:shot_groups)
|> Map.fetch!(:shot_groups)
|> Enum.max_by(fn %{date: date} -> date end, Date, fn -> nil end)
end
@doc """
Calculates the percentage remaining of an ammo group out of 100
"""