public function run()
 {
     $faker = Faker::create('pt_BR');
     $clientes = Cliente::all();
     $clientes_id = array();
     foreach ($clientes as $cliente) {
         $clientes_id[] = $cliente['id'];
     }
     $conversas = Conversa::all();
     $conversas_id = array();
     foreach ($conversas as $conversa) {
         $conversas_id[] = $conversa['id'];
     }
     foreach (User::all() as $user) {
         foreach (range(1, 10) as $index) {
             Tarefa::create(['icon' => 'fa-star', 'title' => 'Tarefa #' . $index . ' de ' . $user->username, 'description' => 'Descrição da tarefa #' . $index, 'date' => '2015-06-21', 'time' => '08:' . number_format($index, '2'), 'cliente_id' => NULL, 'conversa_id' => NULL, 'notification_id' => NULL, 'category_id' => '', 'owner_id' => $user->id, 'done' => false]);
         }
     }
 }
 public function run()
 {
     $faker = Faker::create('pt_BR');
     $clientes = Cliente::all();
     foreach ($clientes as $cliente) {
         $clientes_id[] = $cliente['id'];
     }
     $tarefas = Tarefa::all();
     foreach ($tarefas as $tarefa) {
         $tarefas_id[] = $tarefa['id'];
     }
     $relatorios = Relatorio::all();
     foreach ($relatorios as $relatorio) {
         $relatorios_id[] = $relatorio['id'];
     }
     foreach (range(1, 230) as $index) {
         $random_cliente_id = array_rand($clientes_id, 1);
         $random_tarefa_id = array_rand($tarefas_id, 1);
         Conversa::create(['data' => $faker->dateTime(), 'resumo' => $faker->text(50), 'cliente_id' => $random_cliente_id, 'tarefa_id' => $random_tarefa_id, 'relatorio_id' => '']);
     }
 }
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show($id)
 {
     // Cliente
     $cliente = Cliente::find($id);
     $pedidos = Pedido::where('cliente_id', $cliente->id)->orderBy('created_at', 'desc')->with(['fornecedor'])->get();
     $conversas = Conversa::where('cliente_id', $cliente->id)->orderBy('created_at', 'desc')->get();
     $cliente->pedidos = $pedidos;
     $cliente->conversas = $conversas;
     if ($cliente) {
         $pedidos = $cliente->pedidos();
         $tarefas = Tarefa::where('cliente_id', $cliente->id)->paginate(Input::get('perpage', 10));
         $tarefas->days = $tarefas->groupBy(function ($tarefa) {
             return date('Y-m-d', strtotime($tarefa->start));
         });
         $hoje = date('Y-m-d');
         $ontem = Carbon::create(date('Y'), date('m'), date('d'))->subDay();
         $amanha = Carbon::create(date('Y'), date('m'), date('d'))->addDay();
         $proximo = Carbon::create(date('Y'), date('m'), date('d'))->addDay();
         //Igual amanhã
         if ($proximo->isWeekend()) {
             $proximo = new Carbon('next monday');
         }
         $tarefas->pendentes = Tarefa::where('cliente_id', $cliente->id)->where('date', '<', $hoje)->where('done', 0)->orderBy('date', 'DESC')->get();
         $tarefas->hoje = Tarefa::where('cliente_id', $cliente->id)->where('date', '<', $amanha->startOfDay())->where('date', '>', $ontem)->where('done', 0)->get();
         $tarefas->nextDay = Tarefa::where('cliente_id', $cliente->id)->where('done', 0)->where('date', '>=', $amanha)->where('date', '<', $proximo->addDay())->orderBy('date', 'DESC')->get();
         $tarefas->proximas = Tarefa::where('cliente_id', $cliente->id)->where('date', '>=', $amanha->startOfDay())->where('done', 0)->orderBy('date', 'ASC')->get();
         $tarefas->concluidas = Tarefa::where('cliente_id', $cliente->id)->where('done', 1)->orderBy('updated_at', 'DESC')->get();
         // show the view and pass the cliente to it
         return View::make('clientes.show', compact('cliente', 'tarefas'));
         //->with( 'pedidos', $cliente->pedidos() );
     } else {
         $alert[] = ['class' => 'alert-warning', 'message' => 'O cliente que você procura não existe!'];
         Session::flash('alerts', $alert);
         return Redirect::to('clientes');
     }
 }
 /**
  * Remove the specified conversa from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     Conversa::destroy($id);
     $alert[] = ['class' => 'alert-success', 'message' => '<strong><i class="fa fa-check"></i></strong> Conversa excluída!'];
     Session::flash('alerts', $alert);
     return Redirect::to(URL::previous());
 }
 /**
  * Status atual dos itens
  *
  * @param  string $resource_name
  * @return Response
  */
 public function status($resource_name = NULL)
 {
     // TIPO DE RELATÓRIO
     switch ($resource_name) {
         /*
         	DESPESAS
         */
         case 'despesas':
             $items = Despesa::all();
             break;
             /*
             	CONVERSAS
             */
         /*
         	CONVERSAS
         */
         case 'conversas':
             $items = Conversa::all();
             break;
         default:
             return $items = array();
             break;
     }
     // STATUS
     $status['total'] = count($items);
     $status['nao_enviadas'] = $items->filter(function ($item) {
         if (isset($item->relatorio_id) and $item->relatorio_id < 1) {
             return $item;
         }
     });
     $status['nao_enviadas'] = count($status['nao_enviadas']);
     // RETURN
     return $status;
 }
 /**
  * Update the specified tarefa in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id)
 {
     $tarefa = Tarefa::with('notifications')->find($id);
     $validator = Validator::make($data = Input::all(), Tarefa::$rules);
     if ($validator->fails()) {
         return Redirect::back()->withErrors($validator)->withInput();
     }
     if (@$data['done'] == 1) {
         $tarefa->done = 1;
         Conversa::create(['tarefa_id' => $tarefa->id, 'cliente_id' => @$tarefa->cliente_id, 'resumo' => '<strong><i class="fa fa-check"></i> Tarefa ' . $tarefa->id . ' concluída!</strong><br/>']);
     } else {
         $tarefa->done = 0;
     }
     $tarefa->update($data);
     $alert[] = ['class' => 'alert-success', 'message' => '<strong><i class="fa fa-check"></i></strong> Salvo!'];
     Session::flash('alerts', $alert);
     return Redirect::to(URL::previous());
 }