public function generarAgendas()
 {
     $coes = CentroOdontologoEspecialidad::whereNotIn('especialidad_id', function ($query) {
         $query->select('id')->from('especialidades')->where('genera_agendas', '=', 0);
     })->where('habilitado', '=', 1)->get();
     if (count($coes) == 0) {
         return json_encode(array('error' => true, 'mensaje' => "No hay agendas para generar"));
     }
     $errores = false;
     $agendas_general = 0;
     $dow = array('Domingo' => 0, 'Lunes' => 1, 'Martes' => 2, 'Miercoles' => 3, 'Jueves' => 4, 'Viernes' => 5, 'Sabado' => 6);
     foreach ($coes as $coe) {
         $fecha_ini = date('Y-m-d');
         $especialidad = $coe->especialidad;
         $odontologo = $coe->odontologo;
         $centro = $coe->centro;
         $lapso = $especialidad->lapso;
         $fecha_fin = date("Y-m-d", strtotime("+" . $lapso . " days", strtotime($fecha_ini)));
         $agendas = array();
         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 = array();
                 $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::insert($agendas);
         }
         if (!$err_agenda) {
             $errores = true;
         }
     }
     if ($agendas_general == 0) {
         return json_encode(array('error' => true, 'mensaje' => "No hay agendas para generar"));
     }
     $t = $this->generarTurnos();
     if (!$t) {
         $errores = true;
     }
     if ($errores) {
         return json_encode(array('error' => true, 'mensaje' => "Se produjeron errores al generar las agendas"));
     } else {
         return json_encode(array('error' => false, 'mensaje' => "Se generaron las agendas"));
     }
 }
 public function movimientosPaciente($paciente_id)
 {
     $pacientes_prepagas = PacientePrepaga::where('paciente_id', '=', $paciente_id)->with('ctactes')->get()->toArray();
     $movimientos = array();
     foreach ($pacientes_prepagas as $pp) {
         //var_dump($pp);die();
         $mov = $pp["ctactes"];
         $prepaga = Prepaga::find($pp["prepaga_id"]);
         foreach ($mov as $m) {
             $coe = CentroOdontologoEspecialidad::find($m["centro_odontologo_especialidad_id"]);
             $m["odontologo"] = $coe->odontologo->nombre_completo;
             $m["especialidad"] = $coe->especialidad->especialidad;
             $m["prepaga"] = $prepaga->razon_social;
             $m["prepaga_codigo"] = $prepaga->codigo;
             //	$m["saldo"] = 0;
             //$m["fecha"] = substr($m["fecha"],-2)."-".substr($m["fecha"],5,2)."-".substr($m["fecha"],0,4);
             $movimientos[] = $m;
             //$movimientos = array_merge($movimientos,$mov);
         }
     }
     return Response::json(array('error' => false, 'listado' => $movimientos), 200);
 }