Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcosvirtua

Sistema para sorteio de tarefas

Recommended Posts

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-05
Plantão:4 - Fabi&Fabio
Shake1: 8 - Clau
Shake2: 10 - Edi&Renata
MC: 13 - Leia
DJ: 10- Maicol&Ju

 

No proximo ficaria:

Dia: 2019-11-07
Plantão: 8 - Clau
Shake1: 10- Maicol&Ju
Shake2: 11 -Renato
MC: 16- Sid
DJ:  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

×

Informação importante

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