marcosvirtua 0 Denunciar post Postado Novembro 11, 2019 Boa tarde pessoal, estou iniciando em desenvolvimento web, e estava criando um sisteminha que fizesse um sorteio de tarefas. Exemplo: existe uma lista de pessoas, cada pessoa tem um cargo, algumas tarefas so cargos especificos podem fazer. O que estiver com o 'PIN'=>WT pode ser 'MC' o restante não. As tarefas são delegadas por ordem de 'box' e são feitas por dia. Cada dia vai ter uma distribuição de tarefas. No próximo dia será delegada a tarefa ao próximo 'box'. Não repetindo o anterior. E nem colocando mais de uma tarefa por box. A prioridade para as tarefas é: Plantão,Shake1,Shake2,MC,DJ Se for plantão, nao pode delegar outratarefa, segue para o proximo box. Ex.: array("nome"=>"Fabi&Fabio","pin"=>"SUP","box"=>4 ), array("nome"=>"Clau","pin"=>"WT","box"=>8 ), array("nome"=>"Edi&Renata","pin"=>"SUP","box"=>9 ), array("nome"=>"Maicol&Ju","pin"=>"SUP","box"=>10 ), array("nome"=>"Renato","pin"=>"SUP","box"=>11 ), array("nome"=>"Leia","pin"=>"WT","box"=>13 ), array("nome"=>"Djou","pin"=>"SUP","box"=>15 ), array("nome"=>"Sid","pin"=>"WT","box"=>16 ), array("nome"=>"Tobias","pin"=>"SUP","box"=>17 ), array("nome"=>"BemFica","pin"=>"SUP","box"=>18 ), array("nome"=>"Marcos&Dheni","pin"=>"WT","box"=>19 ), array("nome"=>"Su&Wender","pin"=>"WT","box"=>20 ), array("nome"=>"ViVi&Will","pin"=>"SUP","box"=>21 ), Saida: Dia: 2019-11-05Plantão:4 - Fabi&FabioShake1: 8 - ClauShake2: 10 - Edi&RenataMC: 13 - LeiaDJ: 10- Maicol&Ju No proximo ficaria: Dia: 2019-11-07Plantão: 8 - ClauShake1: 10- Maicol&JuShake2: 11 -RenatoMC: 16- SidDJ: 13 - Leia Abaixo o codigo que fiz ate agora: <meta charset="UTF-8"> <?php // Matriz com todos os coach $coachs = array ( //array("nome"=>"Fabi","pin"=>"SUP","box"=>4,"personal"=>1), array("nome"=>"Fabi&Fabio","pin"=>"SUP","box"=>4,"personal"=>0), array("nome"=>"Clau","pin"=>"WT","box"=>8,"personal"=>0), array("nome"=>"Edi&Renata","pin"=>"SUP","box"=>9,"personal"=>0), array("nome"=>"Maicol&Ju","pin"=>"SUP","box"=>10,"personal"=>0), array("nome"=>"Renato","pin"=>"SUP","box"=>11,"personal"=>0), //array("nome"=>"Juninho","pin"=>"WT","box"=>12,"personal"=>1), array("nome"=>"Leia","pin"=>"WT","box"=>13,"personal"=>0), array("nome"=>"Djou","pin"=>"SUP","box"=>15,"personal"=>0), array("nome"=>"Sid","pin"=>"WT","box"=>16,"personal"=>0), array("nome"=>"Tobias","pin"=>"SUP","box"=>17,"personal"=>0), array("nome"=>"BemFica","pin"=>"SUP","box"=>18,"personal"=>0), array("nome"=>"Marcos&Dheni","pin"=>"WT","box"=>19,"personal"=>0), array("nome"=>"Su&Wender","pin"=>"WT","box"=>20,"personal"=>0), array("nome"=>"ViVi&Will","pin"=>"SUP","box"=>21,"personal"=>0), ); // Definindo o número de participantes $numCoachs = sizeof($coachs); $coachsWt = 0; foreach ($coachs as $key => $value) { echo $key."-".$value['nome']." - ".$value['pin']."<br>"; if ($value['pin'] == 'WT') { $coachsWt = $coachsWt + 1; } } echo "<hr>"; echo "qtd coachs:".count($coachs); echo "<br>"; echo "qtd wt:".$coachsWt; echo "<hr>"; // Sorteando MC $begin = new DateTime( "2019-11-03" ); $end = new DateTime( "2019-12-03" ); echo "<hr>"; $cont = 0; for($i = $begin; $i <= $end; $i->modify('+1 day')){ $diasemana = date('D', strtotime($i->format('Y-m-d'))); if (($diasemana == 'Tue')||($diasemana == 'Thu')||($diasemana == 'Sat') ){ echo $i->format('Y-m-d'); echo "<br>"; if (($cont+2)>=$numCoachs || ($cont+3)>=$numCoachs || ($cont+4)>=$numCoachs) { $cont = 0; } $plantao = $coachs[$cont]['nome']; echo 'Plantão: '.$plantao; echo "<br>"; if ($cont==0) { $shake1 = $coachs[$cont+1]['nome']; $shake2 = $coachs[$cont+2]['nome']; $dj = $coachs[$cont+3]['nome']; }else{ $shake1 = $coachs[$cont+2]['nome']; $shake2 = $coachs[$cont+3]['nome']; $dj = $coachs[$cont+4]['nome']; } /*$shake1 = next($coachs['nome']); $shake2 = next($coachs['nome']); $dj = next($coachs['nome']); 2019-11-05 Plantão: Fabi&Fabio Shake1: Maicol&Ju Shake2: Clau MC: Renato DJ: Renato*/ echo 'Shake1: '.$shake1; echo "<br>"; echo 'Shake2: '.$shake2; echo "<br>"; for ($j=0; $j < $numCoachs; $j++) { if ($coachs[$j]['pin'] == 'WT') { $sorteado = $coachs[$j]['nome']; if ($sorteado == $plantao || $sorteado == $shake1 || $sorteado == $shake2) { $sorteado = $coachs[$j+1]['nome']; } if(empty($sorteadoAnterior)){ echo "MC: ".$sorteado; echo "<br>"; $sorteadoAnterior[] = $sorteado; if (($dj == $shake1)||($dj == $shake2)||($dj == $sorteado)||($dj == $plantao)) { if ($cont==0) { $dj = $coachs[$cont+4]['nome']; }else{ $dj = $coachs[$cont+5]['nome']; } } break; } if (!in_array($coachs[$j]['nome'], $sorteadoAnterior)) { echo "MC: ".$sorteado; echo "<br>"; $sorteadoAnterior[] = $sorteado; if($coachsWt == sizeof($sorteadoAnterior)){ $sorteadoAnterior = array(); } if (($dj == $shake1)||($dj == $shake2)||($dj == $sorteado)||($dj == $plantao)) { if ($cont==0) { $dj = $coachs[$cont+4]['nome']; }else{ $dj = $coachs[$cont+5]['nome']; } } break; } } } if ($cont > sizeof($coachs)) { $cont = 0; }else{ $cont = $cont+1; } echo 'DJ: '.$dj; echo "<hr>"; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites