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(); } }
/** * 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']; } }
/** * 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)); }
/** * 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 // ]); // } }