Beispiel #1
0
 public function getTotaisTrabalhados(Profissional $pProf, Periodo $pPeriodo)
 {
     $oInicio = new DateTime($pPeriodo->getInicial());
     $oFim = new DateTime($pPeriodo->getFinal());
     $sql = "SELECT SUM(h_50) as Hex50, SUM(h_100)  as Hex100, SUM(total) as total  " . "FROM hor_frequencia " . "WHERE cod_prof_funcao =  " . $pProf->getCodProfFuncao() . " AND data BETWEEN '" . $oInicio->format('Y-m-d') . "' AND '" . $oFim->format('Y-m-d') . "';";
     $rs = parent::obterRecordSet($sql);
     $this->setExtra50($rs[0]["Hex50"]);
     $this->setExtra100($rs[0]["Hex100"]);
     $this->setTotal($rs[0]["total"]);
 }
Beispiel #2
0
 public function getHorasTrabalharNoPeriodo(Periodo $pPeriodo)
 {
     // checa se o profissional � horista,
     // horistas n�o possuem limite de horas a trabalhar
     if ($this->getHorista()) {
         return 0;
     }
     //Prepara períodos
     $pInicio = new DateTime($pPeriodo->getInicial());
     $pFim = new DateTime($pPeriodo->getFinal());
     // checa se j� existe registro na tabela de horas a trabalhar
     $sql = "SELECT horas " . "FROM hor_a_trabalhar " . "WHERE cod_prof_funcao =  " . $this->getCodProfFuncao() . " AND periodo_ini = '" . $pInicio->format("Y-m-d") . "';";
     $cont = parent::executarScalar($sql);
     if ($cont > 0) {
         return $cont;
     }
     // obtem a carga hor�ria do profissional, converte para numero
     $varCargaHoraria = $this->getCargaHoraria();
     // calcula a quantidade de horas a
     // trabalhar no per�odo entre duas datas
     //$oTipoDia = new Data();
     while ($pInicio <= $pFim) {
         $varTipoDia = Data::getTipoDia($pInicio);
         if (!($varTipoDia == "Sábado" || $varTipoDia == "Domingo")) {
             if ($varCargaHoraria == 8.5) {
                 if ($varTipoDia == "Sexta-Feira") {
                     $varTotal += 8;
                 } else {
                     $varTotal += $varCargaHoraria;
                 }
             } else {
                 $varTotal += $varCargaHoraria;
             }
         } else {
             // Trata feriado
             // Há feriados que só desconta um turno, por exemplo
             $oFeriado = new Feriado();
             if ($oFeriado->isFeriado($pInicio)) {
                 $varDesconto += $oFeriado->getHoras();
                 // Se o feriado cair dia de sábado
                 // Desconta 2h da carga horária referente a este dia
                 if (Data::getDiaSemana($pInicio) == "Sábado") {
                     $varDesconto += 2;
                 }
             }
         }
         // Incrementa dia
         $pInicio->modify("+1 day");
     }
     $varTotal -= $varDesconto;
     return number_format($varTotal, 2);
 }
Beispiel #3
0
 function getBanco($pCodProfFuncao)
 {
     try {
         // horista não possui banco de horas
         $oProf = new Profissional($pCodProfFuncao);
         if ($oProf->getHorista()) {
             return false;
         }
         // retorna banco de horas
         $sql = "SELECT hb.periodo_ini, hb.hex_50, hb.hex_100,\n                    hb.total_trab as normais,\n                    (hb.total_trab + hb.hex_50 + hb.hex_100) as total_trab,\n                    IFNULL(hp.horas,0) as horas_pagas, IFNULL(ht.horas,'0') as horas_a_trabalhar\n               FROM hor_banco as hb\n               LEFT JOIN hor_pagas as hp\n               ON (hb.cod_prof_funcao = hp.cod_prof_funcao AND hb.periodo_ini = hp.periodo_ini)\n               LEFT JOIN hor_a_trabalhar as ht\n               ON (hb.cod_prof_funcao = ht.cod_prof_funcao AND hb.periodo_ini = ht.periodo_ini)\n               WHERE hb.cod_prof_funcao = " . $pCodProfFuncao . " ORDER BY hb.periodo_ini ASC;";
         $rs = parent::obterRecordSet($sql);
         //$varAcumulado = 0;
         $ret = array();
         foreach ($rs as $row) {
             $oPeriodo = new Periodo($row["periodo_ini"]);
             $vPeriodo = "de " . $oPeriodo->getInicial() . " a " . $oPeriodo->getFinal();
             $oBanco = new Banco();
             $oBanco->setPeriodo($vPeriodo);
             $oBanco->setHorhex50($row["hex_50"]);
             $oBanco->setHorhex100($row["hex_100"]);
             $oBanco->setHornormais($row["normais"]);
             $oBanco->setHortrabalhadas($row["total_trab"]);
             $oBanco->setHoratrabalhar($row["horas_a_trabalhar"]);
             $oBanco->setHorpagas($row["horas_pagas"]);
             $oBanco->setHorsaldo($row["total_trab"] - $row["horas_a_trabalhar"]);
             $varAcumulado += $row["total_trab"] - $row["horas_a_trabalhar"] - $row["horas_pagas"];
             $oBanco->setHoracumuladas($varAcumulado);
             $ret[] = $oBanco;
         }
         return $ret;
     } catch (Exception $e) {
         throw new Exception($e->getTraceAsString());
     }
 }