Manualy sort type_de_champ by order_place

This commit is contained in:
JC 2016-11-14 14:39:59 +01:00
parent e49e0b02ef
commit 5c3049d6bd
5 changed files with 21 additions and 27 deletions

View file

@ -297,8 +297,13 @@ class Dossier < ActiveRecord::Base
def convert_specific_values_to_string(hash_to_convert)
hash = {}
hash_to_convert.each do |key, value|
value = value.to_s if !value.kind_of?(Time) && !value.nil?
hash.store(key, value)
if value.nil?
value = ""
hash.store(key, value)
else
value = value.to_s if !value.kind_of?(Time)
hash.store(key, value)
end
end
return hash
end
@ -325,34 +330,27 @@ class Dossier < ActiveRecord::Base
self.export_default_columns.to_a
end
def export_headers
serialized_dossier = DossierProcedureSerializer.new(self).as_json[:dossier_procedure]
champs = {}
serialized_dossier[:champs].each do |champ_hash|
champs[champ_hash[:type_de_champ]["libelle"].parameterize.underscore.to_sym] = champ_hash[:value]
end
dossier_data = serialized_dossier.except(:champs).merge(champs)
dossier_data = self.convert_specific_values_to_string(dossier_data)
return (dossier_data.keys << self.export_entreprise_data.keys).flatten
end
def data_with_champs
data = []
serialized_dossier = DossierProcedureSerializer.new(self).as_json[:dossier_procedure]
champs = {}
serialized_dossier[:champs].each do |champ_hash|
champs[champ_hash[:type_de_champ]["libelle"].parameterize.underscore.to_sym] = champ_hash[:value]
end
binding.pry
dossier_data = serialized_dossier.except(:champs).merge(champs)
dossier_data = self.convert_specific_values_to_string(dossier_data)
return (dossier_data.values << self.export_entreprise_data.values).flatten
return dossier_data.merge(self.export_entreprise_data)
end
def self.export_full_generation(dossiers, format)
data = []
headers = []
dossiers.each do |dossier|
headers = dossier.export_headers if headers.empty?
data << dossier.data_with_champs
if dossier.id == 948 || dossier.id == 955
data << dossier.data_with_champs.values
headers = dossier.data_with_champs.keys if headers.empty?
end
end
if ["csv"].include?(format)
return SpreadsheetArchitect.to_csv(data: data, headers: headers)

View file

@ -43,4 +43,4 @@ class TypeDeChamp < ActiveRecord::Base
self.mandatory = false if self.type_champ == 'header_section'
true
end
end
end

View file

@ -7,4 +7,9 @@ class DossierProcedureSerializer < ActiveModel::Serializer
:state
has_many :champs
def champs
object.champs.order("type_de_champ_id")
end
end

View file

@ -183,4 +183,4 @@ class DossiersListGestionnaireService
def current_preference_smart_listing_page
@current_devise_profil.preference_smart_listing_page
end
end
end

View file

@ -754,15 +754,6 @@ describe Dossier do
end
end
describe '#export_headers' do
let(:procedure) { create(:procedure) }
let(:dossier) { create(:dossier, :with_entreprise, user: user, procedure: procedure) }
subject { dossier.export_headers }
it do
end
end
describe '#data_with_champs' do
end