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); }