diff --git a/bootstrap/errors.php b/bootstrap/errors.php index dca55eb..0e54dc4 100644 --- a/bootstrap/errors.php +++ b/bootstrap/errors.php @@ -1,7 +1,7 @@ pushHandler(new \Whoops\Handler\PrettyPageHandler); $whoops->register(); -} -?> \ No newline at end of file +}*/ +?> diff --git a/public/index.php b/public/index.php index e93e8eb..fa4bae0 100644 --- a/public/index.php +++ b/public/index.php @@ -2,11 +2,27 @@ use Carbon\Carbon; use Incoviba\old\Proyecto\Proyecto; use App\Contract\Auth; +use Monolog\Level; +use Monolog\Handler; +use Monolog\Processor; +use Monolog\Formatter; include_once dirname(__DIR__) . '/bootstrap/autoload.php'; header("Access-Control-Allow-Origin: *"); +$logger = new Monolog\Logger('global'); +$logger->pushHandler(new Handler\RotatingFileHandler('/logs/php.log')); +$handler = new Handler\NativeMailerHandler('jpvial@incoviba.cl', 'Incoviba Error', 'alert@incoviba.cl'); +$handler->setFormatter(new Formatter\HtmlFormatter()); +$logger->pushHandler(new Handler\FilterHandler($handler, Level::Error)); +$logger->pushProcessor(new Processor\PsrLogMessageProcessor()); +$logger->pushProcessor(new Processor\IntrospectionProcessor()); +$logger->pushProcessor(new Processor\WebProcessor()); +$logger->pushProcessor(new Processor\MemoryPeakUsageProcessor()); + +Monolog\ErrorHandler::register($logger); + if (config('app.debug') == true) { if (config('app.benchmark') == true) { $benchmark = (object) ['time' => microtime(true)]; @@ -21,65 +37,77 @@ sanitize(); try { Auth::isIn(); } catch (PDOException $e) { + $logger->error($e); header('Location: install'); die(); } -if (Auth::isIn()) { - if ((get('p') !== false or get('page') !== false or get('m') !== false or get('module') !== false)) { - if (($route = route()) !== false) { + + +try { + if (Auth::isIn()) { + if ((get('p') !== false or get('page') !== false or get('m') !== false or get('module') !== false)) { + if (($route = route()) !== false) { + echo $route; + } else { + echo view('construccion'); + } + } else { + $proyectos = model(Proyecto::class)->findMany(); + $dias = []; + $cierres = []; + $pendientes = 0; + $hoy = 0; + foreach ($proyectos as $proyecto) { + $pendientes += $proyecto->cuotasPendientes(); + $hoy += $proyecto->cuotasHoy(); + foreach ($proyecto->cuotasMes() as $cuota) { + $f = $cuota->pago()->fecha(); + if ($f->isoWeekday() == 6 or $f->isoWeekDay() == 7) { + $f = $f->copy()->addDays(2)->startOfWeek(); + } + $dia = $f->format('Y-m-d'); + if (!isset($dias[$dia])) { + $dias[$dia] = [$proyecto->descripcion => 0]; + } + if (!isset($dias[$dia][$proyecto->descripcion])) { + $dias[$dia][$proyecto->descripcion] = 0; + } + $dias[$dia][$proyecto->descripcion] ++; + } + if (count($proyecto->cierres()) > 0) { + $cierres[$proyecto->descripcion] = (object) ['total' => count($proyecto->cierres()),'vigentes' => $proyecto->cierres(3), 'rechazados' => $proyecto->cierres(-1), 'pendientes' => $proyecto->cierres(2)]; + } + } + uksort($dias, function($a, $b) { + return strcmp($a, $b); + }); + uksort($cierres, function($a, $b) { + return strcmp($a, $b); + }); + echo view('home', compact('pendientes', 'hoy', 'dias', 'cierres')); + } + } elseif (get('p') == 'auth' or get('page') == 'auth') { + $route = route(); + if ($route !== false) { echo $route; } else { - echo view('construccion'); + echo view('guest'); } - } else { - $proyectos = model(Proyecto::class)->findMany(); - $dias = []; - $cierres = []; - $pendientes = 0; - $hoy = 0; - foreach ($proyectos as $proyecto) { - $pendientes += $proyecto->cuotasPendientes(); - $hoy += $proyecto->cuotasHoy(); - foreach ($proyecto->cuotasMes() as $cuota) { - $f = $cuota->pago()->fecha(); - if ($f->isoWeekday() == 6 or $f->isoWeekDay() == 7) { - $f = $f->copy()->addDays(2)->startOfWeek(); - } - $dia = $f->format('Y-m-d'); - if (!isset($dias[$dia])) { - $dias[$dia] = [$proyecto->descripcion => 0]; - } - if (!isset($dias[$dia][$proyecto->descripcion])) { - $dias[$dia][$proyecto->descripcion] = 0; - } - $dias[$dia][$proyecto->descripcion] ++; - } - if (count($proyecto->cierres()) > 0) { - $cierres[$proyecto->descripcion] = (object) ['total' => count($proyecto->cierres()),'vigentes' => $proyecto->cierres(3), 'rechazados' => $proyecto->cierres(-1), 'pendientes' => $proyecto->cierres(2)]; - } - } - uksort($dias, function($a, $b) { - return strcmp($a, $b); - }); - uksort($cierres, function($a, $b) { - return strcmp($a, $b); - }); - echo view('home', compact('pendientes', 'hoy', 'dias', 'cierres')); - } -} elseif (get('p') == 'auth' or get('page') == 'auth') { - $route = route(); - if ($route !== false) { - echo $route; } else { echo view('guest'); } -} else { - echo view('guest'); +} catch (Exception $e) { + $logger->warning($e); + echo ""; +} catch (Error $e) { + $logger->error($e); + echo ""; } if (config('app.debug') == 'true') { if (config('app.benchmark') == 'true') { $benchmark->time = microtime(true) - $benchmark->time; + $logger->debug("Time {$benchmark->time}"); if (get('ajax') != '1' and get('p') != 'ajax' and get('p') != 'informes') { echo view('benchmark', compact('benchmark')); }