Files
oficial/public/index.php
Aldarien 84d50e0209 Logging
2023-02-10 15:14:34 +00:00

117 lines
3.2 KiB
PHP

<?php
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)];
}
}
Carbon::setLocale(config('app.locale'));
setlocale(LC_TIME, 'es_ES');
sanitize();
try {
Auth::isIn();
} catch (PDOException $e) {
$logger->error($e);
header('Location: install');
die();
}
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('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'));
}
}
}
?>