Example #1
0
 /**
  * M�todo getTipoData()
  * checa se a data informada � feriado, s�bado ou domingo
  * @param DateTime $pData um objeto com a data
  * @return String "Feriado" ou o dia da semana
  */
 public static function getTipoDia(DateTime $pData)
 {
     $oFeriado = new Feriado();
     if (!$oFeriado->isFeriado($pData)) {
         return self::getDiaSemana($pData);
     } else {
         return 'Feriado';
     }
 }
Example #2
0
 public static function getFeriados($options = array(), $pagination = false)
 {
     $options = array_merge(FeriadoService::$options, $options);
     $query = Feriado::order_by($options['orderBy'], $options['orderDir']);
     if (isset($options['hidden'])) {
         Feriado::$hidden = array_merge(Feriado::$hidden, $options['hidden']);
     }
     if (isset($options['ano']) && $options['ano']) {
         $query->raw_where('YEAR(fecha) = ?', array($options['ano']));
     }
     if (isset($options['mes']) && $options['mes']) {
         $query->raw_where('MONTH(fecha) = ?', array($options['mes']));
     }
     if (isset($options['dia']) && $options['dia']) {
         $query->raw_where('DAY(fecha) = ?', array($options['dia']));
     }
     if (isset($options['tipo_id']) && $options['tipo_id']) {
         $query->where('tipo_id', '=', $options['tipo_id']);
     }
     if ($pagination) {
         return $query->paginate($options['limit']);
     } else {
         $query->take($options['limit'])->skip($options['offset']);
         return $query->get();
     }
 }
 public function run()
 {
     DB::table('feriados')->delete();
     $feriados = array("01/01/2014" => "Año Nuevo", "03/03/2014" => "Carnaval", "04/03/2014" => "Carnaval", "24/03/2014" => "Memoria por la verdad y la justicia.", "02/04/2014" => "Caidos en la Guerra de Malvinas", "18/04/2014" => "Viernes Santo", "01/05/2014" => "Día del trabajador", "02/05/2014" => "Feriado Puente", "25/05/2014" => "Revolución de Mayo", "20/06/2014" => "Inmortalidad de Manuel Belgrano", "09/07/2014" => "Día de la Independencia", "18/08/2014" => "Inmortalidad de Gral. San Martín", "13/10/2014" => "Respeto por la Diversidad Cultural", "24/11/2014" => "Soberanía Nacional", "08/12/2014" => "Inmaculada Concepción de María", "25/12/2014" => "Navidad", "26/12/2014" => "Feriado Puente", "31/12/2014" => "No Trabajamos.", "01/01/2015" => "Año Nuevo", "03/03/2015" => "Carnaval", "04/03/2015" => "Carnaval", "23/03/2015" => "Feriado Puente", "24/03/2015" => "Memoria por la verdad y la justicia.", "02/04/2015" => "Caidos en la Guerra de Malvinas", "18/04/2015" => "Viernes Santo", "01/05/2015" => "Día del trabajador", "25/05/2015" => "Revolución de Mayo", "20/06/2015" => "Inmortalidad de Manuel Belgrano", "09/07/2015" => "Día de la Independencia", "18/08/2015" => "Inmortalidad de Gral. San Martín", "13/10/2015" => "Respeto por la Diversidad Cultural", "24/11/2015" => "Soberanía Nacional", "07/12/2015" => "Feriado Puente", "08/12/2015" => "Inmaculada Concepción de María", "25/12/2015" => "Navidad", "31/12/2015" => "No Trabajamos.", "01/01/2016" => "Año Nuevo", "03/03/2016" => "Carnaval", "04/03/2016" => "Carnaval", "24/03/2016" => "Memoria por la verdad y la justicia.", "02/04/2016" => "Caidos en la Guerra de Malvinas", "18/04/2016" => "Viernes Santo", "01/05/2016" => "Día del trabajador", "25/05/2016" => "Revolución de Mayo", "20/06/2016" => "Inmortalidad de Manuel Belgrano", "08/07/2016" => "Feriado Puente", "09/07/2016" => "Día de la Independencia", "18/08/2016" => "Inmortalidad de Gral. San Martín", "13/10/2016" => "Respeto por la Diversidad Cultural", "24/11/2016" => "Soberanía Nacional", "08/12/2016" => "Inmaculada Concepción de María", "09/12/2016" => "Feriado Puente", "25/12/2016" => "Navidad", "31/12/2016" => "No Trabajamos.");
     foreach ($feriados as $fecha => $feriado) {
         Feriado::create(array('fecha' => substr($fecha, 6, 4) . "-" . substr($fecha, 3, 2) . "-" . substr($fecha, 0, 2), 'feriado' => $feriado, 'created_at' => new DateTime(), 'updated_at' => new DateTime()));
     }
 }
