예제 #1
0
 public function store()
 {
     $data = Input::all();
     $rules = array('urg_id' => 'required|numeric', 'proyecto_id' => 'required|numeric', 'etiqueta' => 'required|alpha_spaces', 'lugar_entrega' => 'required');
     $validator = Validator::make($data, $rules);
     if ($validator->passes()) {
         $req = new Req();
         $req->req = Consecutivo::nextReq();
         $req->fecha_req = Carbon\Carbon::now()->toDateString();
         $req->urg_id = Input::get('urg_id');
         $req->proyecto_id = Input::get('proyecto_id');
         $req->etiqueta = Input::get('etiqueta');
         $req->lugar_entrega = Input::get('lugar_entrega');
         $req->obs = Input::get('obs');
         $req->solicita = Auth::user()->id;
         //@todo Implementar determinación de quien autoriza
         //$req->autoriza = ;
         //$req->vobo = ;
         $req->estatus = "";
         $req->tipo_orden = "Compra";
         $req->save();
         return Redirect::action('RequisicionController@show', array($req->id));
     } else {
         return Redirect::action('RequisicionController@create')->withErrors($validator)->withInput();
     }
 }
예제 #2
0
 /**
  * Get the validation rules that apply to the request.
  *
  * @return array
  */
 public function rules()
 {
     $accion = $this->input('accion');
     $sol = \Consecutivo::nextPreReq();
     $this->merge(['sol' => $sol]);
     if (empty($accion)) {
         return ['urg_id' => 'required|integer|not_in:0', 'etiqueta' => 'required', 'lugar_entrega' => 'required'];
     } else {
         return ['accion' => 'required'];
     }
 }
예제 #3
0
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(ReqFormRequest $request)
 {
     //$data = Input::all();
     $data = $request->all();
     $req = new Req();
     $req->req = \Consecutivo::nextReq();
     $req->fecha_req = Carbon::now()->toDateString();
     $req->urg_id = $request->input('urg_id');
     $req->proyecto_id = $request->input('proyecto_id');
     $req->etiqueta = $request->input('etiqueta');
     $req->lugar_entrega = $request->input('lugar_entrega');
     $req->obs = $request->input('obs');
     $req->solicita = \Auth::user()->id;
     $req->autoriza = FirmasSolRec::getUserAutoriza($request->input('proyecto_id'));
     $req->vobo = $request->input('vobo');
     $req->estatus = "";
     $req->tipo_orden = "Compra";
     $req->save();
     return redirect()->action('RequisicionController@show', array($req->id));
 }
