コード例 #1
0
ファイル: Registro.php プロジェクト: rpradosdf/myponto
 public function updateTotals(Profissional $pProf, Registro $pRegistro)
 {
     try {
         // atualiza os totais
         $oRegistro = new Registro();
         $oRegistro = $this->getByDate($pProf, $pRegistro->getData());
         $t = 0;
         switch ($oRegistro->getFlag()) {
             case 6:
                 // entrada manhã + saída manhã
                 $s = $oRegistro->getEntradaManha();
                 $e = $oRegistro->getSaidaManha();
                 $t = Data::getTimeDifference($s, $e);
                 $t = Data::timeToDecimal($t);
                 break;
             case 18:
                 // entrada manhã + saída tarde
                 $s = $oRegistro->getEntradaManha();
                 $e = $oRegistro->getSaidaTarde();
                 $t = Data::getTimeDifference($s, $e);
                 $t = Data::timeToDecimal($t);
                 break;
             case 24:
                 // entrada tarde + saída tarde
                 $s = $oRegistro->getEntradaTarde();
                 $e = $oRegistro->getSaidaTarde();
                 $t = Data::getTimeDifference($s, $e);
                 $t = Data::timeToDecimal($t);
                 break;
             case 30:
                 // tudo
                 $s = $oRegistro->getEntradaManha();
                 $e = $oRegistro->getSaidaManha();
                 $t1 = Data::getTimeDifference($s, $e);
                 $t1 = Data::timeToDecimal($t1);
                 $s = $oRegistro->getEntradaTarde();
                 $e = $oRegistro->getSaidaTarde();
                 $t2 = Data::getTimeDifference($s, $e);
                 $t2 = Data::timeToDecimal($t2);
                 $t = $t1 + $t2;
                 break;
         }
         $oPeriodo = new Periodo();
         $oPeriodo->setInicial($oRegistro->getData());
         $oPeriodo->setFinal($oRegistro->getData());
         $vTrabalhar = $pProf->getHorasTrabalharNoPeriodo($oPeriodo);
         $vSaldo = $t - $vTrabalhar;
         $t100 = 0;
         $t50 = 0;
         //se tiver saldo e o dia for s�bado, � hora extra a 50%
         //se for domingo ou feriado, � hora extra a 100%
         $vData = new DateTime($oRegistro->getData());
         if ($vSaldo > 0) {
             switch (Data::getTipoDia($vData)) {
                 case "Domingo":
                     $t100 = $vSaldo;
                     break;
                 case "Feriado":
                     $t100 = $vSaldo;
                     break;
                 default:
                     $t50 = $vSaldo;
                     break;
             }
         }
         $sql = "UPDATE hor_frequencia SET total = {$t} , h_50 = {$t50}, h_100 = {$t100}\n            WHERE data = '{$vData->format("Y-m-d")}' AND cod_prof_funcao = {$pProf->getCodProfFuncao()};";
         parent::executar($sql);
     } catch (Exception $e) {
         throw new Exception($e->getMessage());
     }
 }
コード例 #2
0
ファイル: Apropriacao.php プロジェクト: rpradosdf/myponto
 public function getSaldoApropriar()
 {
     try {
         $oProf = new Profissional($this->getCodProfFuncao());
         $oPeriodo = new Periodo();
         $oRegistro = new Registro();
         $oPeriodo->setInicial($this->getData());
         $oPeriodo->setFinal($this->getData());
         $oRegistro->getTotaisTrabalhados($oProf, $oPeriodo);
         $tRegistrado = $oRegistro->getTotal();
         $tApropriado = $this->getTotalApropriado();
         $vSaldo = $tRegistrado - $tApropriado;
         return $vSaldo;
     } catch (Exception $e) {
         throw new Exception($e->getMessage());
     }
 }