CRUD inicial planes de mejora

master
AlexisAH 2022-07-27 00:42:33 -05:00
parent 8e7914bb38
commit e11f58ab84
37 changed files with 765 additions and 1116 deletions

View File

@ -1,52 +0,0 @@
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=prueba
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
MEMCACHED_HOST=127.0.0.1
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,3 +0,0 @@
{
"CurrentProjectSetting": null
}

View File

@ -1,10 +0,0 @@
{
"ExpandedNodes": [
"",
"\\app",
"\\app\\Models",
"\\app\\Providers"
],
"SelectedNode": "\\app\\Providers\\AppServiceProvider.php",
"PreviewInSolutionExplorer": false
}

View File

@ -1,3 +0,0 @@
{
"tasks": []
}

Binary file not shown.

View File

@ -0,0 +1,206 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\plan;
use App\Models\AccionesMejoras;
use App\Models\CausasRaices;
use App\Models\Evidencias;
use App\Models\Fuentes;
use App\Models\Metas;
use App\Models\Observaciones;
use App\Models\ProblemasOportunidades;
use App\Models\Recursos;
use App\Models\Responsables;
class PlanController extends Controller{
// Arreglar el formato de IDs
public function createPlan(Request $request){
$request->validate([
"estandar_id"=> "required|integer",
"nombre"=>"required|max:255",
"codigo"=> "required|max:11",
"fuentes"=>"required",
"fuentes.*.descripcion"=> "required",
"problemas_oportunidades"=>"required",
"problemas_oportunidades.*.descripcion"=> "required",
"causas_raices"=>"required",
"causas_raices.*.descripcion"=> "required",
"oportunidad_plan"=>"required|max:255",
"acciones_mejoras"=>"required",
"acciones_mejoras.*.descripcion"=> "required",
"semestre_ejecucion"=>"required|max:7",
"duracion"=> "required|integer",
"recursos"=>"required",
"recursos.*.descripcion"=> "required",
"metas"=>"required",
"metas.*.descripcion"=> "required",
"responsables"=>"required",
"responsables.*.nombre"=> "required",
"observaciones"=>"required",
"observaciones.*.descripcion"=> "required",
"estado"=> "required|max:30",
"evidencias_planes_mejoras"=>"required",
"evidencias_planes_mejoras.*.codigo"=> "required",
"evidencias_planes_mejoras.*.denominacion"=> "required",
"evidencias_planes_mejoras.*.encargado_id"=> "required",
"evidencias_planes_mejoras.*.adjunto"=> "required",
"evaluacion_eficacia"=> "required|boolean",
"avance"=> "required|integer",
]);
$id_user = auth()->user()->id;
$plan = new plan();
$plan->id_user = $id_user;
$plan->id_estandar = $request->estandar_id; //actualizar a estandar_id
$plan->nombre = $request->nombre;
$plan->codigo = $request->codigo;
$plan->oportunidad_plan = $request->oportunidad_plan;
$plan->semestre_ejecucion = $request->semestre_ejecucion;
$plan->duracion = $request->duracion;
$plan->estado = $request->estado;
$plan->evaluacion_eficacia = $request->evaluacion_eficacia;
$plan->avance = $request->avance;
$plan->save();
$id_plan = $plan->id;
foreach($request->fuentes as $fuente){
$fuentes_aux = new Fuentes();
$fuentes_aux->descripcion = $fuente["descripcion"];
$fuentes_aux->id_plan = $id_plan;
$fuentes_aux->save();
}
foreach($request->problemas_oportunidades as $problema){
$problemas_oportunidades_aux = new ProblemasOportunidades();
$problemas_oportunidades_aux->descripcion = $problema["descripcion"];
$problemas_oportunidades_aux->id_plan = $id_plan;
$problemas_oportunidades_aux->save();
}
foreach($request->causas_raices as $causa){
$causas_raices_aux = new CausasRaices();
$causas_raices_aux->descripcion = $causa["descripcion"];
$causas_raices_aux->id_plan = $id_plan;
$causas_raices_aux->save();
}
foreach($request->acciones_mejoras as $accion){
$acciones_mejoras_aux = new AccionesMejoras();
$acciones_mejoras_aux->descripcion = $accion["descripcion"];
$acciones_mejoras_aux->id_plan = $id_plan;
$acciones_mejoras_aux->save();
}
foreach($request->recursos as $recurso){
$recursos_aux = new Recursos();
$recursos_aux->descripcion = $recurso["descripcion"];
$recursos_aux->id_plan = $id_plan;
$recursos_aux->save();
}
foreach($request->metas as $meta){
$meta_aux = new Metas();
$meta_aux->descripcion = $meta["descripcion"];
$meta_aux->id_plan = $id_plan;
$meta_aux->save();
}
foreach($request->observaciones as $observacion){
$observaciones_aux = new Observaciones();
$observaciones_aux->descripcion = $observacion["descripcion"];
$observaciones_aux->id_plan = $id_plan;
$observaciones_aux->save();
}
/*
$evidencias_planes_mejoras = new Evidencias(); Falta completar
$responsables = new Responsables(); Falta completar
*/
return response([
"status" => 1,
"message" => "!Plan de mejora creado exitosamente",
]);
}
public function listPlan(){
$planAll = plan::select('plans.id', 'plans.codigo','plans.avance','plans.estado','estandars.name as estandar_name','users.name as user_name')
->join('estandars', 'plans.id_estandar', '=', 'estandars.id')
->join('users', 'plans.id_user', '=', 'users.id')
->orderBy('id','asc')
->get();
return response([
"status" => 1,
"message" => "!Lista de planes de mejora",
"data" => $planAll,
]);
}
public function updatePlan(Request $request, $id){
$id_user = auth()->user()->id;
if(plan::where(["id_user"=>$id_user,"id"=>$id])->exists()){
$plan = plan::find($id);
$plan->name = isset($request->name) ? $request->name : $plan->title;
$plan->save();
return response([
"status" => 1,
"message" => "!Plan de mejora actualizado",
"data" => $plan,
]);
}
else{
return response([
"status" => 0,
"message" => "!No se encontro el plan o no esta autorizado",
],404);
}
}
public function deletePlan($id){
$id_user = auth()->user()->id;
if(plan::where(["id"=>$id,"id_user"=>$id_user])->exists()){
$plan = plan::where(["id"=>$id,"id_user"=>$id_user])->first();
$plan->delete();
return response([
"status" => 1,
"message" => "!Plan de mejora eliminado",
]);
}
else{
return response([
"status" => 0,
"message" => "!No se encontro el plan de mejora o no esta autorizado",
],404);
}
}
public function showPlan($id){
if(plan::where("id",$id)->exists()){
$plan = plan::find($id);
return response([
"status" => 1,
"message" => "!plan",
"data" => $plan,
]);
}
else{
return response([
"status" => 0,
"message" => "!No se encontro el plan de mejora",
],404);
}
}
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class AccionesMejoras extends Model
{
use HasFactory;
public $timestamps = false;
protected $table ='acciones_mejoras';
protected $fillable = [
'descripcion',
];
public function plans(){
return $this->belongsTo(plan::class,'id_plan');
}
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class CausasRaices extends Model
{
use HasFactory;
public $timestamps = false;
protected $table ='causas_raices';
protected $fillable = [
'descripcion',
];
public function plans(){
return $this->belongsTo(plan::class,'id_plan');
}
}

View File

@ -10,7 +10,6 @@ class Estandar extends Model
use HasFactory;
public $timestamps = false;
protected $table ='estandars';
protected $fillable = [
'name',
@ -21,9 +20,7 @@ class Estandar extends Model
return $this->belongsTo(User::class,'id_user');
}
public function plans(){
return $this->hasMany(Plan::class,'id');
}
public function evidencias(){
return $this->hasMany(Evidencia::class,'id');
return $this->hasMany(plan::class,'id');
}
}

View File

@ -5,7 +5,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class evidencia extends Model
class Evidencias extends Model
{
use HasFactory;
@ -23,8 +23,8 @@ class evidencia extends Model
public function users(){
return $this->belongsTo(User::class,'id_user');
}
public function estandars(){
return $this->belongsTo(Estandar::class,'id_estandar');
public function plans(){
return $this->belongsTo(plan::class,'id_plan');
}
}

21
app/Models/Fuentes.php Normal file
View File

@ -0,0 +1,21 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Fuentes extends Model
{
use HasFactory;
public $timestamps = false;
protected $table ='fuentes';
protected $fillable = [
'descripcion',
];
public function plans(){
return $this->belongsTo(plan::class,'id_plan');
}
}

21
app/Models/Metas.php Normal file
View File

@ -0,0 +1,21 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Metas extends Model
{
use HasFactory;
public $timestamps = false;
protected $table ='metas';
protected $fillable = [
'descripcion',
];
public function plans(){
return $this->belongsTo(plan::class,'id_plan');
}
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Observaciones extends Model
{
use HasFactory;
public $timestamps = false;
protected $table ='observaciones';
protected $fillable = [
'descripcion',
];
public function plans(){
return $this->belongsTo(plan::class,'id_plan');
}
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ProblemasOportunidades extends Model
{
use HasFactory;
public $timestamps = false;
protected $table ='problemas_oportunidades';
protected $fillable = [
'descripcion',
];
public function plans(){
return $this->belongsTo(plan::class,'id_plan');
}
}

21
app/Models/Recursos.php Normal file
View File

@ -0,0 +1,21 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Recursos extends Model
{
use HasFactory;
public $timestamps = false;
protected $table ='recursos';
protected $fillable = [
'descripcion',
];
public function plans(){
return $this->belongsTo(plan::class,'id_plan');
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Responsables extends Model
{
use HasFactory;
public $timestamps = false;
protected $table ='responsables';
protected $fillable = [
'nombre',
];
public function responsablesplanesmejora(){
return $this->hasmany(ResponsablesPlanesMejora::class,'id');
}
}

View File

@ -0,0 +1,20 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ResponsablesPlanesMejora extends Model
{
use HasFactory;
protected $table ='responsables_planes_mejoras';
protected $fillable = [ ];
public function responsables(){
return $this->belongsTo(Responsables::class,'id_responsable');
}
public function plans(){
return $this->belongsTo(plan::class,'id_plan');
}
}

View File

@ -33,5 +33,4 @@ class User extends Authenticatable
public function evidencias(){
return $this->hasMany(Evidencia::class,'id');
}
}

View File

@ -13,13 +13,13 @@ class plan extends Model
protected $table ='plans';
protected $fillable = [
'codigo',
'name',
'oportunidad',
'semestre',
'nombre',
'oportunidad_plan',
'semestre_ejecucion',
'duracion',
'estado',
'avance',
'evaluacion',
'evaluacion_eficacia',
];
@ -30,5 +30,31 @@ class plan extends Model
public function estandars(){
return $this->belongsTo(Estandar::class,'id_estandar');
}
public function fuentes(){
return $this->hasMany(Fuentes::class,'id');
}
public function metas(){
return $this->hasMany(Metas::class,'id');
}
public function recursos(){
return $this->hasMany(Recursos::class,'id');
}
public function observaciones(){
return $this->hasMany(Observaciones::class,'id');
}
public function problemasOportunidade(){
return $this->hasMany(ProblemasOportunidades::class,'id');
}
public function accionesMejoras(){
return $this->hasMany(AccionesMejoras::class,'id');
}
public function causasRaices(){
return $this->hasMany(causasRaices::class,'id');
}
public function responsablesplanesmejora(){
return $this->hasMany(ResponsablesPlanesMejora::class,'id');
}
//
}

View File

@ -15,7 +15,7 @@ return new class extends Migration
{
Schema::create('estandars', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('name'); //cambiar el name por nombre
//$table->foreign('id_user')->references('id')->on('users');
$table->foreignId('id_user')
->constrained('users');

View File

@ -16,16 +16,18 @@ return new class extends Migration
Schema::create('plans', function (Blueprint $table) {
$table->id();
$table->string('codigo', 11);
$table->string('name');
$table->string('oportunidad');
$table->string('semestre', 6);
$table->string('nombre');
$table->string('oportunidad_plan');
$table->string('semestre_ejecucion', 7);
$table->integer('avance');
$table->integer('duracion');
$table->string('estado', 20);
$table->boolean('eficacia');
$table->string('estado', 30);
$table->boolean('evaluacion_eficacia');
$table->foreignId('id_estandar')
->constrained('estandars');
$table->foreignId('id_user')
->constrained('users');
});
}

View File

@ -17,11 +17,12 @@ return new class extends Migration
$table->id();
$table->string('codigo', 16);
$table->string('denominacion');
$table->string('oportunidad');
$table->string('adjunto');
$table->foreignId('id_user')
->constrained('users');
$table->foreignId('id_estandar')
->constrained('estandars');
$table->foreignId('id_plan')
->constrained('plans')
->onDelete('cascade');
});
}

View File

@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('fuentes', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->string('descripcion');
$table->foreignId('id_plan')
->constrained('plans')
->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('fuentes');
}
};

View File

@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('metas', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->string('descripcion');
$table->foreignId('id_plan')
->constrained('plans')
->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('metas');
}
};

