forked from shibao/cannery
		
	calculate shot groups in average cost
This commit is contained in:
		@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user