yesamarcos

Preciso adicionar o carregamento de unidades

Dec 11th, 2017
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function(){
  2.  
  3.     'use strict';
  4.  
  5.     var empresas_id         = "#ajax_empresa";
  6.     var local_id            = "#ajax_local";
  7.     var servicos_id         = "#ajax_servico";
  8.     var pesquisadores_id    = "#ajax_persquisador";
  9.     var pesquisa_id         = "#ajax_pesquisa";
  10.     var unidades_id         = "#ajax_unidade";
  11.     var clean_button_id     = "#removeselecaodoform";
  12.     var send_button_id      = "#submit_form";
  13.  
  14.     var empresas_data;
  15.     var local_data;
  16.     var servicos_data;
  17.     var pesquisadores_data;
  18.     var pesquisa_data;
  19.     var unidades_data;
  20.  
  21.     make_all_mult_select();
  22.  
  23.     $.when(unidades_set(), empresa_set(), local_set(), pesquisadores_set(), servicos_set(), pesquisa_set()).done(function(){
  24.         add_options(empresas_id, empresas_data);
  25.         select_if_can();
  26.  
  27.         $('#ajax_empresa').multiselect({
  28.             includeSelectAllOption: true,
  29.             nSelectedText: 'selecionados ..',
  30.             nonSelectedText:'Nenhum selecionado ..',
  31.             allSelectedText: 'Todos selecionados ..',
  32.             selectAllText: 'Selecionar todos ..',
  33.             numberDisplayed: 1,
  34.             onDropdownHide: function(option, checked){
  35.                 select_if_can(false);
  36.             }
  37.         });
  38.     });
  39.  
  40.     function empresa_set(){
  41.         return $.ajax({
  42.             url: 'http://pesquisa.wshare.com.br/filtro/test/get.php',
  43.             type: 'POST',
  44.             dataType: 'JSON',
  45.             data: {qual: "getempresas"},
  46.             success: function(resposta){
  47.                 empresas_data = resposta;
  48.             }
  49.         });
  50.     }
  51.  
  52.     function unidades_set(){
  53.         return $.ajax({
  54.             url: 'http://pesquisa.wshare.com.br/filtro/test/get.php',
  55.             type: 'POST',
  56.             dataType: 'JSON',
  57.             data: {qual: "getunidades"},
  58.             success: function(resposta){
  59.                 unidades_data = resposta;
  60.             }
  61.         });
  62.     }
  63.  
  64.     function pesquisa_set(){
  65.         return $.ajax({
  66.             url: 'http://pesquisa.wshare.com.br/filtro/test/get.php',
  67.             type: 'POST', dataType: 'json',
  68.             data: {qual: "getpesquisas"},
  69.             success: function(retorno){
  70.                 pesquisa_data = retorno;
  71.             }
  72.         });
  73.     }
  74.  
  75.     function local_set(){
  76.         return $.ajax({
  77.             url: 'http://pesquisa.wshare.com.br/filtro/test/get.php',
  78.             type: 'POST', dataType: 'json',
  79.             data: {qual: "requestlocals"},
  80.             success: function(retorno){
  81.                 local_data = retorno;
  82.             }
  83.         });
  84.     }
  85.  
  86.     function pesquisadores_set(){
  87.         return $.ajax({
  88.             url: 'http://pesquisa.wshare.com.br/filtro/test/get.php',
  89.             type: 'POST', dataType: 'json',
  90.             data: {qual: "getpesquisadores"},
  91.             success: function(retorno){
  92.                 pesquisadores_data = retorno;
  93.             }
  94.         });
  95.     }
  96.  
  97.     function servicos_set(){
  98.         return $.ajax({
  99.             url: 'http://pesquisa.wshare.com.br/filtro/test/get.php',
  100.             type: 'POST', dataType: 'json',
  101.             data: {qual: "requestservicos"},
  102.             success: function(retorno){
  103.                 servicos_data = retorno;
  104.             }
  105.         });
  106.     }
  107.  
  108.     $(send_button_id).click(function(event) {
  109.         save_selecteds();
  110.     });
  111.  
  112.     $(clean_button_id).click(function(event) {
  113.         event.preventDefault();
  114.         clean_campos();
  115.     });
  116.  
  117.     function select_if_can(mudar_empresas = true){
  118.         var empresas_selecionas = get_selects(empresas_id);
  119.         var Local_selecionas = null;
  120.         var Servicos_selecionas = null;
  121.         var Pesquisador_selecionas = null;
  122.         var Pesquisas_selecionas = null;
  123.         var Unidades_selecionas = null;
  124.  
  125.         if( window.localStorage.getItem("Saved_selects") !== null ){
  126.             var data = window.localStorage.getItem("Saved_selects");
  127.                 data = $.parseJSON(data);
  128.            
  129.             empresas_selecionas = data.Empresas_field;
  130.             Local_selecionas = data.Local_field;
  131.             Servicos_selecionas = data.Servicos_field;
  132.             Pesquisador_selecionas = data.Pesquisador_field;
  133.             Pesquisas_selecionas = data.Pesquisas_field;
  134.             Unidades_selecionas = data.Unidades_field;
  135.         }
  136.  
  137.         if( mudar_empresas == true ){
  138.             $(empresas_id).html("");
  139.             add_options(empresas_id, empresas_data, empresas_selecionas);
  140.         }
  141.        
  142.         preenche_campos(Local_selecionas, Servicos_selecionas, Pesquisador_selecionas, Pesquisas_selecionas, Unidades_selecionas);
  143.     }
  144.  
  145.     function clean_campos(){
  146.         window.localStorage.removeItem("Saved_selects");
  147.  
  148.         $(empresas_id).multiselect('destroy');
  149.         $(local_id).multiselect('destroy');
  150.         $(servicos_id).multiselect('destroy');
  151.         $(pesquisadores_id).multiselect('destroy');
  152.         $(pesquisa_id).multiselect('destroy');
  153.         $(unidades_id).multiselect('destroy');
  154.         $(empresas_id).html("");
  155.         $(local_id).html("");
  156.         $(servicos_id).html("");
  157.         $(pesquisadores_id).html("");
  158.         $(pesquisa_id).html("");
  159.         $(unidades_id).html("");
  160.  
  161.         add_options(empresas_id, empresas_data);
  162.  
  163.         make_all_mult_select();
  164.         $('#ajax_empresa').multiselect({
  165.             includeSelectAllOption: true,
  166.             nSelectedText: 'selecionados ..',
  167.             nonSelectedText:'Nenhum selecionado ..',
  168.             allSelectedText: 'Todos selecionados ..',
  169.             selectAllText: 'Selecionar todos ..',
  170.             numberDisplayed: 1,
  171.             onDropdownHide: function(option, checked){
  172.                 select_if_can(false);
  173.             }
  174.         });
  175.     }
  176.  
  177.     function save_selecteds(){
  178.         var data = {
  179.             "Empresas_field": get_selects(empresas_id),
  180.             "Local_field": get_selects(local_id),
  181.             "Servicos_field": get_selects(servicos_id),
  182.             "Pesquisador_field": get_selects(pesquisadores_id),
  183.             "Pesquisas_field": get_selects(pesquisa_id),
  184.             "Unidades_field": get_selects(unidades_id)
  185.         }
  186.  
  187.         window.localStorage.setItem("Saved_selects", JSON.stringify(data));
  188.     }
  189.  
  190.     function preenche_campos(local_options = null, servicos_options = null, pesquisadores_options = null, pesquisas_options = null, unidades_options = null){
  191.         var empresas = get_selects(empresas_id);
  192.         if( jQuery.isEmptyObject(empresas) ){
  193.             empresas = [];
  194.             $(empresas_id+" option").each(function(){
  195.                 var item = $(this).val();
  196.                 empresas.push(item);
  197.             });
  198.         }
  199.  
  200.         var data_append_servicos        = servicos_data;
  201.         var data_append_local           = get_data(empresas, local_id, local_data);
  202.         var data_append_pesquisadores   = get_data(empresas, pesquisadores_id, pesquisadores_data);
  203.         var data_append_pesquisas       = pesquisa_data;
  204.         var data_append_unidades        = unidades_id;
  205.  
  206.         add_options_multiselect(local_id, data_append_local, local_options);
  207.         add_options_multiselect(servicos_id, data_append_servicos, servicos_options);
  208.         add_options_multiselect(pesquisadores_id, data_append_pesquisadores, pesquisadores_options);
  209.         add_options_multiselect(pesquisa_id, data_append_pesquisas, pesquisas_options);
  210.         add_options_multiselect(unidades_id, data_append_unidades, unidades_options);
  211.     }
  212.  
  213.     function get_data(data, variavel, data_to_consult){
  214.         var return_data = [];
  215.  
  216.         for (var i = 0; i < data.length; i++) {
  217.             var id_empresa = data[i];
  218.             for (var e = 0; e < data_to_consult.length; e++) {
  219.                 var item = data_to_consult[e];
  220.                 var id = item.PESQUISADOR_EMP_ID;
  221.                 if( variavel == local_id ){
  222.                     id = item.LOCAL_EMP_ID;
  223.                 }
  224.                 if( id == id_empresa ){
  225.                     return_data.push(item);
  226.                 }
  227.             }
  228.         }
  229.  
  230.         return return_data;
  231.     }
  232.  
  233.     function add_options_multiselect(id, options, selectec_ones = null){
  234.         $(id).multiselect('destroy');
  235.         $(id).html("");
  236.  
  237.         for (var i = 0; i < options.length; i++) {
  238.             var option = document.createElement("option");
  239.  
  240.             var text = get_text(id, options[i]);
  241.             var value = get_value(id, options[i]);
  242.  
  243.             option.text  = text;
  244.             option.value = value;
  245.             if( selectec_ones != null ){
  246.                 for (var e = 0; e < selectec_ones.length; e++) {
  247.                     var select = selectec_ones[e];
  248.                     if( value == select ){
  249.                         option.setAttribute('selected', 'selected');
  250.                     }
  251.                 }
  252.             }
  253.             $(id).append(option);
  254.         }
  255.  
  256.         $(id).multiselect({
  257.             includeSelectAllOption: true,
  258.             nSelectedText: 'selecionados ..',
  259.             nonSelectedText:'Nenhum selecionado ..',
  260.             allSelectedText: 'Todos selecionados ..',
  261.             selectAllText: 'Selecionar todos ..',
  262.             numberDisplayed: 1,  
  263.         });
  264.     }
  265.  
  266.     function add_options(id, options, selectec_ones = null){
  267.         for (var i = 0; i < options.length; i++) {
  268.             var option = document.createElement("option");
  269.            
  270.             var text = get_text(id, options[i]);
  271.             var value = get_value(id, options[i]);
  272.  
  273.             option.text  = text;
  274.             option.value = value;
  275.            
  276.             if( selectec_ones !== null ){
  277.                 for (var e = 0; e < selectec_ones.length; e++) {
  278.                     var select = selectec_ones[e];
  279.                     if( value == select ){
  280.                         option.setAttribute('selected', 'selected');
  281.                     }
  282.                 }
  283.             }
  284.  
  285.             $(id).append(option);
  286.         }
  287.     }
  288.  
  289.     function get_text(id, data){
  290.         if( id == empresas_id ){
  291.             return data.EMP_NOME;
  292.         }
  293.         if( id == local_id ){
  294.             return data.LOCAL_DESCRICAO;
  295.         }
  296.         if( id == servicos_id ){
  297.             return data.SERV_DESC;
  298.         }
  299.         if( id == pesquisadores_id ){
  300.             return data.PESQUISADOR_NOME;
  301.         }
  302.         if( id == pesquisa_id ){
  303.             return data.PESQ_TIT;
  304.         }
  305.         if( id == unidades_id ){
  306.             return data.UO_ID;
  307.         }
  308.     }
  309.  
  310.     function get_value(id, data){
  311.         if( id == empresas_id ){
  312.             return data.ID;
  313.         }
  314.         if( id == local_id ){
  315.             return data.LOCAL_ID;
  316.         }
  317.         if( id == servicos_id ){
  318.             return data.SERV_ID;
  319.         }
  320.         if( id == pesquisadores_id ){
  321.             return data.PESQUISADOR_ID;
  322.         }
  323.         if( id == pesquisa_id ){
  324.             return data.ID;
  325.         }
  326.         if( id == unidades_id ){
  327.             return data.UO_NOME;
  328.         }
  329.     }
  330.  
  331.     function make_all_mult_select(){
  332.         $(local_id+", "+servicos_id+", "+pesquisadores_id+", "+pesquisa_id+", "+unidades_id).multiselect({
  333.             includeSelectAllOption: true,
  334.             nSelectedText: 'selecionados ..',
  335.             nonSelectedText:'Nenhum selecionado ..',
  336.             allSelectedText: 'Todos selecionados ..',
  337.             selectAllText: 'Selecionar todos ..',
  338.             numberDisplayed: 1,
  339.         });
  340.     }
  341.  
  342.     function get_selects(id){
  343.         var return_data = [];
  344.  
  345.         $(id+" option:selected").each(function(){
  346.             var item = $(this).val();
  347.             return_data.push(item);
  348.         });
  349.        
  350.         return return_data;
  351.     }
  352.    
  353. })();
Advertisement
Add Comment
Please, Sign In to add comment