Добавлено парсирование формы 14 и сохранение финансовых отчетов в базу данных; добавлена миграция для начальных данных типов документов
This commit is contained in:
@@ -11,8 +11,11 @@ class ReportParser
|
||||
|
||||
form_11_data = ReportParsers::Form11Parser.new(@yearly_file, spreadsheet: spreadsheet).call
|
||||
form_12_data = ReportParsers::Form12Parser.new(@yearly_file, spreadsheet: spreadsheet).call
|
||||
form_14_data = ReportParsers::Form14Parser.new(@yearly_file, spreadsheet: spreadsheet).call
|
||||
|
||||
merge_financial_statements(form_11_data, form_12_data)
|
||||
save_form_statements(form_11_data, 1) # 1 - Бух. баланс
|
||||
save_form_statements(form_12_data, 2) # 2 - Отчет о фин. результатах
|
||||
save_form_statements(form_14_data, 4) # 4 - Отчет о движении денежных средств
|
||||
end
|
||||
end
|
||||
|
||||
@@ -28,35 +31,21 @@ class ReportParser
|
||||
end
|
||||
end
|
||||
|
||||
def merge_financial_statements(form_11_data, form_12_data)
|
||||
document_type = DocumentType.find_or_create_by!(name: 'Финансовые данные')
|
||||
def save_form_statements(form_data, form_id)
|
||||
document_type = DocumentType.find_by(id: form_id)
|
||||
raise "DocumentType with id=#{form_id} not found!" unless document_type
|
||||
|
||||
all_years = (form_11_data.keys + form_12_data.keys).uniq
|
||||
form_data.each do |year, data|
|
||||
rows = data[:rows] || data['rows'] || []
|
||||
next if rows.blank?
|
||||
|
||||
all_years.each do |year|
|
||||
statement = find_or_build_statement(document_type, year)
|
||||
|
||||
all_rows = []
|
||||
|
||||
if form_11_data[year].present?
|
||||
form_11_rows = form_11_data[year][:rows] || form_11_data[year]['rows'] || []
|
||||
all_rows.concat(form_11_rows)
|
||||
end
|
||||
|
||||
if form_12_data[year].present?
|
||||
form_12_rows = form_12_data[year][:rows] || form_12_data[year]['rows'] || []
|
||||
all_rows.concat(form_12_rows)
|
||||
end
|
||||
|
||||
if all_rows.present?
|
||||
payload = {
|
||||
data_year: year,
|
||||
rows: all_rows
|
||||
}
|
||||
|
||||
statement.assign_attributes(data: payload)
|
||||
statement.save!
|
||||
end
|
||||
payload = {
|
||||
data_year: year,
|
||||
rows: rows
|
||||
}
|
||||
statement.assign_attributes(data: payload)
|
||||
statement.save!
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user