calculate shot groups in average cost

This commit is contained in:
shibao 2022-02-15 21:56:01 -05:00
parent 7110a2db21
commit 69eebc82cc
2 changed files with 5 additions and 2 deletions

View File

@ -60,9 +60,10 @@ defmodule Cannery.Ammo do
) do ) do
Repo.one!( Repo.one!(
from ag in AmmoGroup, from ag in AmmoGroup,
left_join: sg in assoc(ag, :shot_groups),
where: ag.ammo_type_id == ^ammo_type_id, where: ag.ammo_type_id == ^ammo_type_id,
where: not (ag.price_paid |> is_nil()), where: not (ag.price_paid |> is_nil()),
select: sum(ag.price_paid) / sum(ag.count) select: sum(ag.price_paid) / (sum(ag.count) + sum(sg.count))
) )
end end

View File

@ -9,7 +9,7 @@ defmodule Cannery.Ammo.AmmoGroup do
use Ecto.Schema use Ecto.Schema
import Ecto.Changeset import Ecto.Changeset
alias Cannery.Ammo.{AmmoGroup, AmmoType} alias Cannery.Ammo.{AmmoGroup, AmmoType}
alias Cannery.{Accounts.User, Containers.Container} alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Containers.Container}
alias Ecto.{Changeset, UUID} alias Ecto.{Changeset, UUID}
@primary_key {:id, :binary_id, autogenerate: true} @primary_key {:id, :binary_id, autogenerate: true}
@ -24,6 +24,8 @@ defmodule Cannery.Ammo.AmmoGroup do
belongs_to :container, Container belongs_to :container, Container
belongs_to :user, User belongs_to :user, User
has_many :shot_groups, ShotGroup
timestamps() timestamps()
end end