Actualizacion de ShowPlan+ return Evidencias

master
Christian Dacid Sullca Puma 2022-08-23 21:24:20 -05:00
parent 604f8dc585
commit 4d6f1c7ddc
1 changed files with 13 additions and 185 deletions

View File

@ -15,177 +15,10 @@ use App\Models\Observaciones;
use App\Models\ProblemasOportunidades; use App\Models\ProblemasOportunidades;
use App\Models\Recursos; use App\Models\Recursos;
use App\Models\Responsables; use App\Models\Responsables;
use App\Models\Estandar;
class PlanController extends Controller{ class PlanController extends Controller{
public function update(Request $request,$id){
//Actualizamos los atributos propios
$plan = plan::find($id);
$plan -> update([
//"codigo" => $request->codigo,
"nombre" => $request->nombre,
"oportunidad_plan" => $request->oportunidad_plan,
"semestre_ejecucion" => $request->semestre_ejecucion,
"duracion" => $request->duracion,
"estado" => $request->estado,
"evaluacion_eficacia" => $request->evaluacion_eficacia,
"avance" => $request->avance,
]);
//Actualizar estandar
$estandar = Estandar::find($request->estandar_id);
if(isset($estandar)){
$plan->estandars()->associate($estandar);
}
/*-------------------------------Fuentes------------------------------*/
$fuentes = $request->fuentes;
//Eliminar fuentes que no esten en el Request
$existingsIds = collect($fuentes)->pluck('id')->filter();
$plan->fuentes()->whereNotIn('id', $existingsIds)->delete();
//Actualizar fuentes de estandar
if(isset($fuentes)){
foreach($fuentes as $fuente){
$plan->fuentes()->updateOrCreate(
[
"id" => $fuente['id']
],
[
"descripcion" => $fuente['value'],
"id_plan"=> $plan->id
]);
}
}
/*----------------------------Problemas-------------------------------*/
$problemas = $request->problemas;
//Eliminar problemas que no esten en el Request
$existingsIds = collect($problemas)->pluck('id')->filter();
$plan->problemasOportunidade()->whereNotIn('id', $existingsIds)->delete();
//Actualizar problemas de estandar
if(isset($problemas)){
foreach($problemas as $problema){
$plan->problemasOportunidade()->updateOrCreate(
[
"id" => $problema['id']
],
[
"descripcion" => $problema['value'],
"id_plan"=> $plan->id
]);
}
}
/*--------------------------------Causas-------------------------------*/
$causas = $request->causas;
//Eliminar causas que no esten en el Request
$existingsIds = collect($causas)->pluck('id')->filter();
$plan->causasRaices()->whereNotIn('id', $existingsIds)->delete();
//Actualizar causas de estandar
if(isset($causas)){
foreach($causas as $causa){
$plan->causasRaices()->updateOrCreate(
[
"id" => $causa['id']
],
[
"descripcion" => $causa['value'],
"id_plan"=> $plan->id
]);
}
}
/*------------------------------Acciones-------------------------------*/
$acciones = $request->acciones;
//Eliminar acciones que no esten en el Request
$existingsIds = collect($acciones)->pluck('id')->filter();
$plan->accionesMejoras()->whereNotIn('id', $existingsIds)->delete();
//Actualizar acciones de estandar
if(isset($acciones)){
foreach($acciones as $accion){
$plan->accionesMejoras()->updateOrCreate(
[
"id" => $accion['id']
],
[
"descripcion" => $accion['value'],
"id_plan"=> $plan->id
]);
}
}
/*------------------------------Recursos-------------------------------*/
$recursos = $request->recursos;
//Eliminar recursos que no esten en el Request
$existingsIds = collect($recursos)->pluck('id')->filter();
$plan->recursos()->whereNotIn('id', $existingsIds)->delete();
//Actualizar recursos de estandar
if(isset($recursos)){
foreach($recursos as $recurso){
$plan->recursos()->updateOrCreate(
[
"id" => $recurso['id']
],
[
"descripcion" => $recurso['value'],
"id_plan"=> $plan->id
]);
}
}
/*--------------------------------Metas-------------------------------*/
$metas = $request->metas;
//Eliminar metas que no esten en el Request
$existingsIds = collect($metas)->pluck('id')->filter();
$plan->metas()->whereNotIn('id', $existingsIds)->delete();
//Actualizar metas de estandar
if(isset($metas)){
foreach($metas as $meta){
$plan->metas()->updateOrCreate(
[
"id" => $meta['id']
],
[
"descripcion" => $meta['value'],
"id_plan"=> $plan->id
]);
}
}
/*---------------------------Responsables-------------------------------*/
$responsables = $request->responsables;
//Eliminar responsables que no esten en el Request
$existingsIds = collect($responsables)->pluck('id')->filter();
$plan->responsables()->whereNotIn('id', $existingsIds)->delete();
//Actualizar responsables de estandar
if(isset($responsables)){
foreach($responsables as $responsable){
$plan->responsables()->updateOrCreate(
[
"id" => $responsable['id']
],
[
"nombre" => $responsable['value'],
"id_plan"=> $plan->id
]);
}
}
/*--------------------------Observaciones-------------------------------*/
$observaciones = $request->observaciones;
//Eliminar observaciones que no esten en el Request
$existingsIds = collect($observaciones)->pluck('id')->filter();
$plan->observaciones()->whereNotIn('id', $existingsIds)->delete();
//Actualizar observaciones de estandar
if(isset($observaciones)){
foreach($observaciones as $observacion){
$plan->observaciones()->updateOrCreate(
[
"id" => $observacion['id']
],
[
"descripcion" => $observacion['value'],
"id_plan"=> $plan->id
]);
}
}
return response()->json($plan, 200);
}
// Arreglar el formato de IDs // Arreglar el formato de IDs
public function createPlan(Request $request){ public function createPlan(Request $request){
$request->validate([ $request->validate([
@ -218,11 +51,6 @@ class PlanController extends Controller{
"observaciones"=>"present", "observaciones"=>"present",
"observaciones.*.descripcion"=> "required", "observaciones.*.descripcion"=> "required",
"estado"=> "present|max:30", "estado"=> "present|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"=> "present|boolean", "evaluacion_eficacia"=> "present|boolean",
"avance"=> "present|integer" "avance"=> "present|integer"
]); ]);
@ -301,9 +129,7 @@ class PlanController extends Controller{
$responsable_aux ->id_plan = $id_plan; $responsable_aux ->id_plan = $id_plan;
$responsable_aux ->save(); $responsable_aux ->save();
} }
/*
$evidencias_planes_mejoras = new Evidencias(); Falta completar
*/
return response([ return response([
"status" => 1, "status" => 1,
@ -311,7 +137,6 @@ class PlanController extends Controller{
]); ]);
} }
//falta funcion filtrar por estandares
public function listPlan(){ public function listPlan(){
$id_user = auth()->user()->id; $id_user = auth()->user()->id;
@ -371,6 +196,7 @@ class PlanController extends Controller{
} }
} }
public function deletePlan($id){ public function deletePlan($id){
$id_user = auth()->user()->id; $id_user = auth()->user()->id;
if(plan::where(["id"=>$id,"id_user"=>$id_user])->exists()){ if(plan::where(["id"=>$id,"id_user"=>$id_user])->exists()){
@ -388,6 +214,7 @@ class PlanController extends Controller{
],404); ],404);
} }
} }
//faltas completar //faltas completar
public function showPlan($id){ public function showPlan($id){
if(plan::where("id",$id)->exists()){ if(plan::where("id",$id)->exists()){
@ -401,6 +228,7 @@ class PlanController extends Controller{
$plan->observaciones = Observaciones::where("id_plan",$id)->get(); $plan->observaciones = Observaciones::where("id_plan",$id)->get();
$plan->evidencias_planes_mejoras = Evidencias::where("id_plan",$id)->get(); $plan->evidencias_planes_mejoras = Evidencias::where("id_plan",$id)->get();
$plan->responsables = Responsables::where("id_plan",$id)->get(); $plan->responsables = Responsables::where("id_plan",$id)->get();
$plan->evidencias = Evidencias::where("id_plan",$id)->get();
return response([ return response([
"status" => 1, "status" => 1,
"message" => "!Plan de mejora encontrado", "message" => "!Plan de mejora encontrado",