View File

@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('recursos', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->string('descripcion');
$table->foreignId('id_plan')
->constrained('plans')
->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('recursos');
}
};

View File

@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('observaciones', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->string('descripcion');
$table->foreignId('id_plan')
->constrained('plans')
->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('observaciones');
}
};

View File

@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('problemas_oportunidades', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->string('descripcion');
$table->foreignId('id_plan')
->constrained('plans')
->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('problemas_oportunidades');
}
};

View File

@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('acciones_mejoras', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->string('descripcion');
$table->foreignId('id_plan')
->constrained('plans')
->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('acciones_mejoras');
}
};

View File

@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('causas_raices', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->string('descripcion');
$table->foreignId('id_plan')
->constrained('plans')
->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('causas_raices');
}
};

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('responsables', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->string('nombre');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('responsables');
}
};

View File

@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('responsables_planes_mejoras', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->foreignId('id_plan')
->constrained('plans')
->onDelete('cascade');
$table->foreignId('id_responsable')
->constrained('responsables');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('responsables_planes_mejoras');
}
};

View File

@ -4,6 +4,7 @@ use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;
use App\Http\Controllers\Api\EstandarController;
use App\Http\Controllers\Api\PlanController;
Route::post('register', [UserController::class, 'register']);
Route::post('login', [UserController::class, 'login']);
@ -20,13 +21,13 @@ Route::middleware("auth:sanctum")->group (function(){
Route::put('estandar/{id}', [EstandarController::class,'updateEstandar']);
Route::delete('estandar/{id}', [EstandarController::class,'deleteEstandar']);
/*Route::controller(EstandarController::class)->group(function(){
Route::post('estandar/create', 'createEstandar');
Route::get('estandar/list', 'listEstandar');
Route::get('estandar/{id}', 'showEstandar');
Route::put('estandar/update/{id}', 'updateEstandar');
Route::delete('estandar/delete/{id}', 'deleteEstandar');
});*/
//rutas plan
Route::post('plan',[PlanController::class,'createPlan']);
Route::get('plan',[PlanController::class,'listPlan']);
Route::get('plan/{id}',[PlanController::class,'showPlan']);
Route::delete('plan/{id}',[PlanController::class,'deletePlan']);
#Route::put('plan/{id}',[PlanController::class,'updatePlan']);
});
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {

View File

@ -12,7 +12,6 @@ use Illuminate\Support\Facades\Route;
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
return ['APP' => 'Sistema Gestor de Calidad de la Escuela de Relaciones Industriales'];
});