Exemplo n.º 1
0
 public function getEjercicioRm($rm)
 {
     $ejercicio_rm = collect(['rm' => $rm->rm]);
     $ejercicio_rm->put('objetivo', $rm->objetivo->objetivo);
     $ejercicio_rm->put('cog', $rm->cog->cog);
     $ejercicio_rm->put('d_cog', $rm->cog->d_cog);
     $ejercicio_rm->put('presupuestado', $rm->monto);
     $compensado_origen = CompensaOrigen::where('rm_id', $rm->id)->sum('monto');
     $compensado_destino = CompensaDestino::where('rm_id', $rm->id)->sum('monto');
     $compensado = round($compensado_destino, 2) - round($compensado_origen, 2);
     $ejercicio_rm->put('compensado', $compensado);
     $rm_objeto = Rm::find($rm->id);
     $ejercido = $this->getMontoEjercido($rm_objeto);
     $ejercicio_rm->put('ejercido', $ejercido);
     $reintegros_df = $this->getMontoReintegrosDF($rm_objeto);
     $ejercicio_rm->put('reintegros_df', $reintegros_df);
     //-- Reservado --//
     $reqs_id = Req::where('proyecto_id', $rm->proyecto_id)->where('estatus', 'Autorizada')->lists('id')->all();
     $reservado_reqs = round($rm_objeto->articulos()->whereIn('req_id', $reqs_id)->sum('articulo_rm.monto'), 2);
     $solicitudes_id = Solicitud::where('proyecto_id', $rm->proyecto_id)->where('estatus', 'Autorizada')->lists('id')->all();
     $reservado_solicitudes = round($rm_objeto->solicitudes()->whereIn('solicitud_id', $solicitudes_id)->sum('rm_solicitud.monto'), 2);
     $reservado = $reservado_reqs + $reservado_solicitudes;
     $ejercicio_rm->put('reservado', $reservado);
     $saldo = $ejercicio_rm->get('presupuestado') + $ejercicio_rm->get('compensado') - $ejercicio_rm->get('ejercido') - $ejercicio_rm->get('reservado');
     $ejercicio_rm->put('saldo', round($saldo, 2));
     return $ejercicio_rm;
 }