feat: show both last and current cycle status in payment data
- Add current cycle status calculation and display - Show both Last Cycle and Current Cycle status badges - Replace single Status field with two separate fields
This commit is contained in:
parent
355d5bea9e
commit
aece03c9c2
1 changed files with 24 additions and 3 deletions
|
|
@ -179,7 +179,7 @@ defmodule MvWeb.MemberLive.Show do
|
|||
value={MembershipFeeHelpers.format_interval(@member.membership_fee_type.interval)}
|
||||
class="w-28"
|
||||
/>
|
||||
<.data_field label={gettext("Status")} class="w-24">
|
||||
<.data_field label={gettext("Last Cycle")} class="w-28">
|
||||
<%= if @member.last_cycle_status do %>
|
||||
<% status = @member.last_cycle_status %>
|
||||
<span class={["badge", MembershipFeeHelpers.status_color(status)]}>
|
||||
|
|
@ -189,6 +189,16 @@ defmodule MvWeb.MemberLive.Show do
|
|||
<span class="badge badge-ghost">{gettext("No cycles")}</span>
|
||||
<% end %>
|
||||
</.data_field>
|
||||
<.data_field label={gettext("Current Cycle")} class="w-28">
|
||||
<%= if @member.current_cycle_status do %>
|
||||
<% status = @member.current_cycle_status %>
|
||||
<span class={["badge", MembershipFeeHelpers.status_color(status)]}>
|
||||
{format_status_label(status)}
|
||||
</span>
|
||||
<% else %>
|
||||
<span class="badge badge-ghost">{gettext("No cycles")}</span>
|
||||
<% end %>
|
||||
</.data_field>
|
||||
</div>
|
||||
<% else %>
|
||||
<div class="text-base-content/70 italic">
|
||||
|
|
@ -230,9 +240,13 @@ defmodule MvWeb.MemberLive.Show do
|
|||
|
||||
member = Ash.read_one!(query)
|
||||
|
||||
# Calculate last cycle status from loaded cycles
|
||||
# Calculate last and current cycle status from loaded cycles
|
||||
last_cycle_status = get_last_cycle_status(member)
|
||||
member = Map.put(member, :last_cycle_status, last_cycle_status)
|
||||
current_cycle_status = get_current_cycle_status(member)
|
||||
member =
|
||||
member
|
||||
|> Map.put(:last_cycle_status, last_cycle_status)
|
||||
|> Map.put(:current_cycle_status, current_cycle_status)
|
||||
|
||||
{:noreply,
|
||||
socket
|
||||
|
|
@ -312,6 +326,13 @@ defmodule MvWeb.MemberLive.Show do
|
|||
end
|
||||
end
|
||||
|
||||
defp get_current_cycle_status(member) do
|
||||
case MembershipFeeHelpers.get_current_cycle(member) do
|
||||
nil -> nil
|
||||
cycle -> cycle.status
|
||||
end
|
||||
end
|
||||
|
||||
defp format_address(member) do
|
||||
street_part =
|
||||
[member.street, member.house_number]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue