diff --git a/admin_view/nuxt-project/components/Menu.vue b/admin_view/nuxt-project/components/Menu.vue
index 80bf09427..e53094717 100644
--- a/admin_view/nuxt-project/components/Menu.vue
+++ b/admin_view/nuxt-project/components/Menu.vue
@@ -169,6 +169,11 @@ export default {
title: "調理工程申請",
icon: "restaurant",
click: "/cooking_process_order",
+ },
+ {
+ title: "火気使用申請",
+ icon: "local_fire_department",
+ click: "/fire_equipment_orders",
}
],
// 操作系
diff --git a/admin_view/nuxt-project/pages/fire_equipment_orders/_id.vue b/admin_view/nuxt-project/pages/fire_equipment_orders/_id.vue
new file mode 100644
index 000000000..972dc5133
--- /dev/null
+++ b/admin_view/nuxt-project/pages/fire_equipment_orders/_id.vue
@@ -0,0 +1,214 @@
+
+
+
+
+ 編集
+
+
+ 削除
+
+
+
+
+
+ 基本情報
+
+
+
+ | ID |
+ {{ fireEquipmentOrder.id }} |
+
+
+ | 団体 |
+ {{ fireEquipmentOrder.group.name }} |
+
+
+ | 火気の名称 |
+ {{ fireEquipmentOrder.name }} |
+
+
+ | 火気の台数 |
+ {{ fireEquipmentOrder.quantity }} |
+
+
+ | 燃料 |
+ {{ fireEquipmentOrder.fuel_japanese }} |
+
+
+ | 使用用途 |
+ {{ fireEquipmentOrder.usage }} |
+
+
+ | 持ち帰り |
+ {{ fireEquipmentOrder.is_takeaway ? 'はい' : 'いいえ' }} |
+
+
+ | 備考 |
+ {{ fireEquipmentOrder.remark }} |
+
+
+ | 登録日時 |
+ {{ fireEquipmentOrder.created_at | formatDate }} |
+
+
+ | 編集日時 |
+ {{ fireEquipmentOrder.updated_at | formatDate }} |
+
+
+
+
+
+
+
+
+
火気の名称
+
+
+
+
火気の台数
+
+
+
+
燃料
+
+
+
+
使用用途
+
+
+
+
持ち帰り
+
+
+
+
備考
+
+
+
+
+ 登録
+
+
+
+
+
+ はい
+ いいえ
+
+
+
+
+ {{ message }}
+
+
+
+
+
diff --git a/admin_view/nuxt-project/pages/fire_equipment_orders/index.vue b/admin_view/nuxt-project/pages/fire_equipment_orders/index.vue
new file mode 100644
index 000000000..9db343b96
--- /dev/null
+++ b/admin_view/nuxt-project/pages/fire_equipment_orders/index.vue
@@ -0,0 +1,265 @@
+
+
+
+
+ 追加
+
+
+ CSV
+
+
+
+
+
+
+ {{ refYears }}
+
+
+
+
+
+
+
+ | {{ header }} |
+
+
+
+ $router.push({
+ path: `/fire_equipment_orders/` + order.id,
+ })
+ "
+ :key="order.id"
+ >
+ | {{ order.id }} |
+ {{ order.group.name }} |
+ {{ order.name }} |
+ {{ order.quantity }} |
+ {{ order.fuel_japanese }} |
+ {{ order.usage }} |
+ {{ order.is_takeaway ? "はい" : "いいえ" }} |
+ {{ order.remark }} |
+
+
+
+
+
+
+
+
+
団体名
+
+
+
+
火気の名称
+
+
+
+
火気の台数
+
+
+
+
燃料
+
+
+
+
使用用途
+
+
+
+
持ち帰り
+
+
+
+
備考
+
+
+
+
+ 登録
+
+
+
+
+ {{ message }}
+
+
+
+
+
diff --git a/admin_view/nuxt-project/pages/order_status_check/index.vue b/admin_view/nuxt-project/pages/order_status_check/index.vue
index 1203da967..1dcd76b10 100644
--- a/admin_view/nuxt-project/pages/order_status_check/index.vue
+++ b/admin_view/nuxt-project/pages/order_status_check/index.vue
@@ -92,6 +92,11 @@
ー
✖️
+
+ ◯
+ ー
+ ✖️
+ |
◯
ー
@@ -116,9 +121,9 @@
ー
✖️
|
-
- ◯
- ー
+ |
+ ◯
+ ー
✖️
|
@@ -151,6 +156,7 @@ export default {
"アナウンス",
"模擬店平面図",
"調理工程",
+ "火気使用申請",
],
groups: [],
unregisteredGroups: [],
@@ -371,10 +377,11 @@ export default {
},
// 申請しないデータかどうかを判定するメソッド
isUnregistered(groupId, orderType) {
- return this.unregisteredGroups.some(item =>
+ return this.unregisteredGroups.some(item =>
item.group_id === groupId && item.order_type === orderType
);
},
+
},
};
diff --git a/api/app/controllers/api/v1/groups_api_controller.rb b/api/app/controllers/api/v1/groups_api_controller.rb
index bb0008ea9..4d73e3bc0 100644
--- a/api/app/controllers/api/v1/groups_api_controller.rb
+++ b/api/app/controllers/api/v1/groups_api_controller.rb
@@ -98,4 +98,14 @@ def get_search_groups
end
end
+ def get_groups_for_fire_equipment_order
+ fes_year_id = params[:fes_year_id]
+ if fes_year_id.present? && fes_year_id.to_i != 0
+ @groups = Group.where(fes_year_id: fes_year_id).order(:id)
+ else
+ @groups = Group.all.order(:id)
+ end
+ render json: { data: @groups }
+ end
+
end
diff --git a/api/app/controllers/api/v1/order_status_check_api_controller.rb b/api/app/controllers/api/v1/order_status_check_api_controller.rb
index 88e2c7f21..d3d5ef1b7 100644
--- a/api/app/controllers/api/v1/order_status_check_api_controller.rb
+++ b/api/app/controllers/api/v1/order_status_check_api_controller.rb
@@ -26,7 +26,8 @@ def fit_group_index_for_admin_view(groups)
"public_relation": group.public_relation.nil? ? nil : group.public_relation.id,
"venue_map": group.venue_map.nil? ? nil : group.venue_map.id,
"announcement": group.announcement.nil? ? nil : group.announcement.status,
- "cooking_process_order": group.cooking_process_order.nil? ? nil : group.cooking_process_order.id
+ "cooking_process_order": group.cooking_process_order.nil? ? nil : group.cooking_process_order.id,
+ "fire_equipment_order": group.fire_equipment_orders.count == 0 ? nil : group.fire_equipment_orders[0].status
}
}
end
diff --git a/api/app/controllers/api/v1/output_csv_controller.rb b/api/app/controllers/api/v1/output_csv_controller.rb
index 25104cb50..493ce5ad4 100644
--- a/api/app/controllers/api/v1/output_csv_controller.rb
+++ b/api/app/controllers/api/v1/output_csv_controller.rb
@@ -413,13 +413,13 @@ def output_users_csv
@groups = Group.where(fes_year_id: params[:fes_year_id]).preload(:user, :sub_rep, user: :user_detail) # 必要な関連を事前にロード
filename_year = FesYear.find(params[:fes_year_id]).year_num
end
-
+
@categories = []
for i in 1..6 do
group = @groups.where(group_category_id: i)
@categories << group
end
-
+
bom = "\uFEFF"
csv_data = CSV.generate(bom) do |csv|
column_name = %w(参加団体形式 団体番号 団体名 氏名 電話番号 メールアドレス 備考欄)
@@ -452,10 +452,10 @@ def output_users_csv
end
end
end
-
+
send_data(csv_data, filename: "連絡先リスト_#{filename_year}年度.csv")
end
-
+
def output_announcements_csv
@announcements = Announcement.all
@@ -506,16 +506,15 @@ def output_public_relations_csv
csv_data = CSV.generate(bom) do |csv|
column_name = %w(参加団体名 PR文 URL アナウンス有無)
csv << column_name
- @public_relations.each do |public_relations|
- # データが存在しない場合はスキップする
- if public_relations.nil?
+ @public_relations.each do |public_relation|
+ if public_relation.nil?
next
end
column_values = [
- public_relations.group.name,
- public_relations.blurb,
- public_relations.picture_path,
- public_relations.is_announcement_requested ? "有" : "無",
+ public_relation.group.name,
+ public_relation.blurb,
+ public_relation.picture_path,
+ public_relation.is_announcement_requested ? "有" : "無",
]
csv << column_values
end
@@ -523,4 +522,35 @@ def output_public_relations_csv
send_data(csv_data, filename:"参加団体PR申請_#{filename_year}年度.csv")
end
+ def output_fire_equipment_orders_csv
+ if params[:fes_year_id].to_i == 0
+ @fire_equipment_orders = FireEquipmentOrder.all
+ filename_year = "全"
+ else
+ fes_year = FesYear.find(params[:fes_year_id])
+ @fire_equipment_orders = FireEquipmentOrder.joins(:group).where(groups: { fes_year_id: fes_year.id })
+ filename_year = fes_year.year_num
+ end
+ bom = "\uFEFF"
+ csv_data = CSV.generate(bom) do |csv|
+ column_name = %w(ID 団体名 火気の名称 火気の台数 燃料 使用用途 備考)
+ csv << column_name
+ @fire_equipment_orders.each do |order|
+ next if order.nil?
+ group_name = order.group&.name || ""
+ column_values = [
+ order.id,
+ group_name,
+ order.name,
+ order.quantity,
+ order.fuel_japanese,
+ order.usage,
+ order.remark,
+ ]
+ csv << column_values
+ end
+ end
+ send_data(csv_data, filename: "火気使用申請_#{filename_year}年度.csv")
+ end
+
end
diff --git a/api/app/controllers/fire_equipment_orders_controller.rb b/api/app/controllers/fire_equipment_orders_controller.rb
index 29edd5394..28d51fcce 100644
--- a/api/app/controllers/fire_equipment_orders_controller.rb
+++ b/api/app/controllers/fire_equipment_orders_controller.rb
@@ -4,13 +4,26 @@ class FireEquipmentOrdersController < ApplicationController
# GET /fire_equipment_orders
def index
- @fire_equipment_orders = FireEquipmentOrder.all
- render json: fmt(ok, @fire_equipment_orders)
+ fes_year_id = params[:fes_year_id]
+ if fes_year_id.present? && fes_year_id.to_i != 0
+ @fire_equipment_orders = FireEquipmentOrder.joins(:group).where(groups: { fes_year_id: fes_year_id })
+ else
+ @fire_equipment_orders = FireEquipmentOrder.includes(:group).all
+ end
+ orders_with_fuel_japanese = @fire_equipment_orders.map do |order|
+ order.as_json(include: { group: { only: [:id, :name] } }).merge(
+ fuel_japanese: order.fuel_japanese
+ )
+ end
+ render json: fmt(ok, orders_with_fuel_japanese)
end
# GET /fire_equipment_orders/:id
def show
- render json: fmt(ok, @fire_equipment_order)
+ order_with_fuel_japanese = @fire_equipment_order.as_json(include: { group: { only: [:id, :name] } }).merge(
+ fuel_japanese: @fire_equipment_order.fuel_japanese
+ )
+ render json: fmt(ok, order_with_fuel_japanese)
end
# POST /fire_equipment_orders
diff --git a/api/app/models/fire_equipment_order.rb b/api/app/models/fire_equipment_order.rb
index a4e0b9d8e..9a5d6f9e0 100644
--- a/api/app/models/fire_equipment_order.rb
+++ b/api/app/models/fire_equipment_order.rb
@@ -1,4 +1,19 @@
class FireEquipmentOrder < ApplicationRecord
+ belongs_to :group
# enum gas_bottle: ガスボンベ、lp_gas: LPガス、charcoal: 炭
enum fuel: { gas_bottle: 1, lp_gas: 2, charcoal: 3 }
+
+ FUEL_TRANSLATIONS = {
+ 'gas_bottle' => 'ガスボンベ',
+ 'lp_gas' => 'LPガス',
+ 'charcoal' => '炭'
+ }.freeze
+
+ def fuel_japanese
+ FUEL_TRANSLATIONS[self.fuel] || self.fuel.to_s
+ end
+
+ def self.fuel_options_for_select
+ FUEL_TRANSLATIONS.map { |key, value| [value, key] }
+ end
end
diff --git a/api/config/routes.rb b/api/config/routes.rb
index b5ee93e9e..d425ec983 100644
--- a/api/config/routes.rb
+++ b/api/config/routes.rb
@@ -244,6 +244,9 @@
get "get_cooking_process_order_by_food_product_id/:food_product_id" => "cooking_process_orders_api#get_cooking_process_order_by_food_product_id"
get "get_groups_have_no_cooking_process_order" => "groups_api#get_groups_have_no_cooking_process_order"
+ #---火気使用申請
+ get "get_groups_for_fire_equipment_order" => "groups_api#get_groups_for_fire_equipment_order"
+
#---実行委員担当者申請ページ
get "get_contact_person_index_for_admin_view" => "contact_persons_api#get_contact_person_index_for_admin_view"
get "get_contact_person_show_for_admin_view/:id" => "contact_persons_api#get_contact_person_show_for_admin_view"
@@ -288,6 +291,12 @@
get "get_announcements_csv" => "output_csv#output_announcements_csv"
get "get_cooking_process_orders_csv" => "output_csv#output_cooking_process_orders_csv"
get "get_public_relations_csv/:fes_year_id" => "output_csv#output_public_relations_csv"
+ get "get_fire_equipment_orders_csv/:fes_year_id" => "output_csv#output_fire_equipment_orders_csv"
+
+ #---pdf出力
+ get "output_pdf/rental_items" => "print_pdf#rental_items_pdf"
+ get "output_pdf/power_orders" => "print_pdf#power_orders_pdf"
+ get "get_project_check_list_pdf/:group_id" => "output_pdf#output_project_check_list_pdf"
# ダッシュボード
get "dashboard" => "dashboard_api#get_dashboard_info"
@@ -342,4 +351,4 @@
end
end
-end
\ No newline at end of file
+end