Example #4
0
 public function get_delete($id_feriado = null)
 {
     $feriado = Feriado::find($id_feriado);
     if ($feriado->delete()) {
         return Redirect::to('backend/feriados')->with('message', 'Feriado eliminado.');
     } else {
         return Redirect::to('backend/feriados')->with('message', 'Error al eliminar el feriado.');
     }
 }
 public function generarAgenda($id, $fecha)
 {
     $errores = false;
     $agendas_general = 0;
     $dow = array('Domingo' => 0, 'Lunes' => 1, 'Martes' => 2, 'Miercoles' => 3, 'Jueves' => 4, 'Viernes' => 5, 'Sabado' => 6);
     $coe = $this->modelo->find($id);
     $fecha_ini = $fecha;
     $especialidad = $coe->especialidad;
     $odontologo = $coe->odontologo;
     $centro = $coe->centro;
     $lapso = 1;
     $fecha_fin = date("Y-m-d", strtotime("+" . $lapso . " days", strtotime($fecha_ini)));
     $agendas = array();
     if ($coe->habilitado != 1) {
         return json_encode(array('error' => true, 'listado' => "El centro-odontologo-especialidad no está habilitado"));
     }
     while (strtotime($fecha_ini) <= strtotime($fecha_fin)) {
         $f = new Feriado();
         if ($f->esFeriado($fecha_ini)) {
             //	echo "Feriado".$fecha_ini;
             $fecha_ini = date("Y-m-d", strtotime("+1 day", strtotime($fecha_ini)));
             continue;
         } elseif ($dow[$coe->dia_semana] != date('w', strtotime($fecha_ini))) {
             $fecha_ini = date("Y-m-d", strtotime("+1 day", strtotime($fecha_ini)));
             continue;
         } elseif ($coe->existeAgenda($fecha_ini)) {
             $fecha_ini = date("Y-m-d", strtotime("+1 day", strtotime($fecha_ini)));
             continue;
             //} elseif ($coe->odontologo()->existeAusencia($fecha_ini) > 0){
         } elseif ($odontologo->existeAusencia($fecha_ini) > 0) {
             $fecha_ini = date("Y-m-d", strtotime("+1 day", strtotime($fecha_ini)));
             continue;
         } else {
             $agenda = new Agenda();
             $agenda->centro_odontologo_especialidad_id = $coe->id;
             $agenda->fecha = $fecha_ini;
             $agenda->odontologo_efector_id = $odontologo->id;
             $agenda->habilitado_turnos = 1;
             $agenda->created_at = date("Y-m-d H:i:s");
             $agenda->updated_at = date("Y-m-d H:i:s");
             $agendas[] = $agenda;
         }
         $fecha_ini = date("Y-m-d", strtotime("+1 day", strtotime($fecha_ini)));
     }
     $err_agenda = true;
     $agendas_general += count($agendas);
     if (count($agendas)) {
         $err_agenda = $agenda->save();
     }
     if (!$err_agenda) {
         $errores = true;
     }
     if ($agendas_general == 0) {
         return json_encode(array('error' => true, 'listado' => "No hay agendas para generar"));
     }
     $t = $this->generarTurnos($agenda->id);
     if (!$t) {
         $errores = true;
     }
     if ($errores) {
         return json_encode(array('error' => true, 'listado' => "Se produjeron errores al generar las agendas"));
     } else {
         return json_encode(array('error' => false, 'listado' => "Se generaron las agendas"));
     }
 }
Example #6
0
 public static function addInstanceToPool(Feriado $obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = (string) $obj->getId();
         }
         self::$instances[$key] = $obj;
     }
 }
Example #7
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);
 }
Example #8
0
 function beforeRender()
 {
     $Feriado = new Feriado();
     $this->set('dferiados', $Feriado->getFeriados());
 }