示例#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;
 }
 private function registrarPagoSolicitud($pago_sol_legacy)
 {
     //Encontrar solicitud_id
     $solicitud_id = Solicitud::where('obs', 'LIKE', '% #SIGI: ' . $pago_sol_legacy->solicitud_id)->pluck('id');
     if (!empty($solicitud_id)) {
         //Enconrar egreso_id
         $cuenta_bancaria_id = $this->getCuentaBancariaId($pago_sol_legacy->cta_b);
         if (!empty($cuenta_bancaria_id)) {
             $egreso = Egreso::where('cuenta_bancaria_id', '=', $cuenta_bancaria_id);
             if ($pago_sol_legacy->tipo == 'ch') {
                 $egreso->where('cheque', '=', $pago_sol_legacy->poliza);
             } else {
                 $egreso->where('poliza', '=', $pago_sol_legacy->poliza);
             }
             $egreso = $egreso->first();
             if (empty($egreso->id)) {
                 dd('Egreso no encontrado ' . $pago_sol_legacy->poliza);
             }
             //Crear Relación
             $egreso->solicitudes()->attach($solicitud_id);
         }
     } else {
         dd('No se encontró la Solicitud ' . $pago_sol_legacy->solicitud_id);
     }
 }
示例#3
0
 private function getMontoReservado(Proyecto $proyecto)
 {
     $reqs_id = Req::where('proyecto_id', $proyecto->id)->where('estatus', 'Autorizada')->lists('id')->all();
     $articulos = Articulo::whereIn('req_id', $reqs_id)->with('rms')->get();
     $reservado_reqs = $articulos->sum('articulo_rm.monto');
     //$reservado_reqs = round($rm_objeto->articulos()->whereIn('req_id', $reqs_id)->sum('articulo_rm.monto'),2);
     $reservado_solicitudes = round(Solicitud::where('proyecto_id', $proyecto->id)->where('estatus', 'Autorizada')->sum('monto'), 2);
     $montoReservado = $reservado_reqs + $reservado_solicitudes;
     return round($montoReservado, 2);
 }
 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;
 }