Skip to content

Commit 0b58268

Browse files
JustShahfthobe
authored andcommitted
Update admin interface to support tax_reverse_charge_mode
Includes updates to the admin interface to allow users to select the `tax_reverse_charge_mode` when creating or editing tax categories. The permitted parameters in the `TaxCategoriesController` have been updated to include `tax_reverse_charge_mode`. The admin views and components have been updated to display the `tax_reverse_charge_mode` in the tax categories index and form views. This ensures that users can easily manage and view the reverse charge mode for each tax category.
1 parent 74acd8e commit 0b58268

File tree

6 files changed

+52
-4
lines changed

6 files changed

+52
-4
lines changed

admin/app/components/solidus_admin/tax_categories/edit/component.html.erb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@
55
<%= render component("ui/forms/field").text_field(f, :name) %>
66
<%= render component("ui/forms/field").text_field(f, :tax_code) %>
77
<%= render component("ui/forms/field").text_field(f, :description) %>
8+
<% if Spree::Backend::Config.show_reverse_charge_fields %>
9+
<%= render component("ui/forms/field").select(
10+
f,
11+
:tax_reverse_charge_mode,
12+
Spree::TaxCategory.tax_reverse_charge_modes.keys.map { |key| [I18n.t("spree.tax_reverse_charge_modes.#{key}"), key] }
13+
) %>
14+
<% end %>
815
<label class="flex gap-2 items-center">
916
<%= render component("ui/forms/checkbox").new(
1017
name: "#{f.object_name}[is_default]",

admin/app/components/solidus_admin/tax_categories/index/component.rb

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def batch_actions
4646
end
4747

4848
def columns
49-
[
49+
columns = [
5050
{
5151
header: :name,
5252
data: ->(tax_category) do
@@ -82,5 +82,18 @@ def columns
8282
},
8383
},
8484
]
85+
86+
if Spree::Backend::Config.show_reverse_charge_fields
87+
columns << {
88+
header: :tax_reverse_charge_mode,
89+
data: ->(tax_category) do
90+
link_to_if tax_category.tax_reverse_charge_mode, I18n.t("spree.tax_reverse_charge_modes.#{tax_category.tax_reverse_charge_mode}"), edit_path(tax_category),
91+
data: { turbo_frame: :resource_modal },
92+
class: 'body-link'
93+
end
94+
}
95+
end
96+
97+
columns
8598
end
8699
end

admin/app/components/solidus_admin/tax_categories/new/component.html.erb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@
55
<%= render component("ui/forms/field").text_field(f, :name) %>
66
<%= render component("ui/forms/field").text_field(f, :tax_code) %>
77
<%= render component("ui/forms/field").text_field(f, :description) %>
8+
<% if Spree::Backend::Config.show_reverse_charge_fields %>
9+
<%= render component("ui/forms/field").select(
10+
f,
11+
:tax_reverse_charge_mode,
12+
Spree::TaxCategory.tax_reverse_charge_modes.keys.map { |key| [I18n.t("spree.tax_reverse_charge_modes.#{key}"), key] }
13+
) %>
14+
<% end %>
815
<label class="flex gap-2 items-center">
916
<%= render component("ui/forms/checkbox").new(
1017
name: "#{f.object_name}[is_default]",

admin/app/controllers/solidus_admin/tax_categories_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class TaxCategoriesController < SolidusAdmin::ResourcesController
77
def resource_class = Spree::TaxCategory
88

99
def permitted_resource_params
10-
params.require(:tax_category).permit(:name, :description, :is_default, :tax_code)
10+
params.require(:tax_category).permit(:name, :description, :is_default, :tax_code, :tax_reverse_charge_mode)
1111
end
1212
end
1313
end

backend/app/views/spree/admin/tax_categories/_form.html.erb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,16 @@
2929
<%= f.text_area :description, class: 'fullwidth' %>
3030
<% end %>
3131
</div>
32+
33+
<% if Spree::Backend::Config.show_reverse_charge_fields %>
34+
<div class="col-4">
35+
<%= f.field_container :tax_reverse_charge_mode do %>
36+
<%= f.label :tax_reverse_charge_mode %>
37+
<%= f.select :tax_reverse_charge_mode,
38+
Spree::TaxCategory.tax_reverse_charge_modes.keys.map { |key| [I18n.t("spree.tax_reverse_charge_modes.#{key}"), key] },
39+
{ include_blank: false },
40+
{ class: 'custom-select fullwidth' } %>
41+
<% end %>
42+
</div>
43+
<% end %>
3244
</div>

backend/app/views/spree/admin/tax_categories/index.html.erb

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,20 @@
1919
<colgroup>
2020
<col style="width: 20%">
2121
<col style="width: 10%">
22+
<% if Spree::Backend::Config.show_reverse_charge_fields %>
23+
<col style="width: 10%">
24+
<% end %>
2225
<col style="width: 40%">
23-
<col style="width: 15%">
24-
<col style="width: 15%">
26+
<col style="width: 10%">
27+
<col style="width: 10%">
2528
</colgroup>
2629
<thead>
2730
<tr data-hook="tax_header">
2831
<th><%= Spree::TaxCategory.human_attribute_name(:name) %></th>
2932
<th><%= Spree::TaxCategory.human_attribute_name(:tax_code) %></th>
33+
<% if Spree::Backend::Config.show_reverse_charge_fields %>
34+
<th><%= Spree::TaxCategory.human_attribute_name(:tax_reverse_charge_mode) %></th>
35+
<% end %>
3036
<th><%= Spree::TaxCategory.human_attribute_name(:description) %></th>
3137
<th><%= Spree::TaxCategory.human_attribute_name(:is_default) %></th>
3238
<th class="actions"></th>
@@ -41,6 +47,9 @@
4147
<tr id="<%= spree_dom_id tax_category %>" data-hook="tax_row">
4248
<td><%= tax_category.name %></td>
4349
<td><%= tax_category.tax_code %></td>
50+
<% if Spree::Backend::Config.show_reverse_charge_fields %>
51+
<td><%= I18n.t("spree.tax_reverse_charge_modes.#{tax_category.tax_reverse_charge_mode}") %></td>
52+
<% end %>
4453
<td><%= tax_category.description %></td>
4554
<td><%= tax_category.is_default? ? t('spree.say_yes') : t('spree.say_no') %></td>
4655
<td class="actions">

0 commit comments

Comments
 (0)