Ir para conteúdo

eiwes

Members
  • Total de itens

    32
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre eiwes

Contato

  1. Eu tenho esse código, mas preciso retornar funções puras em vez de funções mutáveis. É possível? Talvez usando OOP? Não sei como melhorar isso. Tentei retornar os valores de cada função, mas não obtive sucesso. import { AssetStatusType } from '@domain/interfaces/common' import { BothComponentType, ComponentsType, GroupFiltersType, OperationType, OverviewModelType, PendenciesOverviewType, PendenciesType, StructurePendenciesCount, StructureStatusCount } from '../../types' const updateStatusCount = ( statusCount: StructureStatusCount, status: AssetStatusType ) => { statusCount[status] = (statusCount[status] || 0) + 1 } const updatePendenciesCount = ( pendenciesCount: StructurePendenciesCount, key: AssetStatusType, subKey: OperationType | PendenciesOverviewType ) => { pendenciesCount[key] = pendenciesCount[key] ?? {} pendenciesCount[key][subKey] = (pendenciesCount[key]?.[subKey] || 0) + 1 } const processOverviewPendencies = ( pendencies: PendenciesType[] | null | undefined, pendenciesCount: StructurePendenciesCount, countedIds: Set<string>, id: string ) => { if (pendencies?.length) { for (const { state, pendencyType } of pendencies) { const uniqueId = `${state}-${pendencyType}-${id}` if (!countedIds.has(uniqueId)) { updatePendenciesCount(pendenciesCount, state, pendencyType) countedIds.add(uniqueId) } } } } const processOverviewComponents = ( components: ComponentsType[], isGroupByTree: boolean, statusCount: StructureStatusCount, pendenciesCount: StructurePendenciesCount, countedIds: Set<string>, id: string, type: BothComponentType ) => { for (const { pendencies, status, operationType } of components) { if (isGroupByTree && type === 'location') { updateStatusCount(statusCount, status) if (operationType) { updatePendenciesCount(pendenciesCount, status, operationType) } } processOverviewPendencies(pendencies, pendenciesCount, countedIds, id) } } const processOverviewData = ( data: OverviewModelType[], groupBy: GroupFiltersType, statusCount: StructureStatusCount, pendenciesCount: StructurePendenciesCount, countedIds: Set<string> ) => { const isGroupByTree = groupBy === 'tree' const isGroupByAsset = groupBy === 'asset' for (const { id, status, components, operationType, type } of data) { if (isGroupByAsset || type === 'asset') { updateStatusCount(statusCount, status) if (operationType) { updatePendenciesCount(pendenciesCount, status, operationType) } } processOverviewComponents( components, isGroupByTree, statusCount, pendenciesCount, countedIds, id, type ) } } export const calculateOverviewCounts = ( data: OverviewModelType[], groupBy: GroupFiltersType ) => { const statusCount: StructureStatusCount = {} as StructureStatusCount const pendenciesCount: StructurePendenciesCount = {} as StructurePendenciesCount const countedIds = new Set<string>() processOverviewData(data, groupBy, statusCount, pendenciesCount, countedIds) return { ...statusCount, pendencies: pendenciesCount } } Existe uma maneira mais limpa e elegante de fazer isso? Preciso retornar um objeto como este: // calculateOverviewCounts return this { pendencies: StructurePendenciesCount; working: number; inAlert: number; warning: number; stopped: number; off: number; } StructurePendenciesCount é:
  2. eiwes

    Erro na junção de array com foreach

    Então, Williams. Agradeço muito pelo link, porém, gostaria de entender o porquê desse erro. Saberia me ajudar com isso? Pois estou encabulado tentando entender: no primeiro laço do array ele conclui com o fechamento e após ele não faz o fechamento.
  3. eiwes

    Erro na junção de array com foreach

    Fiz uma iteração foreach para gerar categorias e subcategorias, pois não queria fazer DOIS SELECTS, ficando assim: //----> Foreach para gerar a categoria, pois são vários items com as mesmas chaves, portanto agrupo foreach($exibeLista as $row){ $dlD[$row["nameD"]][] = [ "nameD"=>$row["nameD"], "idD"=>$row["idD"], "qtdR"=>$row["qtdR"], "qtdF"=>$row["qtdF"] ]; } //----> Foreach para gerar subcategorias foreach($exibeLista as $row){ $dLA[$row["nameP"]][] = [ "nameD"=>$row["nameD"], "idD"=>$row["idD"], "idAss"=>$row["idAss"], "idT"=>$row["idT"], "nameP"=>$row["nameP"], "qtdR"=>$row["qtdR"], "qtdF"=>$row["qtdF"] ]; } $fsHTML = []; $rateD = 0; $qtdAss = 0; if(is_array($dlD) || is_object($dlD)){ foreach ($dlD as $key => $ds) { if ($key <> '' && $key <> NULL) { $rateD += (($ds[0]["qtdR"]*100)/$ds[0]["qtdF"]); $qtdAss += count($dlD[$key]); //----> Array para inserir HTML da Categoria criada e criar accordion $fsHTML[] = ' <div class="col-md-12 col-sm-12 col-xs-12"> <div class="x_panel overflow_hidden padding-into-row-qsts bg-white-row filtro-on"> <span class="rateD">'.ceil($rateD/$qtdAss).'%</span> <span class="opcao-into-top">'.$ds[0]["idD"].' - '.$ds[0]["nameD"].' <a class="collapse-link open-filter-qsts border-radius8"><i class="fa fa-chevron-up"></i></a></span> <div class="x_content" style="display:none;padding-top:10px"> <div class="accordion" id="accordion" role="tablist" aria-multiselectable="true"> '; //----> Verificar se a subcategoria contém a categoria, se contém é incluída na array foreach ($dLA as $keys => $ass) { if($ass[0]["idD"] == $ds[0]["idD"] ){ if($ass[0]['idT'] <> 0){ $link = 't='.$ass[0]['idT']; }else{ $link = 'a='.$ass[0]['idAss'];} $fsHTML[] = ' <div class="panel"> <a class="panel-heading collapsed" href="/v/fs/st?mz=y&type=c&'.$link.'"> <span class="eficiencia-accordion">'.ceil(($ass[0]['qtdR']*100)/$ass[0]['qtdF']).'%</span> <h4 class="panel-title">'.$ass[0]['nameP'].'</h4> <span class="unicamente">'.$ass[0]['qtdR'].' respondido de '.$ass[0]['qtdF'].'</span> </a> </div> '; }//if ass }//foreach ass }//if ds //----> Aqui é aonde ocorre o ERRO! Era pra fazer o fechamento do Accordion e gerar uma nova DIV. //No índice [0] isso ocorre normalmente, porém no [1] ela agrupa todos os accordions. (abaixo farei a amostra) $fsHTML[] = '</div></div></div></div>'; }//foreach ds }//if verifica se é array e se é objeto return implode('', array_unique($fsHTML)); O correto seria assim: - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria Como está acontecendo: - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria - Categoria - Subcategoria - Subcategoria Não consigo entender de jeito nenhum pq o primeiro fecha corretamente e a partir do segundo não. Alguém me ajuda?
  4. eiwes

    Algoritmo para exibição inteligente de dados

    Fala, galera Tenho duas Tabelas: 1 - dados 2 - respostas dados (usuários vão respondendo e é gravado aqui) Na verdade, não precisa ser nada pronto, mas sim um início, pois não consigo imaginar em nada que consiga dar certo. As respostas possuem níveis (como assim?), eles vão de 1 até 5. Na qual, 1 é Completamente Insatisfeito e 5 Completamente Satisfeito. Ao responder, o usuário “criteriza” aquela resposda de 1 até 5. Agora entra a inteligência que eu não consigo pensar em algo atingível. Caso ele aponte como 1: o usuário responderá +3 perguntas e aquela primeira voltaria na sequência. caso aponte 2: responderia +5 e voltaria aquela na sequência. caso aponte 3: responderia +7 e voltaria aquela na sequência. [...] e assim sucessivamente. Alguém teria alguma ideia de como daria pra filtrar esses dados e exibir com esses critérios inteligentes? Pois utilizar ORDER BY com CASE WHEN não daria, né?! Já utilizo o ORDER BY para colocar as respostas em ordem “cronológica”. Por favor, solicito ajuda para desencalhar esse projeto. Desde já, agradeço quaisquer comentários.
  5. Boa noite a todos, Estou iniciando os desenvolvimentos na plataforma Android e iOS, mas estou "CRU" nesse assunto. Possuo um site de notícias e gostaria de fazer um aplicativo para o mesmo. Agora o X da questão: como fazer essa sincronização de dados? Eu, como administrador, acessar o aplicativo e poder escrever notícias ali no celular mesmo e isso aparecer na página web e no próprio aplicativo. Resumindo mais ainda: um facebook da vida. O que eu posto no aplicativo, aparece no site. Não quero saber da programação por trás, mas sim um norte de como prosseguir. Alguém me ajuda?
  6. Olá a todos, Quando eu arrasto ou copio e colo, a imagem começa assim (até aí tudo certo) Depois que é realizado o upload, ela some, aparece a mensagem de sucesso e após, desaparece com a mensagem de erro. Posso estar errado, mas acredito que não seja erro de URL, senão nem seria realizado o UPLOAD da imagem, correto? Mas por via das dúvidas, segue URLs de configuração do arquivo CONFIG.JS config.filebrowserBrowseUrl = '/js/ckeditor/kcfinder/browse.php?type=files'; config.filebrowserImageBrowseUrl = '/js/ckeditor/kcfinder/browse.php?type=images'; config.filebrowserUploadUrl = '/js/ckeditor/kcfinder/upload.php?type=files'; config.filebrowserImageUploadUrl = '/js/ckeditor/kcfinder/upload.php?type=images'; Alguém suspeita o que pode ser? Ou já passou por algo parecido. OUUUU saiba como resolver kkkk Obs*: quando abro o local de FILES, a imagem está lá. Ela simplesmente não aparece naquele momento que arrasto (me faz perder muito tempo ter de ficar entrando no local do file).
  7. eiwes

    Pegar GET repetido, fazer foreach com SELECT

    TOP, Majour!!!! Exatamente isso!!!!! Complementando... Para quem quiser verificar, basta: if(is_array($numero)){ echo "É array"; }else{ echo "Não é array"; } Além disso, no meu caso, que eu irei usar em uma consulta SQL. Basta utilizar a clasula WHERE colum in ('1', '2' ,'3') Aí a pergunta: como fazer para resultar em uma string? Pois array não é lido na consulta SQL. Simples: gere um implode $novo = "'".implode("',", $numero)."'"; //Resultado '1', '2', '3' Fera demais! Agradecimentos absurdos, Majour
  8. eiwes

    Pegar GET repetido, fazer foreach com SELECT

    Infelizmente não, Eduardo. Passar GETs infinitos pela URL é coisa simples url?get1=a&get2=b&get3=c.... Minha dúvida é: MESMOS PARÂMETROS REPETIDOS DIVERSAS VEZES e resgatar esses valores. Exemplificando: url?get=1&get=2&get=3 Repare que são parâmetros de mesmo nome, porém com valores diferentes. Nesse caso, gostaria de transformar os valores do "get" em uma array. $values = [1, 2 , 3 ...]; Problema: não sei qual função existe para captar valores de parâmetros repetidos.
  9. eiwes

    Pegar GET repetido, fazer foreach com SELECT

    Boa noite, pessoal Gostaria de saber como faço para pegar gets repetidos na url, exemplo: pagina?a=1&b=2&a=2&a=5 Preciso pegar todos os valores de a, complicar e exibir no SELECT. Como? Assim: esse -> valores de a SELECT * FROM table WHERE esse = 1 AND esse = 2 AND esse = 3 AND esse = 5; Alguém tem algum raciocínio pra isso? Obrigado a todos pela ajuda.
  10. PERFEITO!!!!! ERA ISSO MESMOOOOO. Vocês são fodas!
  11. Olá pessoal, Pesquisando SEO pelo google, deparei-me com a seguinte estruturação na qual me chamou muita a atenção. Vocês sabem como fazer tal façanha? Ou seja, alterar de barras para " > "
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.