PHP; MySQL; calculate / insert data automatically according to certain parameters

0

Good afternoon, I have 3 tables.

I want to automatically calculate and insert times in the scales table according to some parameters. ex: 4 days work mornings, 2 days off, 4 days late work (data table schedules id-1 = morning; id-2 = late; id-3 = clearance)

for example for a year or more

Thank you very much, Rui

    
asked by anonymous 06.03.2017 / 20:24

1 answer

0

Good evening, it seems that I got around to my problem! It is the solution (at least temporary)

//criar o array (primeiros dois dias folga 1 e 2)
$arrayTurno = array('1','2');
//verifico qual o fim do array
$end = array_slice($arrayTurno, -1, 1);
//verifico qual o ultimo turno antes das folgas (manhã 1, manhã 2, tarde 1 ou tarde 2)
$lastTurno  = array_slice($arrayTurno, -3, 1);
//Verifico qual o ultimo turmo de manhã (3 manhã 1 e 5 manhã 2) 
$lastM  = array_slice($arrayTurno, -6, 1);


    // se o turno apenas tem apenas 2 dias (folgas) acrescenta 4 dias de manhã 1
    if (count($arrayTurno) < 3 and $end = '2') {
    array_push($arrayTurno, '3','3','3','3');
    }
    // se já existe 1 turno ou + verifica se é manhã 1 (se assim for acrescenta folgas + tarde 1)
    if (count($arrayTurno) > 3 and $lastTurno = '3') {
    array_push($arrayTurno, '1','2','4','4','4','4');
    }
    // se já existe 1 turno ou + verifica se é tarde 1 (se assim for acrescenta folgas + manhã 2)
    if (count($arrayTurno) > 3 and $lastM = '4') {
    array_push($arrayTurno, '1','2','5','5','5','5');
    }
    // se já existe 1 turno ou + verifica se é manhã 2 (se assim for acrescenta folgas + tarde 2)   
    if (count($arrayTurno) > 3 and $lastM = '5') {
    array_push($arrayTurno, '1','2','6','6','6','6');
    }

// acabo de encher o array até ficar com o comprimento do total de datas
$max = mysqli_num_rows($resultData);

        $newArrayTurno = array();

        while(count($newArrayTurno) <= $max){
            $newArrayTurno = array_merge($newArrayTurno, $arrayTurno);
        }

        $arrayTurno = array_slice($newArrayTurno, 0, $max);

At the end, just insert it into the table.

Thank you, regards, Rui

    
13.03.2017 / 20:40