예제 #4
0
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(Requests\EgresoFormRequest $request)
 {
     $transferencia_bancaria = $request->input('transferencia');
     if (!isset($transferencia_bancaria)) {
         $cheque = $request->input('cheque');
         $poliza = 0;
     } else {
         $poliza = \Consecutivo::nextPolizaEgreso($request->input('cuenta_bancaria_id'));
         $cheque = 0;
     }
     $egreso = new Egreso();
     $egreso->cuenta_bancaria_id = $request->input('cuenta_bancaria_id');
     $egreso->poliza = $poliza;
     $egreso->cheque = $cheque;
     $egreso->fecha = $request->input('fecha');
     $egreso->benef_id = $request->input('benef_id');
     $egreso->cuenta_id = $request->input('cuenta_id');
     $egreso->concepto = $request->input('concepto');
     $egreso->monto = $request->input('monto');
     $egreso->user_id = \Auth::user()->id;
     $egreso->save();
     //Registro del pago del documento generador (Solicitud||Oc)
     $doc_type = $request->input('doc_type');
     $doc_id = $request->input('doc_id');
     if (!empty($doc_type) && !empty($doc_id)) {
         $documento = '';
         if ($doc_type == 'Solicitud') {
             $documento = Solicitud::find($doc_id);
         } elseif ($doc_type == 'Oc') {
             $documento = Oc::find($doc_id)->load('req');
         }
         $tipo_pago = $request->input('tipo_pago');
         if (empty($tipo_pago)) {
             $tipo_pago = 'Total';
         }
         $pago = new PagoDocumento($documento, $doc_type);
         $pago->pagarDocumento($egreso, $tipo_pago);
     }
     //Registro de monto por RM(s)
     if (count($request->input('rm_id')) > 0) {
         $i = 0;
         $monto_total = 0;
         foreach ($request->input('rm_id') as $rm_id) {
             $monto_rm = $request->input('monto_rm')[$i];
             if ($monto_rm > 0) {
                 $monto_total += $monto_rm;
                 //Insertar en egreso_rm
                 $egreso->rms()->attach($rm_id, ['monto' => $monto_rm]);
             }
             $i++;
         }
         if ($monto_total > 0) {
             $egreso->monto = $monto_total;
             $egreso->save();
         }
         $egreso_helper = new EgresoHelper($egreso);
         $egreso_helper->creaSumaPorProyecto();
     } else {
         //Fallback para solicitudes sin asignación de RM(s)
         if ($doc_type == 'Solicitud' && isset($documento)) {
             $egreso->proyectos()->attach($documento->proyecto_id, ['monto' => $request->input('monto')]);
         }
     }
     return redirect()->action('EgresosController@show', [$egreso->id]);
 }
 /**
  * Genera egreso para pago total de una solicitud u orden de compra.
  *
  * @return Response
  */
 public function store(Request $request)
 {
     if ($request->input('doc_type') == 'Solicitud') {
         $doc = Solicitud::findOrFail($request->input('doc_id'));
         $benef_id = $doc->benef_id;
         $concepto = $doc->concepto;
         $monto = $doc->monto;
         $ocultar_id = 'sol-' . $request->input('doc_id');
         $message = "Solicitud " . $request->input('doc_id') . " agregada";
     }
     if ($request->input('doc_type') == 'Oc') {
         $doc = Oc::findOrFail($request->input('doc_id'));
         $doc->load('articulos.rms');
         $benef_id = $doc->benef_id;
         $concepto = '';
         /**
          * @todo Determinar Monto de OC
          */
         $monto = 0;
         $ocultar_id = 'oc-' . $request->input('doc_id');
         $message = "Orden de Compra " . $doc->oc . " agregada";
     }
     $tipo_egreso = $request->input('tipo_egreso');
     if ($tipo_egreso == 'cheque') {
         $cheque = $request->input('cheque');
         if (empty($cheque)) {
             $cheque = \Consecutivo::nextCheque($request->input('cuenta_bancaria_id'));
         }
         $poliza = 0;
     } else {
         $poliza = \Consecutivo::nextPolizaEgreso($request->input('cuenta_bancaria_id'));
         $cheque = 0;
     }
     $egreso = new Egreso();
     $egreso->cuenta_bancaria_id = $request->input('cuenta_bancaria_id');
     $egreso->poliza = $poliza;
     $egreso->cheque = $cheque;
     $egreso->fecha = $request->input('fecha');
     $egreso->benef_id = $benef_id;
     $egreso->cuenta_id = 1;
     //Presupuesto
     $egreso->concepto = $concepto;
     $egreso->monto = $monto;
     $egreso->user_id = \Auth::user()->id;
     $egreso->save();
     if ($request->input('doc_type') == 'Solicitud') {
         $rms = $doc->rms;
         foreach ($rms as $rm) {
             $monto_rm = $rm->pivot->monto;
             $egreso->rms()->attach($rm->id, ['monto' => $monto_rm]);
         }
     } else {
         $sum_monto = 0;
         //Creación de Arreglo
         foreach ($doc->articulos as $articulo) {
             foreach ($articulo->rms as $rm) {
                 $arr_rms[$rm->id] = 0;
             }
         }
         //Suma por Rm
         foreach ($doc->articulos as $articulo) {
             foreach ($articulo->rms as $rm) {
                 $arr_rms[$rm->id] += round($rm->pivot->monto, 2);
             }
         }
         //Crea Registro
         foreach ($arr_rms as $rm_id => $monto_rm) {
             $sum_monto += $monto_rm;
             $egreso->rms()->attach($rm_id, ['monto' => $monto_rm]);
         }
         $egreso->monto = $sum_monto;
         $egreso->save();
     }
     $pago = new PagoDocumento($doc, $request->input('doc_type'));
     $pago->pagarDocumento($egreso, 'Total');
     //Inserta suma por proyecto en tabla egreso_proyecto
     $egreso_rms = $egreso->rms()->get();
     $egreso_rms = $egreso_rms->groupBy('proyecto_id');
     $egreso_rms->each(function ($item, $key) use($egreso) {
         $egreso->proyectos()->attach($key, ['monto' => $egreso->rms()->where('proyecto_id', '=', $key)->sum('egreso_rm.monto')]);
     });
     return redirect(action('GenerarEgresoController@index'))->with(['message' => 'Cheque ' . $cheque . ' Generado']);
     //        if($request->ajax()) {
     //            return response()->json([
     //                'message' => $message,
     //                'ocultar' => $ocultar_id
     //            ]);
     //        }
 }