pasosdeJesus/sivel2_gen

View on GitHub
app/views/fil23_gen/graficar_apexcharts/victimizaciones_individuales.html.erb

Summary

Maintainability
Test Coverage
<h1> Graficar victimizaciones individuales </h1>
<%
  opciones_gen = {
   title: 'Victimizaciones',
   xtitle: 'Fecha',
   ytitle: 'Victimizaciones',
   stacked: true 
  }

  series_tot= [
    {name: "Victimizaciones",
     data: @valores_tot}
  ]

  opciones_tot = {
   title: @opciones_tot[:titulo],
   xtitle: @opciones_tot[:ejex],
   ytitle: @opciones_tot[:ejey],
   data_labels: false
  }
%>

<%= simple_form_for :filtro do |f| %>
<div class="card" >
  <div class="card-header">
    <h5> Filtros y Desagregación</h5>
  </div>
  <div class="card-body">
    <div class="row">
      <div class="offset-sm-0 col-3">
      <%
        if params.nil? || params[:filtro].nil? || 
          params[:filtro][:fechaini].nil?
          vfi = fecha_estandar_local(@vic_fechaini)
        else
          vfi = fecha_estandar_local(
            Msip::FormatoFechaHelper.fecha_local_estandar(
              params[:filtro][:fechaini]))
        end
      %>
        <%= f.input :fechaini,
          maxlength: 10, 
          size: 10,
          label: 'Fecha Inicial',
          input_html: {
            type: "date",
            value: vfi
          }
        %>
      </div>
      <%
        if params.nil? || params[:filtro].nil? || 
          params[:filtro][:fechafin].nil?
          vff = fecha_estandar_local(@vic_fechafin)
        else
          vff =  fecha_estandar_local(
            Msip::FormatoFechaHelper.fecha_local_estandar(
              params[:filtro][:fechafin]))
        end
      %>
      <div class="offset-sm-0 col-3">
        <%= f.input :fechafin,
          maxlength: 10, 
          size: 10,
          label: 'Fecha Final',
          input_html: {
            type: "date",
            value: vff
          } %>
      </div>
      <div class="offset-sm-0 col-3">
        <% 
          if params.nil? || params[:filtro].nil? || 
            params[:filtro][:desagregar].nil?
            ops= 'Sexo' 
          else
            ops= params[:filtro][:desagregar]
          end 
        %>
        <%= f.input :desagregar,
          collection: ['Sexo', 'Departamento', 'Categoria'], 
          label: 'Desagregar por:',
          selected: ops,
          input_html: {
            'data-enviarautomatico' => ''}
         %>
      </div>
      <div class="offset-sm-0 col-3">
        <% if params.nil? || params[:filtro].nil? || 
            params[:filtro][:desagregar].nil? || 
            params[:filtro][:desagregar]== 'Sexo' %>
          <% sex_sel = Msip::Persona::SEXO_OPCIONES.map{|k| k[1]} %>
          <% estdes = "display: none" %>
        <% else %>
          <% sex_sel = params[:filtro][:sexo] %>
          <% estdes = "display: block" %>
        <% end %>
        <%= f.input :sexo,
          collection: Msip::Persona::sexo_opciones, 
          label: 'Sexo:',
          selected: sex_sel,
          input_html: {
            class: 'tom-select',
            multiple: true,
            'data-enviarautomatico' => ''},
          wrapper_html: { "style" => estdes }
         %>
      </div>
    </div>
    <div class="row">
      <div class="offset-sm-0 col-12">
        <%
          if params.nil? || params[:filtro].nil? || 
            params[:filtro][:departamentos].nil?
            dep_sel = Msip::Departamento.habilitados.
              where(
                pais_id: Msip.paisomision).pluck(:id)
            estdep = "display: block"
          else
            dep_sel = params[:filtro][:departamentos]
            estdep = "display: none" if params[:filtro][:desagregar] == 'Departamento'
          end
        %>
        <%= f.input :departamentos,
          collection: Msip::Departamento.habilitados.where(
            pais_id: Msip.paisomision), 
          label_method: :nombre,
          value_method: :id, 
          selected: dep_sel,
          input_html: {
            class: 'tom-select',
            multiple: true,
            'data-enviarautomatico' => ''
          },
          wrapper_html: { 'style': estdep}
        %>
      </div>
    </div>
    <div class="row">
      <div class="offset-sm-0 col-12">
        <%
          if params.nil? || params[:filtro].nil? || 
            params[:filtro][:categorias].nil?
            cat_sel = @vic_categorias
            estcat = "display: block"
          else
            cat_sel = params[:filtro][:categorias]
            estcat = "display: none" if params[:filtro][:desagregar] == 'Categoria'
          end
        %>
        <%= f.input :categorias,
          collection: @categorias_gen.group_by{ |c| 
            c.supracategoria.tviolencia_id},
          group_label_method: lambda { |ca| 
            Sivel2Gen::Tviolencia.find(ca[0]).nombre},
          as: :grouped_select, 
          group_method: :last,
          selected: cat_sel,
          value_method: :id,
          label_method: lambda { |cat| 
            "#{Sivel2Gen::Supracategoria.find(cat.supracategoria_id.to_i).tviolencia_id}#{cat.id.to_s} #{cat.nombre}" }, 
          input_html: {
            class: 'tom-select',
            multiple: true,
            'data-enviarautomatico' => ''
          },
          wrapper_html: { 'style': estcat}
        %>
      </div>
    </div>
  </div>
  <div class="card-footer text-center">
    <%= f.submit 'Cargar/Actualizar',
      'data-turbo' => false %>
  </div>
</div>
<% end %>
<div class="row">
  <div class="col-12">
    <%= line_chart(series_gen, opciones_gen) %>  
  </div>
</div>
</br>
<div class="row">
  <div class="col-12">
    <%= column_chart(series_tot, opciones_tot) %>  
  </div>
</div>