/**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(Request $request)
 {
     $transferencia = new Transferencia();
     $transferencia->codigo = $request['codigo'];
     $transferencia->fecha = $request['fecha'];
     if ($request['tip_destino'] == 3) {
         //tipo 3 agente
         $transferencia->agente_id = $request['seleccion_id'];
     }
     if ($request['tip_destino'] == 2) {
         // tipo 2 dependencia
         $transferencia->dependencia_id = $request['seleccion_id'];
     }
     if ($request['tip_destino'] == 1) {
         // tipo 2 deposito
         $transferencia->deposito_id = $request['seleccion_id'];
     }
     $transferencia->save();
     foreach ($request['id'] as $id) {
         $producto = Producto::findOrFail($id);
         $producto->tip_destino = $request['tip_destino'];
         $producto->cod_destino = $request['seleccion_id'];
         $producto->save();
         $transferencia->producto()->attach($id);
     }
     return redirect('transferencia');
 }
 /**
  * Agrega una trasferencia
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function transferencia(Request $request)
 {
     try {
         $anno = DB::table('tconfiguracion')->select('iValor')->where('vConfiguracion', 'Periodo')->where('tUsuario_idUsuario', Auth::user()->id)->first();
         if ($request->partidaDe == null || $request->partidaA == null) {
             return back()->withErrors(['errors' => 'Debe selecionar una partida de transferencia y una a la cual transferir']);
         }
         $presupuesto_partidaDe = Presupuesto_Partida::find($request->partidaDe);
         $presupuesto_partidaA = Presupuesto_Partida::find($request->partidaA);
         $usuario = Auth::user();
         //  return dd($presupuesto_partidaDe);
         if ($presupuesto_partidaDe->tPresupuesto_idPresupuesto == $presupuesto_partidaA->tPresupuesto_idPresupuesto && $presupuesto_partidaDe->tPartida_idPartida == $presupuesto_partidaA->tPartida_idPartida) {
             return Redirect::back()->withErrors(['errors' => 'No se puede realizar una transferencia a la misma partida']);
         }
         if ($presupuesto_partidaDe != null && $presupuesto_partidaA != null) {
             if ($request->iMontoTransferencia <= $presupuesto_partidaDe->iSaldo && $request->iMontoTransferencia) {
                 $transferencia = new Transferencia();
                 $transferencia->tPresupuestoPartidaDe = $presupuesto_partidaDe->id;
                 $transferencia->tPresupuestoPartidaA = $presupuesto_partidaA->id;
                 $transferencia->vDocumento = $request->vDocumento;
                 $transferencia->tUsuario_idUsuario = $usuario->id;
                 $transferencia->iMontoTransferencia = $request->iMontoTransferencia;
                 $transferencia->save();
                 //return $transferencia->idTransferencia;
                 $partidaDe = Partida::find($presupuesto_partidaDe->tPartida_idPartida);
                 $presupuestoDe = Presupuesto::find($presupuesto_partidaDe->tPresupuesto_idPresupuesto);
                 $coordinacionDe = Coordinacion::find($presupuestoDe->tCoordinacion_idCoordinacion);
                 $partidaA = Partida::find($presupuesto_partidaA->tPartida_idPartida);
                 $presupuestoA = Presupuesto::find($presupuesto_partidaA->tPresupuesto_idPresupuesto);
                 $coordinacionA = Coordinacion::find($presupuestoA->tCoordinacion_idCoordinacion);
                 $presupuesto_partidaDe->presupuestoModificado();
                 $presupuesto_partidaDe->calcularGasto();
                 $presupuesto_partidaDe->calcularSaldo();
                 $presupuesto_partidaDe->save();
                 $presupuesto_partidaA->presupuestoModificado();
                 $presupuesto_partidaA->calcularReserva();
                 $presupuesto_partidaA->calcularGasto();
                 $presupuesto_partidaA->calcularSaldo();
                 $presupuesto_partidaA->save();
                 return redirect('/transferencia/' . $transferencia->idTransferencia);
             } else {
                 return Redirect::back()->with(['anno' => $anno])->withErrors(['errors' => 'Verifique que el monto de transferencia sea menor o 
             igual al saldo de la partida de la cual esta realizando la transferencia']);
             }
         } else {
             return Redirect::back()->with(['anno' => $anno])->withErrors(['errors' => 'Verifique que el monto de transferencia sea menor o 
         igual al saldo de la partida de la cual esta realizando la transferencia']);
         }
     } catch (\Illuminate\Database\QueryException $e) {
         return Redirect::back()->withErrors(['errors' => 'El presupuesto tiene partidas asignadas']);
     }
 }