/** * Reverse the migrations. * * @return void */ public function down() { Schema::create('assinaturasComerciantes', function (Blueprint $table) { $table->increments('id')->unsigned(); $table->integer('idComerciante')->unsigned(); $table->integer('idAssinatura')->unsigned(); $table->timestamps(); }); Schema::table('assinaturasComerciantes', function ($table) { $table->foreign('idComerciante')->references('id')->on('comerciantes'); $table->foreign('idAssinatura')->references('id')->on('assinaturas'); }); //voltar os dados para a tabela antiga $assi = Assinatura::all()->toArray(); foreach ($assi as $single) { $assinaCom = AssinaturaComerciante::create(['idAssinatura' => $single['id'], 'idComerciante' => $single['idComerciante']]); $assinaCom->save(); } Schema::table('assinaturas', function (Blueprint $table) { $table->dropColumn('idComerciante'); }); }
public function index() { $usuario = Auth::user(); if (Gate::allows('AcessoComerciante')) { $comerciante = Comerciante::where('idUsuario', '=', $usuario->id)->first(); $assinaturas = Assinatura::where('idComerciante', $comerciante->id)->get(); $qtdAssinaturasTotais = $assinaturas->count(); $qtdAssinaturasUsadas = 0; foreach ($assinaturas as $assinatura) { if (AssinaturaFilial::where('idAssinatura', $assinatura->id)->count() > 0) { $qtdAssinaturasUsadas++; } } $qtdAssinaturasRestantes = $qtdAssinaturasTotais - $qtdAssinaturasUsadas; $empresa = Empresa::where('idUsuario', '=', $usuario->id)->first(); $filiais = []; if ($empresa != null) { $filiais = Filial::where('idEmpresa', '=', $empresa->id)->get(); } else { //TODO: informar o usuário para cadastrar primeiro empresa e depois filial } return view('Filial.Index')->with('filiais', $filiais)->with('numero_assinaturas', $qtdAssinaturasRestantes); } }
public function atualizarVencimentoStore(Request $request) { $regras = array('selecionarPlano' => 'required|string', 'dataVencimento' => 'required|date'); $mensagens = array('selecionarPlano.required' => 'O campo Plano deve ser preenchido.', 'dataVencimento.required' => 'O campo Data Vencimento deve ser preenchido.'); $validator = Validator::make($request->all(), $regras, $mensagens); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } DB::beginTransaction(); $idComerciante = $request['id']; $assinaturaComercianteUpdate = AssinaturaComerciante::where('idComerciante', '=', $idComerciante)->first(); try { if ($assinaturaComercianteUpdate == null) { $assinatura = Assinatura::create(['dataVencimento' => $request['dataVencimento'], 'idPlano' => $request['selecionarPlano']]); $assinaturaComerciante = AssinaturaComerciante::create(['idComerciante' => $request['id'], 'idAssinatura' => $assinatura->id]); } else { $assinatura = $assinaturaComercianteUpdate->Assinatura()->first(); $assinatura->dataVencimento = $request['dataVencimento']; $assinatura->idPlano = $request['id']; $assinatura->save(); } } catch (Exception $exception) { DB::rollBack(); $errors = $validator->getMessageBag(); $errors->add('ErroException', 'Não foi possivel cadastrar o cliente.'); return redirect()->back()->withErrors($errors); } DB::commit(); Session::flash('flash_message', 'Assinatura atualizada com sucesso!'); return redirect()->back(); }
public function minhasAssinaturas() { $usuario = Auth::user(); $comerciante = Comerciante::where('idUsuario', '=', $usuario->id)->first(); $qtdAssinaturasTotais = Assinatura::where('idComerciante', $comerciante->id)->count(); $assinaturasComerciantes = Assinatura::where('idComerciante', $comerciante->id)->get(); return view('Comerciante.Assinatura')->with('qtdAssinaturas', $qtdAssinaturasTotais)->with('assinaturasComerciante', $assinaturasComerciantes); }