evidencias acceso admin y mejora se ruta asignar plan

master
Christian Dacid Sullca Puma 2022-10-25 01:35:22 -05:00
parent 3207ce7c56
commit bb6de495db
7 changed files with 452 additions and 72 deletions

1
.gitignore vendored
View File

@ -1,7 +1,6 @@
/node_modules
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.env.backup

View File

@ -1,6 +1,7 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Evidencias;
use App\Models\plan;
@ -14,15 +15,16 @@ use Illuminate\Http\Request;
class EvidenciasController extends Controller
{
public function create(Request $request){
public function create(Request $request)
{
$request->validate([
"id_plan" => "required|integer",
"codigo" => "required",
"denominacion" => "required",
"adjunto" => "required",
]);
$id_user = auth()->user()->id;
if(plan::where(["id"=>$request->id_plan])->exists()){
$id_user = auth()->user();
if ($id_user->isCreadorPlan($request->id_plan) or $id_user->isAdmin()) {
$plan = plan::find($request->id_plan);
if ($plan->id_user == $id_user) {
$evidencia = new Evidencias();
@ -39,15 +41,13 @@ class EvidenciasController extends Controller
"message" => "Evidencia creada exitosamente",
"evidencia" => $evidencia
]);
}
else{
} else {
return response([
"status" => 0,
"message" => "No tienes permisos para crear esta Evidencia",
], 404);
}
}
else{
} else {
return response([
"status" => 0,
"message" => "No se encontro el plan",
@ -55,7 +55,8 @@ class EvidenciasController extends Controller
}
}
public function show($id){
public function show($id)
{
if (Evidencias::where("id", $id)->exists()) {
$evidencia = Evidencias::find($id);
//Para retornar nombre de user
@ -66,32 +67,31 @@ class EvidenciasController extends Controller
"msg" => "!Evidencia",
"data" => $evidencia,
]);
}
else{
} else {
return response([
"status" => 0,
"msg" => "!No se encontro el evidencia",
], 404);
}
}
public function update(Request $request){
public function update(Request $request)
{
$request->validate([
"id" => "required|integer",
"codigo" => "required",
"denominacion" => "required",
"adjunto" => "required"
]);
$id_user = auth()->user()->id;
$id_user = auth()->user();
if (Evidencias::where(["id" => $request->id])->exists()) {
$evidencia = Evidencias::find($request->id);
$plan = plan::find($evidencia->id_plan);
if($plan->id_user == $id_user){
if ($plan->id_user == $id_user->id or $id_user->isAdmin()) {
$evidencia->codigo = $request->codigo;
$evidencia->denominacion = $request->denominacion;
$path = $request->adjunto->store('evidencias');
@ -102,15 +102,13 @@ class EvidenciasController extends Controller
"status" => 1,
"message" => "Evidencia actualizada exitosamente",
]);
}
else{
} else {
return response([
"status" => 0,
"message" => "No tienes permisos para actualizar esta evidencia",
], 404);
}
}
else{
} else {
return response([
"status" => 0,
"message" => "No se encontro la evidencia",
@ -120,25 +118,23 @@ class EvidenciasController extends Controller
public function delete($id)
{
$id_user = auth()->user()->id;
$id_user = auth()->user();
if (Evidencias::where(["id" => $id])->exists()) {
$evidencia = Evidencias::find($id);
$plan = plan::find($evidencia->id_plan);
if($plan->id_user == $id_user){
if ($plan->id_user == $id_user->id or $id_user->isAdmin()) {
$evidencia->delete();
return response([
"status" => 1,
"message" => "Evidencia eliminada exitosamente",
]);
}
else{
} else {
return response([
"status" => 0,
"message" => "No tienes permisos para eliminar esta evidencia",
], 404);
}
}
else{
} else {
return response([
"status" => 0,
"message" => "No se encontro la evidencia",
@ -146,14 +142,14 @@ class EvidenciasController extends Controller
}
}
public function download($id){
public function download($id)
{
if (Evidencias::where("id", $id)->exists()) {
$evidencia = Evidencias::find($id);
$path = storage_path('app/' . $evidencia->adjunto);
//$evidencia->adjunto = download($path);
return response()->download($path);
}
else{
} else {
return response([
"status" => 0,
"msg" => "!No se encontro la evidencia",

View File

@ -15,6 +15,8 @@ use App\Models\Observaciones;
use App\Models\ProblemasOportunidades;
use App\Models\Recursos;
use App\Models\Responsables;
use Barryvdh\DomPDF\Facade\Pdf;
//plan::where(["id_user" => $id_user, "id" => $id])->exists()
class PlanController extends Controller
@ -339,6 +341,8 @@ class PlanController extends Controller
$plan->id_user = $request->id_user;
$plan->id_estandar = $request->id_estandar;
$plan->codigo = $request->codigo;
$plan->avance = 0;
$plan->estado = "Programado";
$plan->save();
return response([
"status" => 1,
@ -480,4 +484,28 @@ class PlanController extends Controller
], 404);
}
}
public function pdfPlan($id)
{
/* $id_user = auth()->user()->id;
if (plan::where("id", $id)->exists()) {
$plan = plan::find($id);
$plan->fuentes = Fuentes::where("id_plan", $id)->get(['id', 'descripcion as value']);
$plan->problemas_oportunidades = ProblemasOportunidades::where("id_plan", $id)->get(['id', 'descripcion as value']);
$plan->causas_raices = CausasRaices::where("id_plan", $id)->get(['id', 'descripcion as value']);
$plan->acciones_mejoras = AccionesMejoras::where("id_plan", $id)->get(['id', 'descripcion as value']);
$plan->recursos = Recursos::where("id_plan", $id)->get(['id', 'descripcion as value']);
$plan->metas = Metas::where("id_plan", $id)->get(['id', 'descripcion as value']);
$plan->observaciones = Observaciones::where("id_plan", $id)->get(['id', 'descripcion as value']);
$plan->responsables = Responsables::where("id_plan", $id)->get(['id', 'nombre as value']);
$plan->evidencias = Evidencias::where("id_plan", $id)->get();
$pdf = PDF::loadView('planPDF', compact('plan'));
return $pdf->download('plan.pdf');
} else {
return response([
"status" => 0,
"message" => "!No se encontro el plan de mejora",
], 404);
} */
}
}

View File

@ -6,7 +6,9 @@
"license": "MIT",
"require": {
"php": "^8.0.2",
"barryvdh/laravel-dompdf": "^2.0",
"doctrine/dbal": "^3.4",
"dompdf/dompdf": "^2.0",
"fruitcake/laravel-cors": "^3.0",
"guzzlehttp/guzzle": "^7.2",
"laravel/framework": "^9.11",

353
composer.lock generated
View File

@ -4,8 +4,85 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "514a36678675ae1c024481b92acaa8ad",
"content-hash": "ad4d8b936acfaca906125948a1f538a5",
"packages": [
{
"name": "barryvdh/laravel-dompdf",
"version": "v2.0.0",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-dompdf.git",
"reference": "1d47648c6cef37f715ecb8bcc5f5a656ad372e27"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/1d47648c6cef37f715ecb8bcc5f5a656ad372e27",
"reference": "1d47648c6cef37f715ecb8bcc5f5a656ad372e27",
"shasum": ""
},
"require": {
"dompdf/dompdf": "^2",
"illuminate/support": "^6|^7|^8|^9",
"php": "^7.2 || ^8.0"
},
"require-dev": {
"nunomaduro/larastan": "^1|^2",
"orchestra/testbench": "^4|^5|^6|^7",
"phpro/grumphp": "^1",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0-dev"
},
"laravel": {
"providers": [
"Barryvdh\\DomPDF\\ServiceProvider"
],
"aliases": {
"Pdf": "Barryvdh\\DomPDF\\Facade\\Pdf",
"PDF": "Barryvdh\\DomPDF\\Facade\\Pdf"
}
}
},
"autoload": {
"psr-4": {
"Barryvdh\\DomPDF\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Barry vd. Heuvel",
"email": "barryvdh@gmail.com"
}
],
"description": "A DOMPDF Wrapper for Laravel",
"keywords": [
"dompdf",
"laravel",
"pdf"
],
"support": {
"issues": "https://github.com/barryvdh/laravel-dompdf/issues",
"source": "https://github.com/barryvdh/laravel-dompdf/tree/v2.0.0"
},
"funding": [
{
"url": "https://fruitcake.nl",
"type": "custom"
},
{
"url": "https://github.com/barryvdh",
"type": "github"
}
],
"time": "2022-07-06T11:12:10+00:00"
},
{
"name": "brick/math",
"version": "0.10.2",
@ -643,6 +720,68 @@
],
"time": "2022-02-28T11:07:21+00:00"
},
{
"name": "dompdf/dompdf",
"version": "v2.0.1",
"source": {
"type": "git",
"url": "https://github.com/dompdf/dompdf.git",
"reference": "c5310df0e22c758c85ea5288175fc6cd777bc085"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/dompdf/dompdf/zipball/c5310df0e22c758c85ea5288175fc6cd777bc085",
"reference": "c5310df0e22c758c85ea5288175fc6cd777bc085",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-mbstring": "*",
"masterminds/html5": "^2.0",
"phenx/php-font-lib": ">=0.5.4 <1.0.0",
"phenx/php-svg-lib": ">=0.3.3 <1.0.0",
"php": "^7.1 || ^8.0"
},
"require-dev": {
"ext-json": "*",
"ext-zip": "*",
"mockery/mockery": "^1.3",
"phpunit/phpunit": "^7.5 || ^8 || ^9",
"squizlabs/php_codesniffer": "^3.5"
},
"suggest": {
"ext-gd": "Needed to process images",
"ext-gmagick": "Improves image processing performance",
"ext-imagick": "Improves image processing performance",
"ext-zlib": "Needed for pdf stream compression"
},
"type": "library",
"autoload": {
"psr-4": {
"Dompdf\\": "src/"
},
"classmap": [
"lib/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-2.1"
],
"authors": [
{
"name": "The Dompdf Community",
"homepage": "https://github.com/dompdf/dompdf/blob/master/AUTHORS.md"
}
],
"description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter",
"homepage": "https://github.com/dompdf/dompdf",
"support": {
"issues": "https://github.com/dompdf/dompdf/issues",
"source": "https://github.com/dompdf/dompdf/tree/v2.0.1"
},
"time": "2022-09-22T13:43:41+00:00"
},
{
"name": "dragonmantank/cron-expression",
"version": "v3.3.2",
@ -2174,6 +2313,75 @@
},
"time": "2022-04-15T14:02:14+00:00"
},
{
"name": "masterminds/html5",
"version": "2.7.6",
"source": {
"type": "git",
"url": "https://github.com/Masterminds/html5-php.git",
"reference": "897eb517a343a2281f11bc5556d6548db7d93947"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Masterminds/html5-php/zipball/897eb517a343a2281f11bc5556d6548db7d93947",
"reference": "897eb517a343a2281f11bc5556d6548db7d93947",
"shasum": ""
},
"require": {
"ext-ctype": "*",
"ext-dom": "*",
"ext-libxml": "*",
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.7-dev"
}
},
"autoload": {
"psr-4": {
"Masterminds\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Matt Butcher",
"email": "technosophos@gmail.com"
},
{
"name": "Matt Farina",
"email": "matt@mattfarina.com"
},
{
"name": "Asmir Mustafic",
"email": "goetas@gmail.com"
}
],
"description": "An HTML5 parser and serializer.",
"homepage": "http://masterminds.github.io/html5-php",
"keywords": [
"HTML5",
"dom",
"html",
"parser",
"querypath",
"serializer",
"xml"
],
"support": {
"issues": "https://github.com/Masterminds/html5-php/issues",
"source": "https://github.com/Masterminds/html5-php/tree/2.7.6"
},
"time": "2022-08-18T16:18:26+00:00"
},
{
"name": "monolog/monolog",
"version": "2.8.0",
@ -2667,6 +2875,96 @@
],
"time": "2022-10-17T15:20:29+00:00"
},
{
"name": "phenx/php-font-lib",
"version": "0.5.4",
"source": {
"type": "git",
"url": "https://github.com/dompdf/php-font-lib.git",
"reference": "dd448ad1ce34c63d09baccd05415e361300c35b4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/dd448ad1ce34c63d09baccd05415e361300c35b4",
"reference": "dd448ad1ce34c63d09baccd05415e361300c35b4",
"shasum": ""
},
"require": {
"ext-mbstring": "*"
},
"require-dev": {
"symfony/phpunit-bridge": "^3 || ^4 || ^5"
},
"type": "library",
"autoload": {
"psr-4": {
"FontLib\\": "src/FontLib"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-3.0"
],
"authors": [
{
"name": "Fabien Ménager",
"email": "fabien.menager@gmail.com"
}
],
"description": "A library to read, parse, export and make subsets of different types of font files.",
"homepage": "https://github.com/PhenX/php-font-lib",
"support": {
"issues": "https://github.com/dompdf/php-font-lib/issues",
"source": "https://github.com/dompdf/php-font-lib/tree/0.5.4"
},
"time": "2021-12-17T19:44:54+00:00"
},
{
"name": "phenx/php-svg-lib",
"version": "0.5.0",
"source": {
"type": "git",
"url": "https://github.com/dompdf/php-svg-lib.git",
"reference": "76876c6cf3080bcb6f249d7d59705108166a6685"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/76876c6cf3080bcb6f249d7d59705108166a6685",
"reference": "76876c6cf3080bcb6f249d7d59705108166a6685",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": "^7.1 || ^8.0",
"sabberworm/php-css-parser": "^8.4"
},
"require-dev": {
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5"
},
"type": "library",
"autoload": {
"psr-4": {
"Svg\\": "src/Svg"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-3.0"
],
"authors": [
{
"name": "Fabien Ménager",
"email": "fabien.menager@gmail.com"
}
],
"description": "A library to read, parse and export to PDF SVG files.",
"homepage": "https://github.com/PhenX/php-svg-lib",
"support": {
"issues": "https://github.com/dompdf/php-svg-lib/issues",
"source": "https://github.com/dompdf/php-svg-lib/tree/0.5.0"
},
"time": "2022-09-06T12:16:56+00:00"
},
{
"name": "phpoption/phpoption",
"version": "1.9.0",
@ -3448,6 +3746,59 @@
],
"time": "2022-09-16T03:22:46+00:00"
},
{
"name": "sabberworm/php-css-parser",
"version": "8.4.0",
"source": {
"type": "git",
"url": "https://github.com/sabberworm/PHP-CSS-Parser.git",
"reference": "e41d2140031d533348b2192a83f02d8dd8a71d30"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/e41d2140031d533348b2192a83f02d8dd8a71d30",
"reference": "e41d2140031d533348b2192a83f02d8dd8a71d30",
"shasum": ""
},
"require": {
"ext-iconv": "*",
"php": ">=5.6.20"
},
"require-dev": {
"codacy/coverage": "^1.4",
"phpunit/phpunit": "^4.8.36"
},
"suggest": {
"ext-mbstring": "for parsing UTF-8 CSS"
},
"type": "library",
"autoload": {
"psr-4": {
"Sabberworm\\CSS\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Raphael Schweikert"
}
],
"description": "Parser for CSS Files written in PHP",
"homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser",
"keywords": [
"css",
"parser",
"stylesheet"
],
"support": {
"issues": "https://github.com/sabberworm/PHP-CSS-Parser/issues",
"source": "https://github.com/sabberworm/PHP-CSS-Parser/tree/8.4.0"
},
"time": "2021-12-11T13:40:54+00:00"
},
{
"name": "symfony/console",
"version": "v6.1.6",

View File

@ -11,6 +11,10 @@ return new class extends Migration
*
* @return void
*/
//hacer null todo menos codigo, user, estandar
public function up()
{
Schema::create('plans', function (Blueprint $table) {

View File