Conacreis
<% require 'set' %>
<% included_people = Set.new %>
<% errori = false %>
<% Membership.where(organization_id: OrganizationsHelper::AssociazioneConacreis_id).destroy_all %>
Cancellati tutti i soci Conacreis.
<% if Membership.where(organization_id: OrganizationsHelper::AssociazioneConacreis_id).any? %>
C'è un problema: non si cancellato i soci Conacreis!
<% end %>
<% totale_quanti = 0 %>
<% orgs = Organization.filtered_by_active.filtered_by_not_internal %>
Elaborazione di <%= orgs.size %> associazioni attive, non interne.
<% orgs.each do |org| %>
<% if org.id == OrganizationsHelper::AssociazioneConacreis_id %>
<% next %>
<% end %>
<% if !org.tesseraconacreis_start.is_valid_id? || !org.tesseraconacreis_end.is_valid_id? %>
Ignorata l'associazione <%= link_to("#{org.descrizione} (#{org.codice})", organization_path(org)) %> perché non ha tessere Conacreis.
<% next %>
<% end %>
<% tessere_ranges = [ { start: org.tesseraconacreis_start, end: org.tesseraconacreis_end} ] %>
<% if org.tesseraconacreis_start2.is_valid_id? && org.tesseraconacreis_end2.is_valid_id? %>
<% tessere_ranges << { start: org.tesseraconacreis_start2, end: org.tesseraconacreis_end2} %>
<% end %>
<% tessere_ranges.each do |tessere_range| %>
<% tessera_start = tessere_range[:start] %>
<% tessera_end = tessere_range[:end] %>
<% if Membership.where(organization_id: OrganizationsHelper::AssociazioneConacreis_id).where(tessera:tessera_start).any? %>
Ignorata l'associazione <%= link_to("#{org.descrizione} (#{org.codice})", organization_path(org)) %> perché la tessera <%=tessera_start %> è specificata da un'altra associazione!.
<% next %>
<% end %>
<% if Membership.where(organization_id: OrganizationsHelper::AssociazioneConacreis_id).where(tessera:tessera_end).any? %>
Ignorata l'associazione <%= link_to("#{org.descrizione} (#{org.codice})", organization_path(org)) %> perché la tessera <%=tessera_end %> è specificata da un'altra associazione!.
<% next %>
<% end %>
<% quanti =tessera_end -tessera_start %>
<% if quanti <= 0 %>
Valori errati di tessera Conacreis per <%= link_to("#{org.descrizione} (#{org.codice})", organization_path(org)) %>, perché sono indicati dalla tessera <%=tessera_start %> alla tessera <%=tessera_end %>!.
<% next %>
<% end %>
<% soci = Membership.all.where(organization_id: org.id).still_active_at(Date.today).order(tessera: :asc) %>
<% tessera_conacreis =tessera_start %>
<% conta_per_questa_associazione = 0 %>
<% soci.each do |socio| %>
<% begin %>
<% if !included_people.include?(socio.person_id) %>
<% socio_conacreis = Membership.new %>
<% socio_conacreis.person_id = socio.person_id %>
<% socio_conacreis.organization_id = OrganizationsHelper::AssociazioneConacreis_id %>
<% socio_conacreis.data_iscrizione = DateTime.new(Date.today.year,1,1) %>
<% socio_conacreis.data_deliberaiscrizione = DateTime.new(Date.today.year,1,1) %>
<% if socio.membership_type_id == MembershipTypesHelper::RuoloMembroJunior_id %>
<% socio_conacreis.membership_type_id = MembershipTypesHelper::RuoloMembroJunior_id %>
<% else %>
<% socio_conacreis.membership_type_id = MembershipTypesHelper::RuoloMembro_id %>
<% end %>
<% socio_conacreis.tessera = tessera_conacreis %>
<% socio_conacreis.conacreis_org_id = org.id %>
<% socio_conacreis.save! %>
<% included_people.add(socio.person_id) %>
<% tessera_conacreis += 1 %>
<% conta_per_questa_associazione += 1 %>
<% if conta_per_questa_associazione > quanti %>
<% break %>
<% end %>
<% end %>
<% rescue StandardError => e %>
<% errori = true %>
<%= icon('exclamation-triangle', size: '2x') %> Errore durante la creazione dei soci Conacreis dall'associazione: <%= "#{org.descrizione} (#{org.codice})" %>, persona: <%= socio.person.full_person_name %>, tessera: <%= tessera_conacreis %>! <%= e %>
<% end %>
<% end %>
Creati <%= quanti %> soci da <%= link_to("#{org.descrizione} (#{org.codice})", organization_path(org)) %>, dalla tessera <%= tessera_start %> alla tessera <%= tessera_end %>.
<% totale_quanti += quanti %>
<% end %>
<% end %>
<% if errori %>
<%= icon('exclamation-triangle', size: '2x') %> Attività non completata a causa di errori, verifica le cause per poterle risolvere.
<% else %>
<%= icon('check', size: '2x') %> Attività completata con successo, <%= totale_quanti %> soci Conacreis creati.
<% end %>
<%= iconbutton_to(memberships_path, icon('eye'), 'btn-default', 'Visualizza soci Conacreis', @filter_params.merge(filterorganization_id: OrganizationsHelper::AssociazioneConacreis_id) ) %>