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