/**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(Request $request)
 {
     $urg_externa_id = $request->input('urg_externa_id');
     $concepto = $request->input('concepto');
     $tipo_compensa_externa = $request->input('tipo_compensa_externa');
     $proyecto_id = $request->input('proyecto_id');
     $proyecto = Proyecto::find($proyecto_id);
     $proyecto->load('fondos');
     $documento_afin = $request->input('documento_afin');
     if (empty($documento_afin)) {
         $documento_afin = 0;
     }
     $fecha = \Carbon\Carbon::now()->toDateString();
     $compensa_rm = CompensaRm::create(['documento_afin' => $documento_afin, 'fecha' => $fecha, 'tipo' => 'Externa']);
     $monto_total = 0;
     if ($request->input('rm_aplicacion') > 0) {
         $j = 0;
         foreach ($request->input('rm_aplicacion') as $rm_aplicacion) {
             $monto_aplicacion = $request->input('monto_aplicacion')[$j];
             if ($monto_aplicacion > 0) {
                 if ($tipo_compensa_externa == 'Abono') {
                     CompensaDestino::create(['compensa_rm_id' => $compensa_rm->id, 'rm_id' => $rm_aplicacion, 'monto' => $monto_aplicacion]);
                 }
                 if ($tipo_compensa_externa == 'Cargo') {
                     CompensaOrigen::create(['compensa_rm_id' => $compensa_rm->id, 'rm_id' => $rm_aplicacion, 'monto' => $monto_aplicacion]);
                 }
                 $monto_total += $monto_aplicacion;
             }
             $j++;
         }
     }
     if ($request->input('monto_nuevo_rm')[0] > 0) {
         $rm_origen_id = $request->input('rm_origen')[0];
         $rmOrigen = Rm::find($rm_origen_id);
         $k = 0;
         foreach ($request->input('rm_nuevo') as $rm_nuevo) {
             $rm = new Rm();
             $rm->rm = $rm_nuevo;
             $rm->proyecto_id = $proyecto_id;
             $rm->objetivo_id = 1;
             $rm->actividad_id = 1;
             $rm->cog_id = $request->input('cog_nuevo')[$k];
             $rm->fondo_id = $proyecto->fondos[0]->id;
             $rm->monto = 0;
             $rm->d_rm = 'Compensación #' . $compensa_rm->id;
             $rm->save();
             $monto_nuevo_rm = $request->input('monto_nuevo_rm')[$k];
             if ($monto_nuevo_rm > 0) {
                 //Insertar en compsena_destinos
                 CompensaDestino::create(['compensa_rm_id' => $compensa_rm->id, 'rm_id' => $rm->id, 'monto' => $monto_nuevo_rm]);
                 $monto_total += $monto_nuevo_rm;
             }
             $k++;
         }
     }
     $compensa_rm->compensaExternas()->create(['urg_externa_id' => $urg_externa_id, 'concepto' => $concepto, 'tipo' => $tipo_compensa_externa, 'monto' => $monto_total]);
     return redirect()->action('CompensaExternaController@index');
 }
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(Request $request)
 {
     $proyecto_id_destino = $request->input('proyecto_id_destino');
     $proyecto_destino = Proyecto::find($proyecto_id_destino);
     $proyecto_destino->load('fondos');
     $documento_afin = $request->input('documento_afin');
     if (empty($documento_afin)) {
         $documento_afin = 0;
     }
     $fecha = \Carbon\Carbon::now()->toDateString();
     $compensa_rm = CompensaRm::create(['documento_afin' => $documento_afin, 'fecha' => $fecha, 'tipo' => 'Interna']);
     $monto_total = 0;
     $i = 0;
     foreach ($request->input('rm_origen') as $rm_origen) {
         $monto_origen = $request->input('monto_origen')[$i];
         if ($monto_origen > 0) {
             //Insertar en compsena_orgienes
             CompensaOrigen::create(['compensa_rm_id' => $compensa_rm->id, 'rm_id' => $rm_origen, 'monto' => $monto_origen]);
         }
         $i++;
     }
     $j = 0;
     foreach ($request->input('rm_destino') as $rm_destino) {
         $monto_destino = $request->input('monto_destino')[$j];
         if ($monto_destino > 0) {
             //Insertar en compsena_destinos
             CompensaDestino::create(['compensa_rm_id' => $compensa_rm->id, 'rm_id' => $rm_destino, 'monto' => $monto_destino]);
         }
         $j++;
     }
     if ($request->input('monto_nuevo_rm')[0] > 0) {
         $rm_origen_id = $request->input('rm_origen')[0];
         $rmOrigen = Rm::find($rm_origen_id);
         $k = 0;
         foreach ($request->input('rm_nuevo') as $rm_nuevo) {
             $rm = new Rm();
             $rm->rm = $rm_nuevo;
             $rm->proyecto_id = $proyecto_id_destino;
             $rm->objetivo_id = $request->input('objetivo_destino');
             $rm->actividad_id = 1;
             $rm->cog_id = $request->input('cog_nuevo')[$k];
             $rm->fondo_id = $proyecto_destino->fondos[0]->id;
             $rm->monto = 0;
             $rm->d_rm = 'Compensación #' . $compensa_rm->id;
             $rm->save();
             $monto_nuevo_rm = $request->input('monto_nuevo_rm')[$k];
             if ($monto_nuevo_rm > 0) {
                 //Insertar en compsena_destinos
                 CompensaDestino::create(['compensa_rm_id' => $compensa_rm->id, 'rm_id' => $rm->id, 'monto' => $monto_nuevo_rm]);
             }
             $k++;
         }
     }
     return redirect()->action('CompensaProyectosController@index');
 }
예제 #3
0
 public static function getUserAutoriza($proyecto_id)
 {
     $urg_id = Proyecto::find($proyecto_id)->urg_id;
     $urg = Urg::find($urg_id);
     $cargo = $urg->cargos()->where('fin', '=', '0000-00-00')->first(array('user_id'));
     if ($cargo !== null) {
         $user_id = $cargo->user_id;
     } else {
         $user_id = 0;
     }
     return $user_id;
 }
 public function validarOperacion()
 {
     $operacion = true;
     $hoy = \Carbon\Carbon::today()->toDateString();
     if (!$this->proyecto_id) {
         if ($this->modelo == 'Req') {
             $this->proyecto_id = Req::where('id', $this->documento_id)->pluck('proyecto_id');
         } elseif ($this->modelo == 'Solicitud') {
             $this->proyecto_id = Solicitud::where('id', $this->documento_id)->pluck('proyecto_id');
         }
     }
     $proyecto = Proyecto::find($this->proyecto_id);
     if (empty($proyecto)) {
         return false;
     }
     $op_restrigindas = OpRestringida::where('aaaa', $proyecto->aaaa)->where('modelo', $this->modelo)->whereNested(function ($query) use($hoy) {
         $query->where('inicio', '<=', $hoy);
         //                $query->where('fin', '>=', $hoy);
     })->whereNested(function ($query) use($proyecto) {
         $query->orWhere(function ($q) use($proyecto) {
             $q->where('aplica_type', 'Guia\\Models\\TipoProyecto');
             $q->where('aplica_id', $proyecto->tipo_proyecto_id);
         });
         $query->orWhere(function ($q) use($proyecto) {
             $q->where('aplica_type', 'Guia\\Models\\Urg');
             $q->where('aplica_id', $proyecto->urg_id);
         });
         $query->orWhere(function ($q) use($proyecto) {
             $q->where('aplica_type', 'Guia\\Models\\Proyecto');
             $q->where('aplica_id', $proyecto->id);
         });
     })->get();
     if (count($op_restrigindas) > 0) {
         $operacion = false;
         $this->op_restringida = $op_restrigindas[0];
         foreach ($op_restrigindas as $restriccion) {
             $excepcion = OpExcepcion::where('op_restringida_id', $restriccion->id)->whereNested(function ($query) use($hoy) {
                 $query->where('inicio', '<=', $hoy);
                 $query->where('fin', '>=', $hoy);
             })->whereNested(function ($query) use($proyecto) {
                 $query->orWhere(function ($q) use($proyecto) {
                     $q->where('aplica_type', 'Guia\\Models\\TipoProyecto');
                     $q->where('aplica_id', $proyecto->tipo_proyecto_id);
                 });
                 $query->orWhere(function ($q) use($proyecto) {
                     $q->where('aplica_type', 'Guia\\Models\\Urg');
                     $q->where('aplica_id', $proyecto->urg_id);
                 });
                 $query->orWhere(function ($q) use($proyecto) {
                     $q->where('aplica_type', 'Guia\\Models\\Proyecto');
                     $q->where('aplica_id', $proyecto->id);
                 });
                 $query->orWhere(function ($q) {
                     $q->where('aplica_type', 'Guia\\User');
                     $q->where('aplica_id', \Auth::user()->id);
                 });
             })->get();
             if (count($excepcion) > 0) {
                 $operacion = true;
             }
         }
     }
     return $operacion;
 }