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
Repo.one!(
from ag in AmmoGroup,
left_join: sg in assoc(ag, :shot_groups),
where: ag.ammo_type_id == ^ammo_type_id,
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

View File

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