/** * Store a newly created resource in storage. * POST /relatorios * * @return Response */ public function store() { $validator = Validator::make($data = Input::all(), Relatorio::$rules); // Cria o novo relatório $relatorio = new Relatorio(); if (isset($data['type'])) { $relatorio->type = $data['type']; } // Salva o relatório $relatorio->save(); switch ($data['type']) { case 'despesas': $despesas = Despesa::where('relatorio_id', '<', 1)->get(); $despesas_ids = array(); // MARCA DESPESAS COM O ID DO RELATÓRIO ( LAST REPORT ) foreach ($despesas as $despesa) { $despesas_ids[] = $despesa->id; $despesa->relatorio_id = $relatorio->id; $despesa->save(); } // ADICIONA OS IDS DAS CONVERSAS NO RELATÓRIO $relatorio->ids = implode(",", $despesas_ids); // Alert $alert[] = array('class' => 'alert-success', 'message' => '<strong><i class="fa fa-check"></i></strong> Relatório gerado com sucesso!'); Session::flash('alerts', $alert); break; case 'conversas': // AUTOMÁTICO if (@$data['auto']) { // Marca as conversas com o ID do relatório criado $conversas = Conversa::where('relatorio_id', '<', '1')->get(); foreach ($conversas as $conversa) { $conversa->relatorio_id = $relatorio->id; $conversa->save(); } // MANUAL } else { if (isset($data['conversas_ids']) and is_array($data['conversas_ids'])) { // ADICIONA OS IDS DAS CONVERSAS NO RELATÓRIO $relatorio->ids = implode(",", $data['conversas_ids']); // MARCA AS CONVERSAS COM O ID DO ÚLTIMO RELATÓRIO (este) foreach ($data['conversas_ids'] as $conversa) { $conversa = Conversa::find($conversa); $conversa->relatorio_id = $relatorio->id; $conversa->save(); } } } // Alert $alert[] = array('class' => 'alert-success', 'message' => '<strong><i class="fa fa-check"></i></strong> Relatório de conversas gerado com sucesso!', 'links' => array('btn-success' => array('text' => 'Ver relatório', 'link' => url('relatorios', $relatorio->id)))); Session::flash('alerts', $alert); break; default: break; } // Salva o relatório de novo $relatorio->save(); return Redirect::to(url('relatorios/' . $relatorio->id)); }