Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { Component } from 'react';
  2. import { Programa, SimpleTable, Select } from 'argous/dist/components';
  3. import { serverAction } from 'argous/dist/utils/api'
  4. import passFields from 'argous/dist/fieldsRedux/passFields';
  5. import { setField } from 'argous/dist/fieldsRedux';
  6. import Input from 'argous/dist/components/Input';
  7. import GraficoPizzaAnaliseFeedBack from './GraficoPizzaAnaliseFeedBack';
  8. import Button from 'argous/dist/components/Button';
  9.  
  10. class RelatorioAnaliseFeedback extends Component {
  11.  
  12.     pgCode = 'AnaliseFeebackAD'
  13.  
  14.     state = {
  15.         modalDadosFeedback: false,
  16.         quantidadeF: 0,
  17.         quantidadeI: 0,
  18.         quantidadeN: 0,
  19.         quantidadeTotal: 0,
  20.         appearing: true,
  21.         arr: [],
  22.         cdCiclo: '1',
  23.         filtro: {}
  24.     }
  25.  
  26.     indicadores = [{
  27.         id: 'F',
  28.         tipo: 'Finalizado'
  29.     }, {
  30.         id: 'I',
  31.         tipo: 'Iniciado'
  32.     }, {
  33.         id: 'N',
  34.         tipo: 'Não Iniciado'
  35.     }]
  36.  
  37.     executaFiltroPesquisa = (obj) => {
  38.         console.log('Executando executaFiltroPesquisa', obj)
  39.  
  40.         var filtro = {
  41.             cdCiclo: this.state.cdCiclo,
  42.             cdH: this.state.cdH,
  43.             cdC: this.state.cdC,
  44.             cdS: this.state.cdS,
  45.         }
  46.  
  47.         if (obj !== undefined && obj !== '') {
  48.             console.log("ADICIONANDO AO FILTRO")
  49.             filtro = {
  50.                 cdCiclo: this.state.cdCiclo,
  51.                 cdH: this.state.cdH,
  52.                 cdC: this.state.cdC,
  53.                 cdS: this.state.cdS,
  54.                 nmF: obj
  55.             }
  56.         }
  57.  
  58.         console.log("filtro ", filtro)
  59.  
  60.         serverAction('buscaAvaliacoesDeFeedback', filtro).then(res => {
  61.             console.log('chamada', res)
  62.             if (res.status) {
  63.                 setField("listaCargos", res.cargos)
  64.                 setField("listaHierarquias", res.hierarquias)
  65.                 setField("listaCiclos", res.ciclos)
  66.                 setField("listaCiclosSelecionado", 1)
  67.                 setField("itensFB", res.itens)
  68.                 setField('listaQuantidades', this.indicadores)
  69.                 setField('quantidades', res.quantidades)
  70.                 if (res.quantidades !== undefined) {
  71.                     var qtN = 0;
  72.                     var qtI = 0;
  73.                     var qtF = 0;
  74.                     var qtTotal = 0;
  75.                     var arr = []
  76.                     for (var i = 0; i < res.quantidades.length; i++) {
  77.                         arr[i] = res.quantidades[i].tpStatus
  78.  
  79.                         if (res.quantidades[i].tpStatus === 'F') {
  80.                             qtF = res.quantidades[i].quantidade;
  81.                         } else if (res.quantidades[i].tpStatus === 'I') {
  82.                             qtI = res.quantidades[i].quantidade;
  83.                         } else if (res.quantidades[i].tpStatus === 'N') {
  84.                             qtN = res.quantidades[i].quantidade;
  85.                         }
  86.                     }
  87.  
  88.                     qtTotal = (qtN + qtF + qtI)
  89.  
  90.                     this.setState({
  91.                         quantidadeF: qtF,
  92.                         quantidadeI: qtI,
  93.                         quantidadeN: qtN,
  94.                         quantidadeTotal: qtTotal,
  95.                         arr: arr
  96.                     })
  97.                 }
  98.             }
  99.         })
  100.  
  101.     }
  102.  
  103.     executaFiltroCiclo = (obj) => {
  104.         console.log('Executando executaFiltroCiclo', obj)
  105.         var filtro = {
  106.             cdH: this.state.cdH,
  107.             cdC: this.state.cdC,
  108.             cdS: this.state.cdS,
  109.         }
  110.         if (obj !== 'Selecionar') {
  111.             filtro = {
  112.                 cdCiclo: obj,
  113.                 cdH: this.state.cdH,
  114.                 cdC: this.state.cdC,
  115.                 cdS: this.state.cdS,
  116.             }
  117.         }
  118.  
  119.         serverAction('buscaAvaliacoesDeFeedback', filtro).then(res => {
  120.             console.log('chamada', res)
  121.             if (res.status) {
  122.                 setField("listaCargos", res.cargos)
  123.                 setField("listaHierarquias", res.hierarquias)
  124.                 setField("listaCiclos", res.ciclos)
  125.                 setField("listaCiclosSelecionado", 1)
  126.                 setField("itensFB", res.itens)
  127.                 setField('listaQuantidades', this.indicadores)
  128.                 setField('quantidades', res.quantidades)
  129.                 if (res.quantidades !== undefined) {
  130.                     var qtN = 0;
  131.                     var qtI = 0;
  132.                     var qtF = 0;
  133.                     var qtTotal = 0;
  134.                     var arr = []
  135.                     for (var i = 0; i < res.quantidades.length; i++) {
  136.                         arr[i] = res.quantidades[i].tpStatus
  137.  
  138.                         if (res.quantidades[i].tpStatus === 'F') {
  139.                             qtF = res.quantidades[i].quantidade;
  140.                         } else if (res.quantidades[i].tpStatus === 'I') {
  141.                             qtI = res.quantidades[i].quantidade;
  142.                         } else if (res.quantidades[i].tpStatus === 'N') {
  143.                             qtN = res.quantidades[i].quantidade;
  144.                         }
  145.                     }
  146.  
  147.                     qtTotal = (qtN + qtF + qtI)
  148.  
  149.                     this.setState({
  150.                         quantidadeF: qtF,
  151.                         quantidadeI: qtI,
  152.                         quantidadeN: qtN,
  153.                         quantidadeTotal: qtTotal,
  154.                         arr: arr
  155.                     })
  156.                 }
  157.             }
  158.         })
  159.     }
  160.  
  161.     executaFiltroCargo = (obj) => {
  162.         console.log('Executando executaFiltroCargo', obj)
  163.         var filtro = {
  164.             cdCiclo: this.state.cdCiclo,
  165.             cdH: this.state.cdH,
  166.             cdS: this.state.cdS,
  167.         }
  168.         if (obj !== 'Selecionar') {
  169.             filtro = {
  170.                 cdCiclo: this.state.cdCiclo,
  171.                 cdH: this.state.cdH,
  172.                 cdC: obj,
  173.                 cdS: this.state.cdS,
  174.             }
  175.             this.setState({
  176.                 cdC: obj
  177.             })
  178.         } else {
  179.             delete this.state.cdC
  180.         }
  181.  
  182.  
  183.  
  184.         serverAction('buscaAvaliacoesDeFeedback', filtro).then(res => {
  185.             console.log('chamada', res)
  186.             if (res.status) {
  187.                 setField("listaCargos", res.cargos)
  188.                 setField("listaHierarquias", res.hierarquias)
  189.                 setField("listaCiclos", res.ciclos)
  190.                 setField("listaCiclosSelecionado", 1)
  191.                 setField("itensFB", res.itens)
  192.                 setField('listaQuantidades', this.indicadores)
  193.                 setField('quantidades', res.quantidades)
  194.                 if (res.quantidades !== undefined) {
  195.                     var qtN = 0;
  196.                     var qtI = 0;
  197.                     var qtF = 0;
  198.                     var qtTotal = 0;
  199.                     var arr = []
  200.                     for (var i = 0; i < res.quantidades.length; i++) {
  201.                         arr[i] = res.quantidades[i].tpStatus
  202.  
  203.                         if (res.quantidades[i].tpStatus === 'F') {
  204.                             qtF = res.quantidades[i].quantidade;
  205.                         } else if (res.quantidades[i].tpStatus === 'I') {
  206.                             qtI = res.quantidades[i].quantidade;
  207.                         } else if (res.quantidades[i].tpStatus === 'N') {
  208.                             qtN = res.quantidades[i].quantidade;
  209.                         }
  210.                     }
  211.  
  212.                     qtTotal = (qtN + qtF + qtI)
  213.  
  214.                     this.setState({
  215.                         quantidadeF: qtF,
  216.                         quantidadeI: qtI,
  217.                         quantidadeN: qtN,
  218.                         quantidadeTotal: qtTotal,
  219.                         arr: arr
  220.                     })
  221.                 }
  222.             }
  223.         })
  224.     }
  225.  
  226.     executaFiltroHierarquia = (obj) => {
  227.         console.log('Executando executaFiltroHierarquia', obj)
  228.         var filtro = {
  229.             cdCiclo: this.state.cdCiclo,
  230.             cdC: this.state.cdC,
  231.             cdS: this.state.cdS,
  232.         }
  233.         if (obj !== 'Selecionar') {
  234.             filtro = {
  235.                 cdCiclo: this.state.cdCiclo,
  236.                 cdH: obj,
  237.                 cdC: this.state.cdC,
  238.                 cdS: this.state.cdS,
  239.             }
  240.             this.setState({
  241.                 cdH: obj
  242.             })
  243.         } else {
  244.             delete this.state.cdH
  245.         }
  246.  
  247.         serverAction('buscaAvaliacoesDeFeedback', filtro).then(res => {
  248.             console.log('chamada', res)
  249.             if (res.status) {
  250.                 setField("listaCargos", res.cargos)
  251.                 setField("listaHierarquias", res.hierarquias)
  252.                 setField("listaCiclos", res.ciclos)
  253.                 setField("listaCiclosSelecionado", 1)
  254.                 setField("itensFB", res.itens)
  255.                 setField('listaQuantidades', this.indicadores)
  256.                 setField('quantidades', res.quantidades)
  257.                 if (res.quantidades !== undefined) {
  258.                     var qtN = 0;
  259.                     var qtI = 0;
  260.                     var qtF = 0;
  261.                     var qtTotal = 0;
  262.                     var arr = []
  263.                     for (var i = 0; i < res.quantidades.length; i++) {
  264.                         arr[i] = res.quantidades[i].tpStatus
  265.  
  266.                         if (res.quantidades[i].tpStatus === 'F') {
  267.                             qtF = res.quantidades[i].quantidade;
  268.                         } else if (res.quantidades[i].tpStatus === 'I') {
  269.                             qtI = res.quantidades[i].quantidade;
  270.                         } else if (res.quantidades[i].tpStatus === 'N') {
  271.                             qtN = res.quantidades[i].quantidade;
  272.                         }
  273.                     }
  274.  
  275.                     qtTotal = (qtN + qtF + qtI)
  276.  
  277.                     this.setState({
  278.                         quantidadeF: qtF,
  279.                         quantidadeI: qtI,
  280.                         quantidadeN: qtN,
  281.                         quantidadeTotal: qtTotal,
  282.                         arr: arr
  283.                     })
  284.                 }
  285.             }
  286.         })
  287.     }
  288.  
  289.     executaFiltroStatus = (obj) => {
  290.         console.log('Executando executaFiltroStatus', obj)
  291.         var filtro = {
  292.             cdCiclo: this.state.cdCiclo,
  293.             cdH: this.state.cdH,
  294.             cdC: this.state.cdC,
  295.         }
  296.         if (obj !== 'Selecionar') {
  297.             console.log("DIFERENTE DE SELECIONAR ", obj)
  298.             filtro = {
  299.                 cdCiclo: this.state.cdCiclo,
  300.                 cdH: this.state.cdH,
  301.                 cdC: this.state.cdC,
  302.                 cdS: obj,
  303.             }
  304.             this.setState({
  305.                 cdS: obj
  306.             })
  307.         } else {
  308.             delete this.state.cdS
  309.         }
  310.  
  311.  
  312.         serverAction('buscaAvaliacoesDeFeedback', filtro).then(res => {
  313.             console.log('chamada', res)
  314.             if (res.status) {
  315.                 setField("listaCargos", res.cargos)
  316.                 setField("listaHierarquias", res.hierarquias)
  317.                 setField("listaCiclos", res.ciclos)
  318.                 setField("listaCiclosSelecionado", 1)
  319.                 setField("itensFB", res.itens)
  320.                 setField('listaQuantidades', this.indicadores)
  321.                 setField('quantidades', res.quantidades)
  322.                 if (res.quantidades !== undefined) {
  323.                     var qtN = 0;
  324.                     var qtI = 0;
  325.                     var qtF = 0;
  326.                     var qtTotal = 0;
  327.                     var arr = []
  328.                     for (var i = 0; i < res.quantidades.length; i++) {
  329.                         arr[i] = res.quantidades[i].tpStatus
  330.  
  331.                         if (res.quantidades[i].tpStatus === 'F') {
  332.                             qtF = res.quantidades[i].quantidade;
  333.                         } else if (res.quantidades[i].tpStatus === 'I') {
  334.                             qtI = res.quantidades[i].quantidade;
  335.                         } else if (res.quantidades[i].tpStatus === 'N') {
  336.                             qtN = res.quantidades[i].quantidade;
  337.                         }
  338.                     }
  339.  
  340.                     qtTotal = (qtN + qtF + qtI)
  341.  
  342.                     this.setState({
  343.                         quantidadeF: qtF,
  344.                         quantidadeI: qtI,
  345.                         quantidadeN: qtN,
  346.                         quantidadeTotal: qtTotal,
  347.                         arr: arr
  348.                     })
  349.                 }
  350.             }
  351.         })
  352.     }
  353.  
  354.     init = () => {
  355.  
  356.  
  357.         //{cdCiclo:'', cdH: '', cdC: '', cdS: '', nmF:''}
  358.         const filtro = {
  359.             cdFiltro: '1'
  360.         }
  361.         console.log('Filtro', filtro)
  362.         serverAction('buscaAvaliacoesDeFeedback', this.state.filtro).then(res => {
  363.             console.log('chamada', res)
  364.             if (res.status) {
  365.                 setField("listaCargos", res.cargos)
  366.                 setField("listaHierarquias", res.hierarquias)
  367.                 setField("listaCiclos", res.ciclos)
  368.                 setField("listaCiclosSelecionado", 1)
  369.                 setField("itensFB", res.itens)
  370.                 setField('listaQuantidades', this.indicadores)
  371.                 setField('quantidades', res.quantidades)
  372.                 if (res.quantidades !== undefined) {
  373.                     var qtN = 0;
  374.                     var qtI = 0;
  375.                     var qtF = 0;
  376.                     var qtTotal = 0;
  377.                     var arr = []
  378.                     for (var i = 0; i < res.quantidades.length; i++) {
  379.                         arr[i] = res.quantidades[i].tpStatus
  380.  
  381.                         if (res.quantidades[i].tpStatus === 'F') {
  382.                             qtF = res.quantidades[i].quantidade;
  383.                         } else if (res.quantidades[i].tpStatus === 'I') {
  384.                             qtI = res.quantidades[i].quantidade;
  385.                         } else if (res.quantidades[i].tpStatus === 'N') {
  386.                             qtN = res.quantidades[i].quantidade;
  387.                         }
  388.                     }
  389.  
  390.                     qtTotal = (qtN + qtF + qtI)
  391.  
  392.                     this.setState({
  393.                         quantidadeF: qtF,
  394.                         quantidadeI: qtI,
  395.                         quantidadeN: qtN,
  396.                         quantidadeTotal: qtTotal,
  397.                         arr: arr
  398.                     })
  399.                 }
  400.             }
  401.         })
  402.     }
  403.  
  404.     render() {
  405.         const { modalDadosFeedback, quantidadeF, quantidadeI, quantidadeN, quantidadeTotal, arr } = this.state
  406.  
  407.         const data = {
  408.             datasets: [{
  409.                 data: [quantidadeN, quantidadeF, quantidadeI],
  410.                 backgroundColor: ['#F6F612', '#F33493', '#3C96F0'],
  411.                 hoverBorderColor: '#BBB3B3',
  412.                 hoverBorderWidth: 3,
  413.             }],
  414.             labels: arr
  415.         }
  416.  
  417.         return (
  418.  
  419.             <Programa programDidMount={this.init} code={this.pgCode}>
  420.  
  421.                         <div>
  422.                             <div className='row'>
  423.                                 <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'>
  424.  
  425.                                     <div className='row'>
  426.                                         <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'>
  427.  
  428.  
  429.  
  430.                                             <label>Ciclo de Avaliação:</label>
  431.                                             <Select field='cdCiclo'
  432.                                                 optionsField='listaCiclos'
  433.                                                 optionsValue='chave'
  434.                                                 optionsLabel='descricao'
  435.                                                 onChange={obj => this.executaFiltroCiclo(obj)}>
  436.                                                 <option label='Selecionar'>Selecionar</option>
  437.                                             </Select>
  438.                                             <br />
  439.                                         </div>
  440.  
  441.                                         <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'>
  442.                                             <label>Hierarquia:</label>
  443.                                             <Select field='cdH'
  444.                                                 optionsField='listaHierarquias'
  445.                                                 optionsLabel='descricao'
  446.                                                 optionsValue='chave'
  447.                                                 onChange={obj => this.executaFiltroHierarquia(obj)}>
  448.                                                 <option label='Selecionar'>Selecionar</option>
  449.                                             </Select>
  450.                                             <br />
  451.                                         </div>
  452.                                     </div>
  453.  
  454.                                     <div className='row'>
  455.                                         <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'>
  456.                                             <label>Cargo</label>
  457.                                             <Select field='cdC'
  458.                                                 optionsField='listaCargos'
  459.                                                 optionsLabel='descricao'
  460.                                                 optionsValue='chave'
  461.                                                 onChange={obj => this.executaFiltroCargo(obj)}>
  462.                                                 <option label='Selecionar'>Selecionar</option>
  463.                                             </Select>
  464.                                             <br />
  465.                                         </div>
  466.  
  467.                                         <div className='col-lg-6 col-md-6 col-sm-6 col-xs-6'>
  468.                                             <label>Status Feedback:</label>
  469.                                             <Select field='cdS'
  470.                                                 optionsField='listaQuantidades'
  471.                                                 optionsLabel='tipo'
  472.                                                 optionsValue='id'
  473.                                                 onChange={obj => this.executaFiltroStatus(obj)}>
  474.                                                 <option label='Selecionar'>Selecionar</option>
  475.                                             </Select>
  476.                                             <br />
  477.                                         </div>
  478.                                     </div>
  479.                                 </div>
  480.  
  481.                                 <div className='col-lg-3 col-md-3 col-sm-3 col-xs-3'>Indicadores:
  482.                         <br /><br />
  483.                                     <label>Total de Feedbacks :</label> {quantidadeTotal} <br />
  484.                                     <label>Não-Iniciados : </label>{quantidadeN}<br />
  485.                                     <label>Iniciados :</label>{quantidadeI}<br />
  486.                                     <label>Finalizados :</label>{quantidadeF}<br />
  487.                                 </div>
  488.  
  489.                                 <div className='col-lg-3 col-md-3 col-sm-3 col-xs-3'>
  490.                                     <GraficoPizzaAnaliseFeedBack data={data} />
  491.  
  492.                                 </div>
  493.                             </div>
  494.                         </div>
  495.  
  496.                         <div className='row'>
  497.                             <div className='col-lg-12 col-md-12 col-sm-12 col-xs-12'>
  498.                                 <label><br /></label>
  499.                                 <Input field='ds_descricao' onBlur={e => this.executaFiltroPesquisa(e.target.value)} placeholder='Pesquise por funcionário, área ou cargo' />
  500.                                 <br />
  501.                             </div>
  502.                         </div>
  503.  
  504.                     <div className="row">
  505.                         {!modalDadosFeedback &&
  506.                             <div className="col-lg-12 col-md-12 col-sm-12 col-sx-12 padding-bottom-md">
  507.                                 <SimpleTable
  508.                                     field='itensFB'
  509.                                     head={['FUNCIONÁRIO', 'ÁREA', 'CARGO', 'CICLO']}
  510.                                     alias={['ds_nome', 'ds_cc', 'ds_cargo', 'ds_ciclo']}
  511.                                     rows={25}
  512.                                     onClick={obj =>
  513.                                         this.visualizaFeedback(obj)
  514.                                     }>
  515.                                 </SimpleTable>
  516.                             </div>
  517.                         }
  518.                     </div>
  519.  
  520.  
  521.             </Programa>
  522.                 )
  523.             }
  524.         }
  525. export default passFields(RelatorioAnaliseFeedback);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement