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) ) %>