2020-03-27 13:14:44 -03:00
|
|
|
<?php
|
|
|
|
namespace ProVM\NotariaRaby\Common\Controller\Web\Admin;
|
|
|
|
|
|
|
|
use Psr\Container\ContainerInterface as Container;
|
|
|
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
|
|
|
use Psr\Http\Message\ResponseInterface as Response;
|
2020-05-04 19:30:14 -04:00
|
|
|
use Slim\Views\Blade as View;
|
|
|
|
use Carbon\Carbon;
|
2020-03-27 13:14:44 -03:00
|
|
|
use ProVM\Common\Service\Filemanager;
|
|
|
|
|
|
|
|
class Documentos {
|
2020-05-04 19:30:14 -04:00
|
|
|
public function __invoke(Request $request, Response $response, Container $container, View $view, $tipo): Response {
|
|
|
|
$glob = implode(DIRECTORY_SEPARATOR, [
|
|
|
|
$container->get('folders.upload'),
|
|
|
|
$tipo . '*.pdf'
|
|
|
|
]);
|
|
|
|
$files = glob($glob);
|
|
|
|
$archivos = [];
|
|
|
|
foreach ($files as $filename) {
|
|
|
|
$file = new \SplFileInfo($filename);
|
|
|
|
$archivos []= $file;
|
|
|
|
}
|
|
|
|
$titulo = $tipo;
|
|
|
|
$months = (object) ['full' => [], 'short' => []];
|
|
|
|
$m = Carbon::createFromDate(0, 1, 1);
|
|
|
|
for ($i = 0; $i < 12; $i ++) {
|
|
|
|
$months->full []= ucwords($m->copy()->addMonths($i)->locale('es_ES')->isoFormat('MMMM'));
|
|
|
|
$months->short []= ucwords($m->copy()->addMonths($i)->locale('es_ES')->isoFormat('MMM'));
|
|
|
|
}
|
|
|
|
return $view->render($response, 'admin.archivos.list', compact('titulo', 'archivos', 'months'));
|
|
|
|
}
|
2020-03-27 13:14:44 -03:00
|
|
|
public function upload(Request $request, Response $response, Filemanager $filemanager, Container $container): Response {
|
|
|
|
$post = $request->getParsedBody();
|
|
|
|
$files = $request->getUploadedFiles();
|
|
|
|
$file = $files['archivo'];
|
|
|
|
|
|
|
|
$filename = implode(DIRECTORY_SEPARATOR, [
|
|
|
|
$container->get('folders.upload'),
|
2020-03-31 19:41:26 -03:00
|
|
|
$post['filename']
|
2020-03-27 13:14:44 -03:00
|
|
|
]);
|
2020-03-31 19:41:26 -03:00
|
|
|
if (isset($post['month'])) {
|
|
|
|
$filename .= '_' . implode('_', array_reverse(explode(' ', $post['month'])));
|
|
|
|
}
|
|
|
|
$filename .= '.pdf';
|
2020-03-27 13:14:44 -03:00
|
|
|
$file->moveTo($filename);
|
|
|
|
$status = (file_exists($filename) and filemtime($filename) == time());
|
|
|
|
|
|
|
|
$output = [
|
|
|
|
'informacion' => $post,
|
|
|
|
'estado' => $status,
|
|
|
|
'archivo' => $filename
|
|
|
|
];
|
|
|
|
$response->getBody()->write(json_encode($output));
|
|
|
|
return $response
|
|
|
|
->withHeader('Content-Type', 'application/json')
|
|
|
|
->withStatus(201);
|
|
|
|
}
|
2020-05-04 19:30:14 -04:00
|
|
|
public function delete(Request $request, Response $response, Container $container): Response {
|
|
|
|
$post = $request->getParsedBody();
|
|
|
|
$filename = implode(DIRECTORY_SEPARATOR, [
|
|
|
|
$container->get('folders.upload'),
|
|
|
|
$post['archivo'] . '.pdf'
|
|
|
|
]);
|
|
|
|
$status = unlink($filename);
|
|
|
|
$output = [
|
|
|
|
'informacion' => $post,
|
|
|
|
'estado' => $status,
|
|
|
|
'archivo' => $filename
|
|
|
|
];
|
|
|
|
$response->getBody()->write(json_encode($output));
|
|
|
|
return $response
|
|
|
|
->withHeader('Content-Type', 'application/json')
|
|
|
|
->withStatus(201);
|
|
|
|
}
|
2020-03-27 13:14:44 -03:00
|
|
|
}
|