77 lines
3.3 KiB
Ruby
77 lines
3.3 KiB
Ruby
class OrganisationsController < ApplicationController
|
||
before_action :set_organisation, only: [:show]
|
||
|
||
def index
|
||
organizations = Organization.all
|
||
|
||
@info_about_organisations = organizations.each_with_object({}) do |org, hash|
|
||
hash[org.id] = {
|
||
"ИНН" => org.inn,
|
||
"Полное наименование юридического лица" => org.full_name,
|
||
# "КПП" => org.kpp,
|
||
# "Код по ОКПО" => org.okpo,
|
||
# "Форма собственности (по ОКФС)" => org.okfs,
|
||
# "Организационно-правовая форма (по ОКОПФ)" => org.okopf,
|
||
# "Вид экономической деятельности по ОКВЭД 2" => org.okved2,
|
||
# "Местонахождение (адрес)" => org.address
|
||
}
|
||
end
|
||
end
|
||
|
||
def show
|
||
doc_types = {
|
||
0 => 'Бухгалтерский баланс',
|
||
1 => 'Отчёт о финансовых результатах',
|
||
2 => 'Отчёт об изменении капитала',
|
||
3 => 'Отчет о движении денежных средств'
|
||
}
|
||
|
||
@type_doc = params[:type_doc].present? ? params[:type_doc].to_i : 0
|
||
|
||
data = doc_types.each_with_object({}) do |(key, value), hash|
|
||
hash[value] = Hash.new()
|
||
end
|
||
|
||
doc_types.keys.each do |key|
|
||
financial_statements = @org.financial_statements.order(sheet_number: :desc).where(document_type_id: key + 1)
|
||
financial_statements.each do |financial_statement|
|
||
financial_statement.data['rows'].each_with_index do |row, index|
|
||
if index != 0
|
||
if data[doc_types[key]][[row['line_name'], row['line_code']]].nil?
|
||
data[doc_types[key]][[row['line_name'], row['line_code']]] = []
|
||
end
|
||
data[doc_types[key]][[row['line_name'], row['line_code']]] << row['value']
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
@info_about_organisation = {
|
||
"Сведения об организации" => {
|
||
"ИНН" => @org.inn,
|
||
"Полное наименование юридического лица" => @org.full_name,
|
||
"КПП" => @org.kpp,
|
||
"Код по ОКПО" => @org.okpo,
|
||
"Форма собственности (по ОКФС)" => @org.okfs,
|
||
"Организационно-правовая форма (по ОКОПФ)" => @org.okopf,
|
||
"Вид экономической деятельности по ОКВЭД 2" => @org.okved2,
|
||
"Местонахождение (адрес)" => @org.address
|
||
|
||
},
|
||
|
||
"Бухгалтерский баланс" => ["Наименование показателя", "Код", "На 31 декабря 2024 г.", "На 31 декабря 2023 г.", "На 31 декабря 2022 г.", "На 31 декабря 2021 г.", "На 31 декабря 2020 г.", "На 31 декабря 2019 г."],
|
||
"Отчёт о финансовых результатах" => ["Наименование показателя", "Код", "За 2024 г.", "За 2023 г.", "За 2022 г.", "За 2021 г.", "За 2020 г."]
|
||
}
|
||
|
||
@doc_name = doc_types[@type_doc]
|
||
@current_doc_info = @info_about_organisation[@doc_name]
|
||
@current_doc_info1 = data[@doc_name]
|
||
end
|
||
|
||
|
||
private
|
||
|
||
def set_organisation
|
||
@org = Organization.find(params[:id])
|
||
end
|
||
end |