Membership Fee 6 - UI Components & LiveViews closes #280 #304
1 changed files with 21 additions and 17 deletions
|
|
@ -13,25 +13,29 @@ defmodule Mv.Membership.Member.Changes.SetDefaultMembershipFeeType do
|
||||||
current_type_id = Ash.Changeset.get_attribute(changeset, :membership_fee_type_id)
|
current_type_id = Ash.Changeset.get_attribute(changeset, :membership_fee_type_id)
|
||||||
|
|
||||||
if is_nil(current_type_id) do
|
if is_nil(current_type_id) do
|
||||||
case Mv.Membership.get_settings() do
|
apply_default_membership_fee_type(changeset)
|
||||||
{:ok, settings} ->
|
|
||||||
if settings.default_membership_fee_type_id do
|
|
||||||
Ash.Changeset.force_change_attribute(
|
|
||||||
changeset,
|
|
||||||
:membership_fee_type_id,
|
|
||||||
settings.default_membership_fee_type_id
|
|
||||||
)
|
|
||||||
else
|
|
||||||
changeset
|
|
||||||
end
|
|
||||||
|
|
||||||
{:error, _error} ->
|
|
||||||
# If settings can't be loaded, continue without default
|
|
||||||
# This prevents member creation from failing if settings are misconfigured
|
|
||||||
changeset
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
changeset
|
changeset
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp apply_default_membership_fee_type(changeset) do
|
||||||
|
case Mv.Membership.get_settings() do
|
||||||
|
{:ok, settings} ->
|
||||||
|
if settings.default_membership_fee_type_id do
|
||||||
|
Ash.Changeset.force_change_attribute(
|
||||||
|
changeset,
|
||||||
|
:membership_fee_type_id,
|
||||||
|
settings.default_membership_fee_type_id
|
||||||
|
)
|
||||||
|
else
|
||||||
|
changeset
|
||||||
|
end
|
||||||
|
|
||||||
|
{:error, _error} ->
|
||||||
|
# If settings can't be loaded, continue without default
|
||||||
|
# This prevents member creation from failing if settings are misconfigured
|
||||||
|
changeset
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue