| Server IP : 54.94.228.101 / Your IP : 172.28.20.13 Web Server : Apache System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/vinumday2_0/app/Http/Controllers/Api/ |
Upload File : |
<?php
namespace App\Http\Controllers\Api;
use Validator;
use App\Http\Requests;
//use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Http\Requests\LoginFormRequest;
use Illuminate\Support\Facades\Log;
use Sentinel;
use Dingo\Api\Routing\Helpers;
use Illuminate\Routing\Controller;
use Mail;
use App\User;
use App\Modules\Condominos\Models\Condominos;
use App\Modules\Recado\Models\Recado;
use App\Modules\Aviso\Models\Aviso;
use App\Modules\Questionamento\Models\Questionamento;
use App\Modules\QuestionamentoAssunto\Models\QuestionamentoAssunto;
use App\Modules\QuestionamentoResposta\Models\QuestionamentoResposta;
use App\Modules\Animal\Models\Animal;
use App\Modules\Veiculo\Models\Veiculo;
use App\Modules\TipoAnimal\Models\TipoAnimal;
use App\Modules\EspacoComum\Models\EspacoComum;
use App\Modules\EspacoComumTipo\Models\EspacoComumTipo;
use App\Modules\EspacoComumModelo\Models\EspacoComumModelo;
use App\Modules\EspacoComumItensModelo\Models\EspacoComumItensModelo;
use App\Modules\EspacoComumItens\Models\EspacoComumItens;
use App\Modules\EspacoComumHorario\Models\EspacoComumHorario;
use App\Modules\EventoPrivadoConvidado\Models\EventoPrivadoConvidado;
use App\Modules\ReservaConvidado\Models\ReservaConvidado;
use App\Modules\Convidado\Models\Convidado;
use App\Modules\Reserva\Models\Reserva;
use App\Modules\EventoPrivado\Models\EventoPrivado;
use App\Modules\ConfiguracaoNotificacao\Models\ConfiguracaoNotificacao;
use App\Modules\Notificacao\Models\Notificacao;
use App\Modules\Documento\Models\Documento;
use App\Modules\Condominio\Models\Condominio;
use App\Modules\CondominioUnidade\Models\CondominioUnidade;
use App\Modules\Cidade\Models\Cidade;
use App\Modules\Estado\Models\Estado;
use App\Services\CondominioService;
use App\Modules\EnqueteAlternativaUsers\Models\EnqueteAlternativaUsers;
use App\Modules\Post\Models\Post;
use App\Modules\Evento\Models\Evento;
use App\Modules\Enquete\Models\Enquete;
use App\Modules\EnqueteAlternativa\Models\EnqueteAlternativa;
use App\Modules\CondominioTorre\Models\CondominioTorre;
use App\Modules\PrestadordeServico\Models\PrestadordeServico;
use App\Modules\SegmentoServico\Models\SegmentoServico;
use App\Modules\Assembleia\Models\Assembleia;
use App\Modules\AssembleiaCondominioTorre\Models\AssembleiaCondominioTorre;
use App\Modules\AssembleiaQuestionamento\Models\AssembleiaQuestionamento;
use App\Modules\Segmento\Models\Segmento;
use App\Modules\Empresa\Models\Empresa;
use App\Modules\PostLike\Models\PostLike;
use App\Modules\Pessoa\Models\Pessoa;
use App\Modules\PessoaSegmento\Models\PessoaSegmento;
use App\Modules\Politicas\Models\Politicas;
use App\Modules\Cupom\Models\Cupom;
use App\Modules\CupomPessoa\Models\CupomPessoa;
use App\Modules\PerguntasFrequentes\Models\PerguntasFrequentes;
use App\Modules\RecadoDestinatario\Models\RecadoDestinatario;
use App\Modules\PessoaAutorizada\Models\PessoaAutorizada;
use App\Modules\RecadoResposta\Models\RecadoResposta;
use App\Modules\HistoricoSindico\Models\HistoricoSindico;
use App\Modules\MotivoTrocaSindico\Models\MotivoTrocaSindico;
use App\Modules\AcessoUsuario\Models\AcessoUsuario;
use Notification;
use App\Notifications\NotificacaoContato;
use Activation;
use DB;
class ApiController extends Controller
{
use Helpers;
public function __construct(){
setlocale(LC_ALL, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese');
date_default_timezone_set('America/Sao_Paulo');
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function teste()
{
//return view('admin.sessions.create');
$user = app('Dingo\Api\Auth\Auth')->user();
return $user;
}
public function sindicoLogin(){
$params = \Request::input();
$response = null;
if(User::join('sis_role_users', 'sis_users.id', '=', 'sis_role_users.user_id')->where('sis_role_users.role_id', 2)->where('email', $params['email'])->count()){
$user = Sentinel::authenticate(array(
'email' => $params['email'],
'password' => $params['password']
));
if($user){
$response = $user;
$status = true;
$message = 'Usuário logado com sucesso.';
}else{
$status = false;
$message = 'Não foi possível efetuar o login. E-mail ou senha inválidos.';
}
}else{
$status = false;
$message = 'Não existe um usuário com esse e-mail';
}
if($response){
$condomino = Condominos::where('id_user', $response->id)->first();
$response->id_user = $response->id;
$response->id = $condomino->id;
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function login(){
$params = \Request::input();
$response = null;
if(isset($params['id_condominio'])){
if(User::join('sis_role_users', 'sis_users.id', '=', 'sis_role_users.user_id')->join('condomino', 'sis_users.id_condomino' , '=', 'condomino.id')->join('condominio_unidade', 'condomino.id_condominio_unidade', '=', 'condominio_unidade.id')->join('condominio_torre', 'condominio_unidade.id_condominio_torre', '=', 'condominio_torre.id')->where('sis_users.email', $params['email'])->where('condominio_torre.id_condominio', $params['id_condominio'])->count()){
$user = Sentinel::authenticate(array(
'email' => $params['email'],
'password' => $params['password']
));
if($user){
$userModel = \App\User::find($user->id);
if(isset($params['udid']) && $params['udid']){
$userModel->udid = $params['udid'];
$userModel->save();
}
$notificacoes = ConfiguracaoNotificacao::where('configuracao_notificacao.id_user',$user->id)->get();
$user->notificacoes = $notificacoes;
$user->udid = $userModel->udid;
$user->role = $userModel->roleUser->role;
$user->permissions = str_replace('.','_',$user->permissions);
$response = $user;
$status = true;
$message = 'Usuário logado com sucesso.';
}else{
$status = false;
$message = 'Não foi possível efetuar o login. E-mail ou senha inválidos.';
}
}else{
$status = false;
$message = 'Não foi possível efetuar o login. Usuário não encontrado para esse condomínio.';
}
}else{
$status = false;
$message = 'É necessário enviar o código do condomínio.';
}
if($response){
$condomino = Condominos::select('condomino.*')->join('sis_users', 'condomino.id', '=', 'sis_users.id_condomino')->where('sis_users.id', $response->id)->first();
$response->id_user = $response->id;
$response->id = $condomino->id;
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarEventos()
{
$filtros = \Request::input();
//var_dump($filtros); exit;
$query = Evento::select('evento.*');
if(isset($filtros['id_evento'])){
$query->where('id', $filtros['id_evento']);
}
if(isset($filtros['status'])){
$query->where('status', $filtros['status']);
}
if(isset($filtros['id_condominio_torre'])){
$query->where('id_condominio_torre', $filtros['id_condominio_torre']);
}
if(isset($filtros['ano']) && isset($filtros['mes']) && isset($filtros['dia'])){
$dataParametro = $filtros['ano'] . '-' . $filtros['mes'] . '-' . $filtros['dia'];
$query->whereBetween('data', [$dataParametro . ' 00:00:00', $dataParametro . ' 23:59:59']);
}
$listaEventos = $query->get();
foreach ($listaEventos as $key => $evento) {
$flagCurtido = false;
if($evento->id_user_responsavel){
$listaEventos[$key]->userresponsavel = User::find($evento->id_user_responsavel);
/*
if($listaEventos[$key]->userresponsavel){
$listaPosts[$key]->empresa->thumbnail_principal = url('/uploads/empresa/'.$listaPosts[$key]->empresa->thumbnail_principal);
}
*/
}
if($listaEventos[$key]->data){
$listaEventos[$key]->data = date('d/m/Y H:i:s', strtotime($evento->data));
}
}
return $listaEventos;
}
public function buscarRecados()
{
$filtros = \Request::input();
$query = Recado::select('recado.*')->orderBy('recado.data', 'desc')->groupBy('recado.id');
if(isset($filtros['limit'])){
$query->limit($filtros['limit']);
}
if(isset($filtros['id_recado'])){
$query->where('recado.id', $filtros['id_recado']);
}
if(isset($filtros['tipo'])){
$query->where('recado.tipo', $filtros['tipo']);
}
if(isset($filtros['hoje'])){
$query->where('recado.data', '>=', date('Y-m-d H:i:s', strtotime('now -1 day')));
$query->where('recado.data', '<=', date('Y-m-d H:i:s'));
}
if(isset($filtros['id_user_remetente'])){
$query->where('recado.id_user_remetente', $filtros['id_user_remetente']);
}
if(isset($filtros['id_user'])){
$query->join('recado_destinatario', 'recado.id', '=', 'recado_destinatario.id_recado');
$query->where(function($q) use ($filtros){
$q->where('recado_destinatario.id_user_destinatario', $filtros['id_user'])
->orWhere('recado.id_user_remetente', $filtros['id_user']);
});
}
$listaRecados = $query->get();
if(isset($filtros['id_recado'])){
$listaRecados->load(['respostas' => function ($query) {
$query->orderBy('data', 'desc');
}, 'respostas.remetente.condomino']);
}
foreach ($listaRecados as $key => $recado) {
if($recado->id_user_remetente){
$userremetente = User::find($recado->id_user_remetente);
$listaRecados[$key]->first_name = $userremetente->first_name;
$listaRecados[$key]->last_name = $userremetente->last_name;
$listaRecados[$key]->thumbnail = $userremetente->thumbnail_principal;
}
if($recado->data){
$listaRecados[$key]->data = date('d/m/Y', strtotime($recado->data));
}
if($recado->tipo){
if ($recado->tipo == 'E') $listaRecados[$key]->tipo_string = 'Evento';
if ($recado->tipo == 'A') $listaRecados[$key]->tipo_string = 'Aviso';
if ($recado->tipo == 'S') $listaRecados[$key]->tipo_string = 'Solicitação';
}
$listaRecados[$key]->descricao = str_replace('src="','src="'.url(''), $recado->descricao);
}
return $listaRecados;
}
public function buscarDocumentos()
{
$filtros = \Request::input();
$query = Documento::select('documento.*')->orderBy('documento.data_criacao', 'desc')->orderBy('documento.data_modificacao', 'desc')->groupBy('documento.id');
if(isset($filtros['id_documento'])){
$query->where('documento.id', $filtros['id_documento']);
}
if(isset($filtros['id_user_criacao'])){
$query->where('documento.id_user_criacao', $filtros['id_user_criacao']);
}
if(isset($filtros['id_user_modificacao'])){
$query->where('documento.id_user_modificacao', $filtros['id_user_modificacao']);
}
if(isset($filtros['id_condominio'])){
$query->where('documento.id_condominio', $filtros['id_condominio']);
}
$query->where('documento.status', 'A');
$listaDocumentos = $query->with('categoria', 'condominio', 'userCriacao', 'userModificacao')->get();
return $listaDocumentos;
}
public function buscarReservas()
{
$filtros = \Request::input();
$query = Reserva::select('reserva.*')->orderBy('reserva.data', 'desc')->groupBy('reserva.id');
if(isset($filtros['id_reserva'])){
$query->where('reserva.id', $filtros['id_reserva']);
}
if(isset($filtros['id_user_responsavel'])){
$query->where('reserva.id_user_responsavel', $filtros['id_user_responsavel']);
}
if(isset($filtros['status'])){
$query->where('reserva.status', $filtros['status']);
}
if(isset($filtros['data'])){
$query->where('reserva.data', '>=', $filtros['data']);
}
$listaReservas = $query->get();
foreach ($listaReservas as $key => $reserva) {
$reserva->convidados;
$reserva->condominioUnidade;
$reserva->espacoComumHorario;
$reserva->espacoComum;
$reserva->userResponsavel;
if ($reserva->status == 'P') $listaReservas[$key]->status_string = 'Pendente';
if ($reserva->status == 'A') $listaReservas[$key]->status_string = 'Aprovada';
if ($reserva->status == 'R') $listaReservas[$key]->status_string = 'Recusada';
}
return $listaReservas;
}
public function buscarAvisos()
{
$filtros = \Request::input();
$query = Aviso::select('aviso.*')->orderBy('aviso.data', 'desc');
$query->where('status', 'A');
if(isset($filtros['id_aviso'])){
$query->where('id_aviso', $filtros['id_aviso']);
}
if(isset($filtros['id_user_destinatario'])){
$query->where('id_user_destinatario', $filtros['id_user_destinatario']);
}
if(isset($filtros['hoje'])){
$query->where(function($q){
$q->where('data', '>=', date('Y-m-d H:i:s'))
->where('data', '<=', date('Y-m-d H:i:s', strtotime('+1 day')));
});
}
$listaAvisos = $query->get();
foreach ($listaAvisos as $key => $aviso) {
if($aviso->id_user_remetente){
$listaAvisos[$key]->userremetente = User::find($aviso->id_user_remetente);
}
if($aviso->data){
$listaAvisos[$key]->data = date('d/m/Y', strtotime($aviso->data));
}
}
return $listaAvisos;
}
public function buscarQuestionamentos()
{
$filtros = \Request::input();
$offset = (isset($filtros['offset'])) ? $filtros['offset'] : 0;
$limit = (isset($filtros['limit'])) ? $filtros['limit'] : 10;
$query = Questionamento::select(array('questionamento.*', 'questionamento_assunto.nome'))->orderBy('questionamento.data_criacao', 'DESC')->limit($limit);
$query->join('questionamento_assunto', 'questionamento_assunto.id', '=', 'questionamento.id_questionamento_assunto');
if(isset($filtros['id_questionamento'])){
$query->where('questionamento.id', $filtros['id_questionamento']);
}
if(isset($filtros['id_user_destinatario'])){
$query->where('questionamento.id_user_destinatario', $filtros['id_user_destinatario']);
}
if(isset($filtros['visualizado'])){
$query->where('questionamento.visualizado', $filtros['visualizado']);
}
if(isset($filtros['id_user_remetente'])){
$query->where('questionamento.id_user_remetente', $filtros['id_user_remetente']);
}
if(isset($filtros['tipo'])){
$query->where('questionamento.tipo', $filtros['tipo']);
}
if(isset($filtros['status'])){
$query->where('questionamento.status', $filtros['status']);
}
if(isset($filtros['id_condominio'])){
$query->join('sis_users','questionamento.id_user_destinatario', '=', 'sis_users.id');
$query->join('condomino','sis_users.id_condomino', '=', 'condomino.id');
$query->join('condominio_unidade','condomino.id_condominio_unidade', '=', 'condominio_unidade.id');
$query->join('condominio_torre','condominio_unidade.id_condominio_torre', '=', 'condominio_torre.id');
$query->where('condominio_torre.id_condominio', $filtros['id_condominio']);
}
$listaQuestionamentos = $query->get();
if(isset($filtros['id_questionamento'])){
$listaQuestionamentos->load(['respostas' => function ($q) {
$q->orderBy('questionamento_resposta.data', 'desc');
}, 'respostas.sindico']);
}
$questionamentosPendentes = [];
$questionamentosFinalizadosOuAssembleia = [];
$count = 0;
foreach ($listaQuestionamentos as $key => $questionamento) {
if($questionamento->id_user_remetente){
$userremetente = User::find($questionamento->id_user_remetente);
$listaQuestionamentos[$key]->first_name = $userremetente->first_name;
$listaQuestionamentos[$key]->last_name = $userremetente->last_name;
$listaQuestionamentos[$key]->thumbnail_user = $userremetente->thumbnail_principal;
}
if($questionamento->data){
$listaQuestionamentos[$key]->data = date('d/m/Y', strtotime($questionamento->data));
}
if($questionamento->tipo){
if ($questionamento->tipo == 'R') $listaQuestionamentos[$key]->tipo_string = 'Reclamação';
if ($questionamento->tipo == 'S') $listaQuestionamentos[$key]->tipo_string = 'Sugestão';
}
/*foreach ($questionamento->respostas as $resposta) {
$resposta->sindico;
}*/
if($questionamento->status){
if ($questionamento->status == 'P'){
$listaQuestionamentos[$key]->status_string = 'Pendente';
$questionamentosPendentes[] = $questionamento;
}
if ($questionamento->status == 'F'){
$listaQuestionamentos[$key]->status_string = 'Finalizado';
if($count < $limit && $count >= $offset){
$questionamentosFinalizadosOuAssembleia[] = $questionamento;
$count++;
}
}
if ($questionamento->status == 'A'){
$listaQuestionamentos[$key]->status_string = 'Discutir em Assembléia';
if($count < $limit && $count >= $offset){
$questionamentosFinalizadosOuAssembleia[] = $questionamento;
$count++;
}
}
}
}
if(isset($filtros['id_questionamento'])){
return $listaQuestionamentos;
}else {
return json_encode(array(
'questionamentos_pendentes' => $questionamentosPendentes,
'questionamentos_assembleia_finalizados' => $questionamentosFinalizadosOuAssembleia
));
}
}
public function buscarNotificacoes()
{
$filtros = \Request::input();
$offset = (isset($filtros['offset'])) ? $filtros['offset'] : 0;
$query = Notificacao::select(array('notificacao.*'))->orderBy('notificacao.status', 'ASC')->orderBy('notificacao.data_criacao', 'DESC')->groupBy('notificacao.id');
if(isset($filtros['limit'])){
$query->limit($filtros['limit']);
}
if(isset($filtros['id_notificacao'])){
$query->where('notificacao.id', $filtros['id_notificacao']);
}
if(isset($filtros['status'])){
$query->where('notificacao.status', $filtros['status']);
}
if(isset($filtros['id_user_destinatario'])){
$query->where('notificacao.id_user_destinatario', $filtros['id_user_destinatario']);
}
if(isset($filtros['id_user_remetente'])){
$query->where('notificacao.id_user_remetente', $filtros['id_user_remetente']);
}
$listaNotificacoes = $query->get();
foreach ($listaNotificacoes as $key => $notificacao) {
$user = User::find($notificacao->id_user_remetente);
$listaNotificacoes[$key]->first_name = $user->first_name;
$listaNotificacoes[$key]->last_name = $user->last_name;
$listaNotificacoes[$key]->thumbnail = $user->thumbnail_principal;
}
return $listaNotificacoes;
}
public function buscarTorres()
{
$filtros = \Request::input();
$query = CondominioTorre::select(array('condominio_torre.*'))->orderBy('condominio_torre.nome', 'ASC');
$query->join('condominio', 'condominio_torre.id_condominio', '=', 'condominio.id');
if(isset($filtros['id_condominio'])){
$query->where('condominio.id', $filtros['id_condominio']);
}
$listaTorres = $query->get();
foreach ($listaTorres as $key => $torre) {
$torre->unidades;
$torre->condominio;
}
$status = true;
$message = 'Segue listagem de torres';
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $listaTorres
));
//return $listaTorres;
}
public function buscarEspacosComuns()
{
$filtros = \Request::input();
$query = EspacoComum::select(array('espaco_comum.*'))->orderBy('espaco_comum.nome', 'ASC');
$query->join('condominio', 'espaco_comum.id_condominio', '=', 'condominio.id');
if(isset($filtros['id_condominio'])){
$query->where('condominio.id', $filtros['id_condominio']);
}
$listaEspacos = $query->get();
foreach ($listaEspacos as $key => $espaco) {
$espaco->items;
}
return $listaEspacos;
}
public function buscarEspacoComum(Request $request)
{
$post = $request->input();
$espacoComum = EspacoComum::with('items', 'horarios', 'reservas', 'tipo', 'condominio')->find($post['id_espaco_comum']);
if($espacoComum){
return $espacoComum;
}else{
return json_encode(array(
'status' => false,
'message' => 'Não existe um espaço comum com esse ID'
));
}
}
public function buscarAssembleias()
{
$filtros = \Request::input();
if(!isset($filtros['id_condominio']) || !$filtros['id_condominio']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_condominio é obrigatório'
));
}
$offset = isset($filtros['offset']) ? $filtros['offset'] : 0;
$limit = isset($filtros['limit']) ? $filtros['limit'] : 10;
$countFinalizadas = 0;
$query = Assembleia::select(array('assembleia.*'))->orderBy('assembleia.data_primeira_chamada', 'DESC');
if(isset($filtros['id_assembleia'])){
$query->where('assembleia.id', $filtros['id_assembleia']);
}
if(isset($filtros['id_condominio'])){
$query->join('assembleia_condominio_torre', 'assembleia.id', '=', 'assembleia_condominio_torre.id_assembleia');
$query->join('condominio_torre', 'assembleia_condominio_torre.id_condominio_torre', '=', 'condominio_torre.id');
$query->where('condominio_torre.id_condominio', $filtros['id_condominio']);
$query->groupBy('assembleia.id');
}
$listaAssembleias = $query->get();
$assembleiasFinalizadas = [];
$assembleiasAbertas = [];
foreach ($listaAssembleias as $key => $assembleia) {
foreach ($assembleia->torres as $assembleiaTorre) {
$assembleiaTorre->torre;
}
foreach ($assembleia->questionamentos as $assembleiaQuestionamento) {
$assembleiaQuestionamento->questionamento;
}
if($assembleia->status){
$assembleiasAbertas[] = $assembleia;
}else{
if($countFinalizadas >= $offset && $countFinalizadas < $limit){
$assembleiasFinalizadas[] = $assembleia;
$countFinalizadas++;
}
}
}
if(isset($filtros['id_assembleia'])){
return $listaAssembleias;
}else{
return json_encode(array(
'assembleias_finalizadas' => $assembleiasFinalizadas,
'assembleias_abertas' => array_reverse($assembleiasAbertas)
));
}
}
public function buscar_posts()
{
$filtros = \Request::input();
$query = Post::select('post.*');
if(isset($filtros['id_post'])){
$query->where('id', $filtros['id_post']);
}
$listaPosts = $query->get();
foreach ($listaPosts as $key => $post) {
$flagCurtido = false;
foreach ($post->postLikes as $postLike) {
$postLike->pessoaObject;
}
if($post->id_segmento){
$listaPosts[$key]->segmento = Segmento::find($post->id_segmento);
}
if($post->id_empresa){
$listaPosts[$key]->empresa = Empresa::find($post->id_empresa);
if($listaPosts[$key]->empresa){
$listaPosts[$key]->empresa->thumbnail_principal = url('/uploads/empresa/'.$listaPosts[$key]->empresa->thumbnail_principal);
}
}
if($listaPosts[$key]->data){
$listaPosts[$key]->data = date('d/m/Y', strtotime($post->data));
}
if($listaPosts[$key]->data_validade){
$listaPosts[$key]->data_validade = date('d/m/Y', strtotime($post->data_validade));
}
if($listaPosts[$key]->thumbnail_principal){
$listaPosts[$key]->thumbnail_principal = url('/uploads/post/'.$post->thumbnail_principal);
}
if(isset($filtros['id_pessoa'])){
foreach ($post->postLikes as $postLike) {
if($postLike->pessoaObject->id == $filtros['id_pessoa']){
$flagCurtido = true;
}
}
}
$listaPosts[$key]->curtido = $flagCurtido;
}
return $listaPosts;
}
public function buscarEmpresas()
{
$filtros = \Request::input();
$query = Empresa::select('empresa.*');
if(isset($filtros['id_segmento'])){
$arraySegmento = explode(',',$filtros['id_segmento']);
$query->join('empresa_has_segmento', 'empresa.id', '=', 'empresa_has_segmento.id_empresa');
//$query->where('empresa_has_segmento.id_segmento', $filtros['id_segmento']);
$query->whereIn('empresa_has_segmento.id_segmento', $arraySegmento);
$query->groupBy('empresa.id');
}
$listaEmpresas = $query->get();
foreach ($listaEmpresas as $key => $empresa) {
foreach ($empresa->segmentos as $segmento) {
$segmento->objSegmento;
}
if($listaEmpresas[$key]->thumbnail_principal){
$listaEmpresas[$key]->thumbnail_principal = url('/uploads/empresa/'.$empresa->thumbnail_principal);
}
if($listaEmpresas[$key]->thumbnail_logo){
$listaEmpresas[$key]->thumbnail_logo = url('/uploads/empresa/'.$empresa->thumbnail_logo);
}
}
return $listaEmpresas->toJson();
}
public function getPost()
{
$filtros = \Request::input();
$flagDisponivel = false;
$flagCurtido = false;
$post = Post::with('cupons')->find($filtros['id_post']);
$post->segmento;
if($post->empresa){
$post->empresa->thumbnail_principal = url('/uploads/empresa/'.$post->empresa->thumbnail_principal);
}
if($post->data){
$post->data = date('d/m/Y', strtotime($post->data));
}
if($post->data_validade){
$post->data_validade = date('d/m/Y', strtotime($post->data_validade));
}
if($post->thumbnail_principal){
$post->thumbnail_principal = url('/uploads/post/'.$post->thumbnail_principal);
}
if(count($post->cuponsAbertosDisponiveis)){
$flagDisponivel = true;
}
if(isset($filtros['id_pessoa'])){
foreach ($post->cupons as $cupom) {
if($cupom->cupomPessoa && $cupom->cupomPessoa->pessoaObject && $cupom->cupomPessoa->pessoaObject->id == $filtros['id_pessoa']){
$flagDisponivel = false;
}
}
foreach ($post->postLikes as $postLike) {
if($postLike->pessoaObject->id == $filtros['id_pessoa']){
$flagCurtido = true;
}
}
}
$post->cupomDisponivel = $flagDisponivel;
$post->curtido = $flagCurtido;
return $post->toJson();
}
public function buscarSegmentos()
{
$filtros = \Request::input();
$query = Segmento::select('segmento.*');
if(isset($filtros['id_segmento'])){
$query->whereIn('segmento.id', $filtros['id_segmento']);
}
$listaSegmentos = $query->get();
return $listaSegmentos;
}
public function inserirPostLike()
{
$filtros = \Request::input();
$obj = new PostLike;
if($obj->validate($filtros)){
$obj->id_post = $filtros['id_post'];
$obj->id_pessoa = $filtros['id_pessoa'];
$obj->data = date('Y-m-d H:i:s');
$obj->save();
return json_encode(array("retorno" => true));
}else{
return json_encode(array("retorno" => false));
}
}
public function removerPostLike()
{
$filtros = \Request::input();
$obj = PostLike::where('id_post', $filtros['id_post'])
->where('id_pessoa', $filtros['id_pessoa'])
->delete();
return json_encode(array("retorno" => true));
}
public function inserirPessoa(){
return json_encode(array("retorno" => false));
$info = \Request::input();
$password = $info['password'];
unset($info['password']);
unset($info['confirmPassword']);
$pessoa = Pessoa::find(DB::table('pessoa')->insertGetId($info));
$user = Sentinel::register(array(
'first_name' => $info['nome'],
'email' => $info['email'],
'password' => $password,
));
$pessoa->id_user = $user->id;
$pessoa->save();
$role = Sentinel::findRoleById(1);
$role->users()->attach($user);
$activation = Activation::create($user);
Activation::complete($user, $activation->code);
$pessoa->cidade;
$pessoa->grupoPessoa;
return $pessoa;
}
public function inserirPessoaSegmento(){
$post = \Request::input();
$pessoa = Pessoa::find($post['id_pessoa']);
foreach ($pessoa->segmentos as $segmento) {
$segmento->delete();
}
foreach ($post['segmentos'] as $id_segmento) {
$pessoaSegmento = new PessoaSegmento();
$pessoaSegmento->id_pessoa = $pessoa->id;
$pessoaSegmento->id_segmento = $id_segmento;
$pessoaSegmento->save();
}
return json_encode(array('sucess' => true));
}
public function buscarSegmentosPessoa(){
$post = \Request::input();
$pessoa = Pessoa::find($post['id_pessoa']);
$segmentos = Segmento::get();
$segmentosPessoaArray = [];
$returnArray = [];
foreach ($pessoa->segmentos as $pessoaSegmento) {
$segmentosPessoaArray[] = $pessoaSegmento->id_segmento;
}
foreach ($segmentos as $key => $segmento) {
$returnArray['segmentos'][$key]['segmento'] = $segmento;
if(in_array($segmento->id, $segmentosPessoaArray)){
$returnArray['segmentos'][$key]['checked'] = true;
}else{
$returnArray['segmentos'][$key]['checked'] = false;
}
}
return json_encode($returnArray);
}
public function buscarPoliticas(){
$politicas = Politicas::get();
return $politicas;
}
public function buscarPerguntasFrequentes(){
$faq = PerguntasFrequentes::get();
return $faq;
}
public function buscaReceberNotificacoes(){
$post = \Request::input();
$pessoa = Pessoa::find($post['id_pessoa']);
$user = Sentinel::findUserById($pessoa->id_user);
if($user->receber_notificacoes){
return json_encode(array('receber_notificacoes' => true));
}else{
return json_encode(array('receber_notificacoes' => false));
}
}
public function updateReceberNotificacoes(){
$post = \Request::input();
$pessoa = Pessoa::find($post['id_pessoa']);
$user = User::find($pessoa->id_user);
$user->receber_notificacoes = $post["receber_notificacoes"];
$user->save();
return json_encode(array(
"status" => true
));
}
public function buscaEmpresaHorarios(){
$post = \Request::input();
$empresa = Empresa::find($post['id_empresa']);
if($empresa){
return $empresa->horarios;
}else{
return json_encode(array(
'status' => false,
'message' => 'Não existe empresa com esse ID'
));
}
}
public function insereCupomPessoa(){
$post = \Request::input();
$postModel = Post::find($post['id_post']);
$pessoa = Pessoa::find($post['id_pessoa']);
$response = null;
if(count($postModel->cuponsAbertosDisponiveis)){
$cupom = $postModel->cuponsAbertosDisponiveis[0];
if($cupom->data_validade >= date('Y-m-d')){
if(!$cupom->cupomPessoa){
if($cupom->status == 'A'){
$cupomPessoa = new CupomPessoa();
$cupomPessoa->id_pessoa = $post['id_pessoa'];
$cupomPessoa->id_cupom = $cupom->id;
$cupomPessoa->save();
$status = true;
$message = 'Cupom obtido com sucesso.';
$response = $cupomPessoa->cupomObject;
}else{
$status = false;
$message = 'O cupom não está mais em aberto.';
}
}else{
$status = false;
$message = 'O cupom já foi obtido por outra pessoa.';
}
}else{
$status = false;
$message = 'A data de validade do cupom já expirou.';
}
}else{
$status = false;
$message = 'O post não possui cupons abertos e não expirados.';
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarEmpresa(){
$params = \Request::input();
$empresa = Empresa::find($params['id_empresa']);
foreach ($empresa->posts as $post) {
$post->curtido = false;
if($post->data){
$post->data = date('d/m/Y',strtotime($post->data));
}
if($post->thumbnail_principal){
$post->thumbnail_principal = url('/uploads/post/'.$post->thumbnail_principal);
}
if(isset($params['id_pessoa'])){
foreach ($post->postLikes as $postLike) {
if($postLike->pessoaObject->id == $params['id_pessoa']){
$post->curtido = true;
}
}
}
}
$empresa->filiais;
foreach ($empresa->segmentos as $segmento) {
$segmento->objSegmento;
}
$horarios = [];
foreach ($empresa->horarios as $horario) {
if($horario->dia == date('w') + 1){
$horarios[] = $horario;
}
}
$empresa->horariosDiaAtual = $horarios;
if($empresa->thumbnail_principal){
$empresa->thumbnail_principal = url('/uploads/empresa/'.$empresa->thumbnail_principal);
}
if($empresa->thumbnail_logo){
$empresa->thumbnail_logo = url('/uploads/empresa/'.$empresa->thumbnail_logo);
}
return $empresa->toJson();
}
public function buscarCupom(){
$post = \Request::input();
$cupom = Cupom::find($post['id_cupom']);
$response = null;
if($cupom){
$cupom->data_validade = date('d/m/Y',strtotime($cupom->data_validade));
$cupom->grupoPessoa;
$cupom->post;
if($cupom->cupomPessoa){
$cupom->cupomPessoa->pessoaObject;
}
if($cupom->valor_desconto == 0.00){
$cupom->valor_desconto = null;
}
if($cupom->percentual_desconto == 0.00){
$cupom->percentual_desconto = null;
}
$response = $cupom;
$status = true;
$message = 'Cupom buscado com sucesso.';
}else{
$message = 'Não existe um cupom com esse ID';
$status = false;
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarCupons(){
$post = \Request::input();
$pessoa = Pessoa::find($post['id_pessoa']);
$response = null;
if($pessoa){
$response = array();
foreach ($pessoa->cupons as $cupomPessoa) {
$cupom = $cupomPessoa->cupomObject;
$cupom->data_validade = date('d/m/Y',strtotime($cupom->data_validade));
if($cupom->post->empresa){
$cupom->post->data = date('d/m/Y',strtotime($cupom->post->data));
if($cupom->post->empresa->thumbnail_logo)
$cupom->post->empresa->thumbnail_logo = url('/uploads/empresa/'.$cupom->post->empresa->thumbnail_logo);
if($cupom->post->empresa->thumbnail_principal)
$cupom->post->empresa->thumbnail_principal = url('/uploads/empresa/'.$cupom->post->empresa->thumbnail_principal);
}
$response[] = $cupomPessoa->cupomObject;
}
$message = 'Cupons buscados com sucesso!';
$status = true;
}else{
$message = 'Não existe uma pessoa com esse ID';
$status = false;
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarPostsFavoritos(){
$parametros = \Request::input();
$pessoa = Pessoa::find($parametros['id_pessoa']);
$response = null;
if($pessoa){
$response = array();
foreach ($pessoa->postLikes as $postLike) {
$response[] = $postLike->postObject;
}
foreach ($response as $key => $post) {
foreach ($post->postLikes as $postLike) {
$postLike->pessoaObject;
}
if($post->id_segmento){
$response[$key]->segmento = Segmento::find($post->id_segmento);
}
if($post->id_empresa){
$response[$key]->empresa = Empresa::find($post->id_empresa);
if($response[$key]->empresa){
$response[$key]->empresa->thumbnail_principal = url('/uploads/empresa/'.$response[$key]->empresa->thumbnail_principal);
}
}
if($response[$key]->data){
$response[$key]->data = date('d/m/Y', strtotime($post->data));
}
if($response[$key]->data_validade){
$response[$key]->data_validade = date('d/m/Y', strtotime($post->data_validade));
}
if($response[$key]->thumbnail_principal){
$response[$key]->thumbnail_principal = url('/uploads/post/'.$post->thumbnail_principal);
}
}
$message = 'Posts favoritos buscados com sucesso!';
$status = true;
}else{
$message = 'Não existe uma pessoa com esse ID';
$status = false;
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarPessoa(){
$parametros = \Request::input();
$pessoa = Pessoa::find($parametros['id_pessoa']);
$response = null;
if($pessoa){
foreach ($pessoa->segmentos as $pessoaSegmento) {
$pessoaSegmento->segmentoObject;
}
$pessoa->grupoPessoa;
$pessoa->cidade;
$pessoa->empresa;
$response = $pessoa;
$message = 'Pessoa buscada com sucesso!';
$status = true;
}else{
$message = 'Não existe uma pessoa com esse ID';
$status = false;
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function cancelarCupom(){
$params = \Request::input();
$cupom = Cupom::find($params['id_cupom']);
$response = null;
if($cupom){
if($cupom->cupomPessoa){
$cupom->cupomPessoa->delete();
$cupom->status = 'A';
$cupom->save();
$message = 'Cupom cancelado com sucesso!';
$status = true;
}else{
$message = 'Não existe uma pessoa vinculada a esse cupom.';
$status = false;
}
}else{
$message = 'Não existe um cupom com esse ID';
$status = false;
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarEnderecosEmpresa(){
$params = \Request::input();
$empresa = Empresa::find($params['id_empresa']);
$response = null;
if($empresa){
$response = [
'latitude' => $empresa->latitude,
'longitude' => $empresa->longitude,
'filiais' => []
];
foreach ($empresa->filiais as $filial) {
$response['filiais'][] = [
'latitude' => $filial->latitude,
'longitude' => $filial->longitude
];
}
$status = true;
$message = 'Endereços buscados com sucesso.';
}else{
$message = 'Não existe uma empresa com esse ID';
$status = false;
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarMapa(){
$params = \Request::input();
$latitude = $params['latitude'];
$longitude = $params['longitude'];
$distancia = isset($params['distancia']) ? $params['distancia'] : 50;
$response = null;
$empresas = DB::table('empresa')->select('empresa.nome_fantasia', 'empresa.latitude', 'empresa.longitude', DB::raw('111.045 * DEGREES(ACOS(COS(RADIANS('.$latitude.')) * COS(RADIANS(empresa.latitude)) * COS(RADIANS(empresa.longitude) - RADIANS('.$longitude.')) + SIN(RADIANS('.$latitude.')) * SIN(RADIANS(empresa.latitude)))) AS distance_in_km'))->havingRaw('distance_in_km <= '.$distancia)->get();
$filiais = DB::table('empresa')->select('empresa.nome_fantasia','empresa_filial_endereco.latitude', 'empresa_filial_endereco.longitude', DB::raw('111.045 * DEGREES(ACOS(COS(RADIANS('.$latitude.')) * COS(RADIANS(empresa_filial_endereco.latitude)) * COS(RADIANS(empresa_filial_endereco.longitude) - RADIANS('.$longitude.')) + SIN(RADIANS('.$latitude.')) * SIN(RADIANS(empresa_filial_endereco.latitude)))) AS distance_filial_in_km') )->join('empresa_filial_endereco','empresa.id', '=', 'empresa_filial_endereco.id_empresa')->havingRaw('distance_filial_in_km <= '.$distancia)->get();
$response = array_merge($empresas, $filiais);
$status = true;
$message = 'Empresas buscadas com sucesso.';
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function alterarPessoa(){
$input = \Request::input();
$nome = (isset($input['nome']) && $input['nome']) ? $input['nome'] : null;
$telefone = (isset($input['telefone']) && $input['telefone']) ? $input['telefone'] : null;
$celular = (isset($input['celular']) && $input['celular']) ? $input['celular'] : null;
$email = (isset($input['email']) && $input['email']) ? $input['email'] : null;
$data_nascimento = (isset($input['data_nascimento']) && $input['data_nascimento']) ? $input['data_nascimento'] : null;
$id_cidade = (isset($input['id_cidade']) && $input['id_cidade']) ? $input['id_cidade'] : null;
$sexo = (isset($input['sexo']) && $input['sexo']) ? $input['sexo'] : null;
$password = (isset($input['password']) && $input['password']) ? $input['password'] : null;
$pessoa = Pessoa::find($input['id_pessoa']);
if($pessoa){
$user = User::find($pessoa->id_user);
$pessoa->nome = $nome;
$pessoa->telefone = $telefone;
$pessoa->celular = $celular;
$pessoa->data_nascimento = $data_nascimento;
$pessoa->id_cidade = $id_cidade;
$pessoa->sexo = $sexo;
if($email){
if(User::where('email', $email)->count() && $email != $user->email){
return json_encode(array(
'status' => false,
'message' => 'Esse e-mail já está em uso'
));
}else{
$pessoa->email = $email;
}
$user->email = $email;
}
if($password){
$user->password = bcrypt($password);
}
$pessoa->save();
$user->save();
return json_encode(array(
'status' => true,
'message' => 'Dados alterados com sucesso!'
));
}else{
return json_encode(array(
'status' => false,
'message' => 'Não existe uma pessoa com esse ID.'
));
}
}
public function alterarStatusCupom(Request $request){
$post = $request->input();
$cupom = Cupom::find($post['id_cupom']);
if($post['status'] == 'F' || $post['status'] == 'U' && $cupom->data_validade >= date('Y-m-d')){ // Verifica se está tentando utilizar um cupom vencido
if($post['status'] == 'F' || $post['status'] == 'U' && $cupom->cupomPessoa){ // Verifica se esta tentando utilizar um cupom sem pessoa
$cupom->status = $post['status'];
$cupom->save();
$status = true;
$message = 'Status alterado com sucesso.';
}else{
$status = false;
$message = 'Não foi possível alterar o status. Verifique se esse cupom possui uma pessoa ligada a ele.';
}
}else{
$status = false;
$message = 'Não foi possível alterar o status. Verifique a data de validade do cupom.';
}
return json_encode(array(
'status' => $status,
'message' => $message
));
}
public function criarUsuarioAuxiliar(){
$post = \Request::input();
if(!isset($post['password']) || !$post['password']){
return json_encode(array(
'status' => false,
'message' => 'O campo senha é obrigatório'
));
}
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo nome é obrigatório'
));
}
if(!isset($post['email']) || !$post['email']){
return json_encode(array(
'status' => false,
'message' => 'O campo e-mail é obrigatório'
));
}
if(User::where('email', $post['email'])->count()){
return json_encode(array(
'status' => false,
'message' => 'Já existe um usuário com esse e-mail.'
));
}
$condominoCriador = Condominos::select('condomino.*')->join('sis_users','condomino.id', '=', 'sis_users.id_condomino')->where('sis_users.id', $post['id_criador'])->first();
$condomino = new Condominos();
$condomino->nome_completo = $post['nome'];
$condomino->email = $post['email'];
$condomino->id_condominio_unidade = $condominoCriador->id_condominio_unidade;
$condomino->save();
$user = new User();
$user->password = bcrypt($post['password']);
$user->email = $post['email'];
$user->first_name = $post['nome'];
$user->id_condomino = $condomino->id;
$user->id_criador = $post['id_criador'];
$user->save();
$userSentinel = Sentinel::findUserById($user->id);
$activation = Activation::create($userSentinel);
Activation::complete($userSentinel, $activation->code);
$role = Sentinel::findRoleById(4);
$role->users()->attach($userSentinel);
if(isset($post['permissions'])){
$permissions = [];
foreach ($post['permissions'] as $module_name => $status) {
$permissions[$module_name.'.view'] = $status;
$permissions[$module_name.'.create'] = $status;
}
$userSentinel->permissions = $permissions;
$userSentinel->save();
}
return json_encode(array(
'status' => true,
'message' => 'Usuário criado com sucesso!'
));
}
public function editarUsuarioAuxiliar(){
$post = \Request::input();
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo nome é obrigatório'
));
}
if(!isset($post['email']) || !$post['email']){
return json_encode(array(
'status' => false,
'message' => 'O campo e-mail é obrigatório'
));
}
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID Usuário é obrigatório'
));
}
$userEmail = User::where('email', $post['email'])->first();
if($userEmail && ($userEmail->id != $post['id_user'])){
return json_encode(array(
'status' => false,
'message' => 'Já existe um usuário com esse e-mail.'
));
}
$user = User::find($post['id_user']);
if(!$user){
return json_encode(array(
'status' => false,
'message' => 'Não existe um usuário com esse ID.'
));
}
if(isset($post['password']) && $post['password']){
if(strlen($post['password']) >= 6){
$user->password = bcrypt($post['password']);
}else{
return json_encode(array(
'status' => false,
'message' => 'A senha deve conter no mínimo 6 caracteres.'
));
}
}
$user->email = $post['email'];
$user->first_name = $post['nome'];
$user->save();
$condomino = $user->condomino;
$condomino->nome_completo = $post['nome'];
$condomino->email = $post['email'];
$condomino->save();
$userSentinel = Sentinel::findUserById($user->id);
if(isset($post['permissions'])){
$permissions = [];
foreach ($post['permissions'] as $module_name => $status) {
$permissions[$module_name.'.view'] = $status;
$permissions[$module_name.'.create'] = $status;
}
$userSentinel->permissions = $permissions;
$userSentinel->save();
}
return json_encode(array(
'status' => true,
'message' => 'Usuário editado com sucesso!'
));
}
public function salvarEnquete(){
$post = \Request::input();
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo nome é obrigatório'
));
}
if(!isset($post['data_limite']) || !$post['data_limite']){
return json_encode(array(
'status' => false,
'message' => 'O campo data limite é obrigatório'
));
}
if(!isset($post['id_condominio']) || !$post['id_condominio']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_condominio é obrigatório'
));
}
if(!isset($post['alternativas']) || !count($post['alternativas'])){
return json_encode(array(
'status' => false,
'message' => 'Você precisa cadastrar alternativas para a enquete.'
));
}
$enquete = new Enquete();
$enquete->nome = $post['nome'];
$enquete->descricao = (isset($post['descricao'])) ? $post['descricao'] : '';
$enquete->data_criacao = date('Y-m-d H:i:s');
$enquete->data_finalizacao = $post['data_limite'];
$enquete->id_condominio = $post['id_condominio'];
$enquete->save();
$idSindico = CondominioService::buscarSindicoCondominio($post['id_condominio']);
CondominioService::notificarCondominio($idSindico, 'S', 'O Síndico criou uma nova enquete.', $post['nome'], $post['id_condominio'], 'enquete', $enquete->id);
foreach ($post['alternativas'] as $alternativa) {
$alternativaModel = new EnqueteAlternativa();
$alternativaModel->id_enquete = $enquete->id;
$alternativaModel->descricao = $alternativa;
$alternativaModel->save();
}
return json_encode(array(
'status' => true,
'message' => 'Enquete criada com sucesso!'
));
}
public function buscarEnquetes(){
$post = \Request::input();
$limit = isset($post['limit']) ? $post['limit'] : 10;
$offset = isset($post['offset']) ? $post['offset'] : 0;
$countFinalizadas = 0;
$response = null;
if(isset($post['id_condominio']) && $post['id_condominio']){
$enquetesAbertas = [];
$enquetesFinalizadas = [];
$enquetes = Enquete::where('id_condominio', $post['id_condominio'])->orderBy('data_criacao', 'DESC')->get();
foreach ($enquetes as $enquete) {
$totalVotos = EnqueteAlternativaUsers::join('enquete_alternativa', 'enquete_alternativa_users.id_enquete_alternativa', '=', 'enquete_alternativa.id')->where('enquete_alternativa.id_enquete', $enquete->id)->count();
foreach ($enquete->alternativas as $alternativa) {
$alternativa->nr_votos = count($alternativa->votos);
if($totalVotos)
$alternativa->porcentagem = ($alternativa->nr_votos / $totalVotos) * 100;
else {
$alternativa->porcentagem = 0;
}
}
if($enquete->data_finalizacao < date('Y-m-d H:i:s')){
$enquete->finalizada = true;
if($countFinalizadas < $limit && $countFinalizadas >= $offset){
$enquetesFinalizadas[] = $enquete;
$countFinalizadas++;
}
}else{
$enquete->finalizada = false;
$enquetesAbertas[] = $enquete;
}
$enquete->ja_votou = false;
if(isset($post['id_user'])){
$votoUsuario = EnqueteAlternativaUsers::join('enquete_alternativa', 'enquete_alternativa_users.id_enquete_alternativa', '=', 'enquete_alternativa.id')->where('id_user_principal', $post['id_user'])->where('enquete_alternativa.id_enquete', $enquete->id)->count();
if($votoUsuario){
$enquete->ja_votou = true;
}
}
}
$status = true;
$message = 'Enquetes buscadas com sucesso!';
$response = array(
'enquetes_abertas' => $enquetesAbertas,
'enquetes_finalizadas' => $enquetesFinalizadas
);
}else{
$status = false;
$message = 'ID do condomínio é obrigatório.';
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarEnquete(){
$post = \Request::input();
$response = null;
if(isset($post['id_enquete']) && $post['id_enquete']){
$enquete = Enquete::find($post['id_enquete']);
if($enquete){
$totalVotos = EnqueteAlternativaUsers::join('enquete_alternativa', 'enquete_alternativa_users.id_enquete_alternativa', '=', 'enquete_alternativa.id')->where('enquete_alternativa.id_enquete', $enquete->id)->count();
foreach ($enquete->alternativas as $alternativa) {
$alternativa->nr_votos = count($alternativa->votos);
if($totalVotos)
$alternativa->porcentagem = ($alternativa->nr_votos / $totalVotos) * 100;
else {
$alternativa->porcentagem = 0;
}
}
if($enquete->data_finalizacao < date('Y-m-d H:i:s')){
$enquete->finalizada = true;
}else{
$enquete->finalizada = false;
}
$enquete->ja_votou = false;
if(isset($post['id_user'])){
$votoUsuario = EnqueteAlternativaUsers::join('enquete_alternativa', 'enquete_alternativa_users.id_enquete_alternativa', '=', 'enquete_alternativa.id')->where('id_user_principal', $post['id_user'])->where('enquete_alternativa.id_enquete', $enquete->id)->count();
if($votoUsuario){
$enquete->ja_votou = true;
}
}
$status = true;
$message = 'Enquete buscada com sucesso!';
$response = $enquete;
}else{
$status = false;
$message = 'Enquete com esse ID não foi encontrada.';
}
}else{
$status = false;
$message = 'ID da enquete é obrigatório.';
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function votarEnquete(){
$post = \Request::input();
$response = null;
$enqueteAlternativaUsers = new EnqueteAlternativaUsers();
$enqueteAlternativaUsers->id_user_principal = $post['id_user'];
$enqueteAlternativaUsers->id_enquete_alternativa = $post['id_alternativa'];
$enqueteAlternativaUsers->data = date('Y-m-d H:i:s');
$enqueteAlternativaUsers->save();
$status = true;
$message = 'Voto salvo com sucesso!';
$response = $enqueteAlternativaUsers;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function criarQuestionamento(){
$post = \Request::input();
$response = null;
if(!isset($post['mensagem']) || !$post['mensagem']){
return json_encode(array(
'status' => false,
'message' => 'O campo mensagem é obrigatório.'
));
}
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo usuário é obrigatório.'
));
}
if(!isset($post['id_assunto']) || !$post['id_assunto']){
return json_encode(array(
'status' => false,
'message' => 'O campo assunto é obrigatório.'
));
}
if(!isset($post['id_condominio']) || !$post['id_condominio']){
return json_encode(array(
'status' => false,
'message' => 'O campo condomínio é obrigatório.'
));
}
if(!isset($post['tipo']) || !$post['tipo']){
return json_encode(array(
'status' => false,
'message' => 'O campo tipo é obrigatório.'
));
}
$questionamento = new Questionamento();
$questionamento->descricao = $post['mensagem'];
$questionamento->id_user_remetente = $post['id_user'];
$questionamento->id_questionamento_assunto = $post['id_assunto'];
$questionamento->tipo = $post['tipo'];
$questionamento->status = 'P';
$idSindico = CondominioService::buscarSindicoCondominio($post['id_condominio']);
$questionamento->id_user_destinatario = $idSindico;
$questionamento->data_criacao = date('Y-m-d H:i:s');
if(isset($post['data_finalizacao']) && $post['data_finalizacao']){
$questionamento->data_finalizacao = $post['data_finalizacao'];
}
if(isset($post['imagem']) && $post['imagem']){
$questionamento->thumbnail_principal = $post['imagem'];
$questionamento->thumbnail_app = 'thumb_'.$post['imagem'];
}
$questionamento->save();
$status = true;
$message = 'Questionamento criado com sucesso!';
$response = $questionamento;
//CondominioService::notificarUsuario($post['id_user'], 'V', 'Você tem um novo questionamento.', $questionamento->descricao, $idSindico, 'questionamento', $questionamento->id);
$userSindico = User::find($idSindico);
$onesignal = [
0 => $userSindico->udid
];
CondominioService::sendMessage($onesignal, $questionamento->descricao, 'Você tem um novo questionamento.', 'questionamento', $questionamento->id);
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function responderQuestionamento(){
$post = \Request::input();
$response = null;
if(!isset($post['descricao']) || !$post['descricao']){
return json_encode(array(
'status' => false,
'message' => 'O campo descricao é obrigatório.'
));
}
if(!isset($post['id_user_sindico']) || !$post['id_user_sindico']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_user_sindico é obrigatório.'
));
}
if(!isset($post['id_questionamento']) || !$post['id_questionamento']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_questionamento é obrigatório.'
));
}
if(!isset($post['status']) || !$post['status']){
return json_encode(array(
'status' => false,
'message' => 'O campo status é obrigatório.'
));
}
$questionamento = Questionamento::find($post['id_questionamento']);
if($questionamento){
$questionamento->status = $post['status'];
$questionamento->save();
$questionamentoResposta = new QuestionamentoResposta();
$questionamentoResposta->descricao = $post['descricao'];
$questionamentoResposta->id_user_sindico = $post['id_user_sindico'];
$questionamentoResposta->id_questionamento = $post['id_questionamento'];
$questionamentoResposta->data = date('Y-m-d H:i:s');
$questionamentoResposta->save();
$status = true;
$message = 'Questionamento respondido com sucesso!';
$response = $questionamentoResposta;
CondominioService::notificarUsuario($post['id_user_sindico'], 'S', 'O síndico respondeu seu questionamento.', $questionamento->descricao, $questionamento->id_user_remetente, 'questionamentoResposta', $questionamento->id);
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}else{
return json_encode(array(
'status' => false,
'message' => 'Não foi encontrado um questionamento com esse ID.'
));
}
}
public function responderRecado(){
$post = \Request::input();
$response = null;
if(!isset($post['descricao']) || !$post['descricao']){
return json_encode(array(
'status' => false,
'message' => 'O campo descricao é obrigatório.'
));
}
if(!isset($post['id_user_remetente']) || !$post['id_user_remetente']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_user_remetente é obrigatório.'
));
}
if(!isset($post['id_recado']) || !$post['id_recado']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_recado é obrigatório.'
));
}
$recado = Recado::find($post['id_recado']);
if($recado){
$recadoResposta = new RecadoResposta();
$recadoResposta->descricao = $post['descricao'];
$recadoResposta->id_user_remetente = $post['id_user_remetente'];
$recadoResposta->id_recado = $post['id_recado'];
$recadoResposta->data = date('Y-m-d H:i:s');
if(isset($post['atendido']) && $post['atendido']){
$recado->id_user_atendido = $post['id_user_remetente'];
$recado->save();
$recadoResposta->atendido = 1;
}
$recadoResposta->save();
$status = true;
$message = 'Recado respondido com sucesso!';
$response = $recadoResposta;
$user = User::find($post['id_user_remetente']);
$title = $user->first_name.' '.$user->last_name.' respondeu seu recado.';
/* Se o usuário responder o próprio recado, notifica todos que responderam o recado */
if($post['id_user_remetente'] == $recado->id_user_remetente){
$respostas = RecadoResposta::where('id_recado', $recado->id)->where('id_user_remetente', '!=', $recado->id_user_remetente)->groupBy('id_user_remetente')->get();
foreach ($respostas as $resposta) {
CondominioService::notificarUsuario($post['id_user_remetente'], 'V', 'Há novas respostas no recado que você respondeu.', $recado->descricao, $resposta->id_user_remetente, 'recadoResposta', $recado->id);
}
}else{ // Senão responde apenas o criador do recado.
CondominioService::notificarUsuario($post['id_user_remetente'], 'V', $title, $recado->descricao, $recado->id_user_remetente, 'recadoResposta', $recado->id);
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}else{
return json_encode(array(
'status' => false,
'message' => 'Não foi encontrado um recado com esse ID.'
));
}
}
public function editarQuestionamento(){
$post = \Request::input();
$response = null;
if(!isset($post['id_questionamento']) || !$post['id_questionamento']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID Questionamento é obrigatório.'
));
}
if(!isset($post['mensagem']) || !$post['mensagem']){
return json_encode(array(
'status' => false,
'message' => 'O campo mensagem é obrigatório.'
));
}
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo usuário é obrigatório.'
));
}
if(!isset($post['id_assunto']) || !$post['id_assunto']){
return json_encode(array(
'status' => false,
'message' => 'O campo assunto é obrigatório.'
));
}
if(!isset($post['tipo']) || !$post['tipo']){
return json_encode(array(
'status' => false,
'message' => 'O campo tipo é obrigatório.'
));
}
if(!isset($post['status']) || !$post['status']){
return json_encode(array(
'status' => false,
'message' => 'O campo status é obrigatório.'
));
}
$questionamento = Questionamento::find($post['id_questionamento']);
if($questionamento){
$questionamento->descricao = $post['mensagem'];
$questionamento->id_user_remetente = $post['id_user'];
$questionamento->id_questionamento_assunto = $post['id_assunto'];
$questionamento->tipo = $post['tipo'];
$questionamento->status = $post['status'];
$questionamento->data_finalizacao = $post['data_finalizacao'];
if(isset($post['imagem']) && $post['imagem']){
$questionamento->thumbnail_principal = $post['imagem'];
$questionamento->thumbnail_app = 'thumb_'.$post['imagem'];
}
if(isset($post['data_finalizacao']) && $post['data_finalizacao']){
$questionamento->data_finalizacao = $post['data_finalizacao'];
}
$questionamento->save();
$status = true;
$message = 'Questionamento editado com sucesso!';
$response = $questionamento;
}else{
$status = false;
$message = 'Não foi encontrado nenhum questionamento com esse ID.';
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarAssuntosQuestionamentos(){
$response = QuestionamentoAssunto::get();
$status = true;
$message = 'Registros buscados com sucesso!';
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarTiposEspacoComum(){
$params = \Request::input();
$query = EspacoComumTipo::select('espaco_comum_tipo.*');
if(isset($params['id_espaco_comum_tipo'])){
$query->where('id', $params['id_espaco_comum_tipo']);
}
$response = $query->get();
$status = true;
$message = 'Registros buscados com sucesso!';
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarModelosEspacoComum(){
$params = \Request::input();
$query = EspacoComumModelo::select('espaco_comum_modelo.*');
if(isset($params['id_espaco_comum_modelo'])){
$query->where('id', $params['id_espaco_comum_modelo']);
}
if(isset($params['id_espaco_comum_tipo'])){
$query->where('id_espaco_comum_tipo', $params['id_espaco_comum_tipo']);
}
$response = $query->get();
foreach ($response as $espacoComumModelo) {
$espacoComumModelo->items;
$espacoComumModelo->horarios;
}
$status = true;
$message = 'Registros buscados com sucesso!';
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarTiposAnimal(){
$response = TipoAnimal::get();
$status = true;
$message = 'Registros buscados com sucesso!';
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response->toArray()
));
}
public function criarAnimal(){
$post = \Request::input();
$response = null;
if(!isset($post['raca']) || !$post['raca']){
return json_encode(array(
'status' => false,
'message' => 'O campo raça é obrigatório.'
));
}
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo nome é obrigatório.'
));
}
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo usuário é obrigatório.'
));
}
if(!isset($post['id_tipo_animal']) || !$post['id_tipo_animal']){
return json_encode(array(
'status' => false,
'message' => 'O campo espécie é obrigatório.'
));
}
$animal = new Animal();
$animal->raca = $post['raca'];
$animal->nome = $post['nome'];
$animal->id_condominio_unidade = \App\Services\CondominioService::buscarCondominioUnidadeAtual($post['id_user']);
$animal->id_tipo_animal = $post['id_tipo_animal'];
$animal->save();
$status = true;
$message = 'Animal salvo com sucesso!';
$response = $animal;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function editarAnimal(){
$post = \Request::input();
$response = null;
if(!isset($post['id_animal']) || !$post['id_animal']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID do animal é obrigatório.'
));
}
if(!isset($post['raca']) || !$post['raca']){
return json_encode(array(
'status' => false,
'message' => 'O campo raça é obrigatório.'
));
}
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo nome é obrigatório.'
));
}
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo usuário é obrigatório.'
));
}
if(!isset($post['id_tipo_animal']) || !$post['id_tipo_animal']){
return json_encode(array(
'status' => false,
'message' => 'O campo espécie é obrigatório.'
));
}
$animal = Animal::find($post['id_animal']);
$animal->raca = $post['raca'];
$animal->nome = $post['nome'];
$animal->id_condominio_unidade = \App\Services\CondominioService::buscarCondominioUnidadeAtual($post['id_user']);
$animal->id_tipo_animal = $post['id_tipo_animal'];
$animal->save();
$status = true;
$message = 'Animal editado com sucesso!';
$response = $animal;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function criarVeiculo(){
$post = \Request::input();
$response = null;
if(!isset($post['placa']) || !$post['placa']){
return json_encode(array(
'status' => false,
'message' => 'O campo placa é obrigatório.'
));
}
if(!isset($post['modelo']) || !$post['modelo']){
return json_encode(array(
'status' => false,
'message' => 'O campo modelo é obrigatório.'
));
}
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_user é obrigatório.'
));
}
if(!isset($post['cor']) || !$post['cor']){
return json_encode(array(
'status' => false,
'message' => 'O campo cor é obrigatório.'
));
}
$veiculo = new Veiculo();
$veiculo->placa = $post['placa'];
$veiculo->cor = $post['cor'];
$veiculo->id_condominio_unidade = \App\Services\CondominioService::buscarCondominioUnidadeAtual($post['id_user']);
$veiculo->modelo = $post['modelo'];
$veiculo->save();
$status = true;
$message = 'Veículo salvo com sucesso!';
$response = $veiculo;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function editarVeiculo(){
$post = \Request::input();
$response = null;
if(!isset($post['id_veiculo']) || !$post['id_veiculo']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID do veículo é obrigatório.'
));
}
if(!isset($post['placa']) || !$post['placa']){
return json_encode(array(
'status' => false,
'message' => 'O campo placa é obrigatório.'
));
}
if(!isset($post['modelo']) || !$post['modelo']){
return json_encode(array(
'status' => false,
'message' => 'O campo modelo é obrigatório.'
));
}
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_user é obrigatório.'
));
}
if(!isset($post['cor']) || !$post['cor']){
return json_encode(array(
'status' => false,
'message' => 'O campo cor é obrigatório.'
));
}
$veiculo = Veiculo::find($post['id_veiculo']);
$veiculo->placa = $post['placa'];
$veiculo->cor = $post['cor'];
$veiculo->id_condominio_unidade = \App\Services\CondominioService::buscarCondominioUnidadeAtual($post['id_user']);
$veiculo->modelo = $post['modelo'];
$veiculo->save();
$status = true;
$message = 'Veículo editado com sucesso!';
$response = $veiculo;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarVeiculos(){
$post = \Request::input();
$response = null;
if(isset($post['id_veiculo'])){
$veiculo = Veiculo::find($post['id_veiculo']);
if($veiculo){
$response = $veiculo;
$status = true;
$message = 'Registro buscado com sucesso!';
}else{
$status = false;
$message = 'Não foi encontrado um veículo com esse ID.';
}
}else{
if(isset($post['id_user']) && $post['id_user']){
if(User::where('id', $post['id_user'])->count()){
$id_condominio_unidade = CondominioService::buscarCondominioUnidadeAtual($post['id_user']);
$response = Veiculo::where('id_condominio_unidade', $id_condominio_unidade)->get();
$status = true;
$message = 'Registros buscados com sucesso!';
}else{
$status = false;
$message = 'Não foi encontrado um usuário com esse ID.';
}
}else{
$status = false;
$message = 'O ID do usuário é obrigatório.';
}
}
return response()->json(array('status' => $status, 'message' => $message, 'response' => $response));
}
public function buscarAnimais(){
$post = \Request::input();
$response = null;
if(isset($post['id_animal'])){
$animal = Animal::find($post['id_animal']);
if($animal){
$response = $animal;
$status = true;
$message = 'Registro buscado com sucesso!';
}else{
$status = false;
$message = 'Não foi encontrado um veículo com esse ID.';
}
}else{
if(isset($post['id_user']) && $post['id_user']){
if(User::where('id', $post['id_user'])->count()){
$id_condominio_unidade = CondominioService::buscarCondominioUnidadeAtual($post['id_user']);
$response = Animal::where('id_condominio_unidade', $id_condominio_unidade)->get();
$status = true;
$message = 'Registros buscados com sucesso!';
}else{
$status = false;
$message = 'Não foi encontrado um usuário com esse ID.';
}
}else{
$status = false;
$message = 'O ID do usuário é obrigatório.';
}
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function deletarVeiculo(){
$post = \Request::input();
$response = null;
if(!isset($post['id_veiculo']) || !$post['id_veiculo']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID Veículo é obrigatório.'
));
}
$veiculo = Veiculo::find($post['id_veiculo']);
if($veiculo){
$veiculo->delete();
$status = true;
$message = 'Veículo removido com sucesso!';
}else{
return json_encode(array(
'status' => false,
'message' => 'Não foi encontrado um veículo com esse ID.'
));
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function deletarQuestionamento(){
$post = \Request::input();
$response = null;
if(!isset($post['id_questionamento']) || !$post['id_questionamento']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID Questionamento é obrigatório.'
));
}
$questionamento = Questionamento::find($post['id_questionamento']);
if($questionamento){
@unlink('uploads/questionamento/'.$questionamento->thumbnail_principal);
$questionamento->delete();
$status = true;
$message = 'Questionamento removido com sucesso!';
}else{
return json_encode(array(
'status' => false,
'message' => 'Não foi encontrado um questionamento com esse ID.'
));
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function deletarAnimal(){
$post = \Request::input();
$response = null;
if(!isset($post['id_animal']) || !$post['id_animal']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID Animal é obrigatório.'
));
}
$animal = Animal::find($post['id_animal']);
if($animal){
$animal->delete();
$status = true;
$message = 'Animal removido com sucesso!';
}else{
return json_encode(array(
'status' => false,
'message' => 'Não foi encontrado um animal com esse ID.'
));
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function deletarUsuario(){
$post = \Request::input();
$response = null;
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID Usuário é obrigatório.'
));
}
$user = User::find($post['id_user']);
if($user){
if($user->condomino){
$user->condomino->delete();
}
$user->delete();
$status = true;
$message = 'Usuário removido com sucesso!';
}else{
return json_encode(array(
'status' => false,
'message' => 'Não foi encontrado um usuário com esse ID.'
));
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarUsuariosAuxiliares(){
$post = \Request::input();
$response = null;
if(isset($post['id_user'])){
$user = User::find($post['id_user']);
$user->condomino;
$user->permissions = str_replace('.', '_',$user->permissions);
$response = $user;
$message = 'Usuário buscado com sucesso!';
$status = true;
}else{
if(!isset($post['id_criador']) || !$post['id_criador']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID Criador é obrigatório.'
));
}
$usuarios = User::where('sis_users.id_criador',$post['id_criador'])->get();
foreach ($usuarios as $usuario) {
$usuario->condomino;
$usuario->permissions = str_replace('.', '_',$usuario->permissions);
}
$response = $usuarios;
$status = true;
$message = 'Usuários buscados com sucesso!';
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function uploadImagem(Request $request){
$post = \Request::input();
if(!isset($post['id_condominio']) || !$post['id_condominio']){
return json_encode(array(
'status' => false,
'message' => 'o id_condominio é obrigatório'
));
}
if($request->hasFile('file')) {
//upload an image to the /img/tmp directory and return the filepath.
$file = $request->file('file');
$tmpFilePath = 'uploads/'.$request->input('tipo').'/'.$request->input('id_condominio').'/';
$tmpFileName = time() . '-' . $file->getClientOriginalName();
$file = $file->move(public_path() .'/'. $tmpFilePath, $tmpFileName);
$path = $tmpFilePath . $tmpFileName;
$img = \Image::make($tmpFilePath.$tmpFileName);
$tmpThumbName = 'thumb_'.$tmpFileName;
if($img->resize($img->width()/5, $img->height()/5)->save($tmpFilePath.$tmpThumbName)){
$pathThumb = '/'.$tmpFilePath.$tmpThumbName;
return response()->json(array('path'=> $path, 'file_name'=>$tmpFileName, 'path_thumb' => $pathThumb, 'file_name_thumb' => $tmpThumbName), 200);
}else{
return response()->json(array('status'=>false,'message' => 'Não foi possível alterar o tamanho da imagem.'), 200);
}
} else {
return response()->json(false, 200);
}
}
public function criarAssembleia(){
$post = \Request::input();
$response = null;
if(!isset($post['titulo']) || !$post['titulo']){
return json_encode(array(
'status' => false,
'message' => 'O campo título é obrigatório.'
));
}
if(!isset($post['data_primeira_chamada']) || !$post['data_primeira_chamada']){
return json_encode(array(
'status' => false,
'message' => 'O campo data da primeira chamada é obrigatório.'
));
}
if(!isset($post['data_segunda_chamada']) || !$post['data_segunda_chamada']){
return json_encode(array(
'status' => false,
'message' => 'O campo data da segunda chamada é obrigatório.'
));
}
if(!isset($post['local']) || !$post['local']){
return json_encode(array(
'status' => false,
'message' => 'O campo local é obrigatório.'
));
}
if(!isset($post['descricao']) || !$post['descricao']){
return json_encode(array(
'status' => false,
'message' => 'O campo descrição é obrigatório.'
));
}
if(!isset($post['torres']) || !count($post['torres'])){
return json_encode(array(
'status' => false,
'message' => 'O campo torres é obrigatório.'
));
}
if(!isset($post['questionamentos']) || !count($post['questionamentos'])){
return json_encode(array(
'status' => false,
'message' => 'O campo questionamentos é obrigatório.'
));
}
$assembleia = new Assembleia();
$assembleia->titulo = $post['titulo'];
$assembleia->data_primeira_chamada = $post['data_primeira_chamada'];
$assembleia->data_segunda_chamada = $post['data_segunda_chamada'];
$assembleia->local = $post['local'];
$assembleia->descricao = $post['descricao'];
$assembleia->save();
foreach ($post['torres'] as $id_torre) {
$assembleiaTorre = new AssembleiaCondominioTorre();
$assembleiaTorre->id_assembleia = $assembleia->id;
$assembleiaTorre->id_condominio_torre = $id_torre;
$assembleiaTorre->save();
}
foreach ($post['questionamentos'] as $id_questionamento) {
$assembleiaQuestionamento = new AssembleiaQuestionamento();
$assembleiaQuestionamento->id_assembleia = $assembleia->id;
$assembleiaQuestionamento->id_questionamento = $id_questionamento;
$assembleiaQuestionamento->save();
}
$status = true;
$message = 'Assembléia criada com sucesso!';
$response = $assembleia;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function criarModeloEspacoComum(){
$post = \Request::input();
$response = null;
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo nome é obrigatório.'
));
}
if(!isset($post['id_espaco_comum_tipo']) || !$post['id_espaco_comum_tipo']){
return json_encode(array(
'status' => false,
'message' => 'O campo tipo do espaço comum é obrigatório.'
));
}
if(!isset($post['hora_inicio_utilizacao']) || !$post['hora_inicio_utilizacao']){
return json_encode(array(
'status' => false,
'message' => 'O campo hora de inicio de utilização é obrigatório.'
));
}
if(!isset($post['hora_fim_utilizacao']) || !$post['hora_fim_utilizacao']){
return json_encode(array(
'status' => false,
'message' => 'O campo hora final de utilização é obrigatório.'
));
}
if(!isset($post['tempo_utilizacao']) || !$post['tempo_utilizacao']){
return json_encode(array(
'status' => false,
'message' => 'O campo tempo de utilização é obrigatório.'
));
}
if(!isset($post['items']) || !count($post['items'])){
return json_encode(array(
'status' => false,
'message' => 'Os items são obrigatório.'
));
}
$espacoComumModelo = new EspacoComumModelo();
$espacoComumModelo->nome = $post['nome'];
$espacoComumModelo->hora_inicio_utilizacao = $post['hora_inicio_utilizacao'];
$espacoComumModelo->hora_fim_utilizacao = $post['hora_fim_utilizacao'];
$espacoComumModelo->tempo_utilizacao = $post['tempo_utilizacao'];
$espacoComumModelo->id_espaco_comum_tipo = $post['id_espaco_comum_tipo'];
$espacoComumModelo->save();
foreach ($post['items'] as $item) {
$espacoComumItensModelo = new EspacoComumItensModelo();
$espacoComumItensModelo->id_espaco_comum_modelo = $espacoComumModelo->id;
$espacoComumItensModelo->chave = $item['chave'];
$espacoComumItensModelo->valor = $item['valor'];
$espacoComumItensModelo->save();
}
$status = true;
$message = 'Modelo criado com sucesso!';
$response = $espacoComumModelo;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function criarEspacoComum(){
$post = \Request::input();
$response = null;
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo nome é obrigatório.'
));
}
if(!isset($post['id_espaco_comum_tipo']) || !$post['id_espaco_comum_tipo']){
return json_encode(array(
'status' => false,
'message' => 'O campo tipo do espaço comum é obrigatório.'
));
}
if(!isset($post['id_espaco_comum_modelo']) || !$post['id_espaco_comum_modelo']){
return json_encode(array(
'status' => false,
'message' => 'O campo Modelo do espaço comum é obrigatório.'
));
}
if(!isset($post['id_condominio']) || !$post['id_condominio']){
return json_encode(array(
'status' => false,
'message' => 'O campo condomínio é obrigatório.'
));
}
if(!isset($post['capacidade']) || !$post['capacidade']){
return json_encode(array(
'status' => false,
'message' => 'O campo capacidade é obrigatório.'
));
}
// sem valor é igual a 0
if(!isset($post['valor_taxa_uso']) || !$post['valor_taxa_uso']){
$post['valor_taxa_uso'] = 0;
}
if(!isset($post['reserva_aprovada'])){
return json_encode(array(
'status' => false,
'message' => 'O campo de preciso aprovar a reserva é obrigatório.'
));
}
switch ($post['id_espaco_comum_tipo']) {
case 1:
$thumb = 'uploads/app/salaodefestas.jpg';
break;
// quadra de futebol
case 3:
$thumb = 'uploads/app/futebol.jpg';
break;
// quadra de tenis
case 4:
$thumb = 'uploads/app/img1.png';
break;
// academia
case 5:
$thumb = 'uploads/app/academia.jpg';
break;
default:
$thumb = 'uploads/app/img3.png';
break;
}
$modeloEspacoComum = EspacoComumModelo::where('espaco_comum_modelo.id',$post['id_espaco_comum_modelo'])->first();
$espacoComum = new EspacoComum();
$espacoComum->nome = $post['nome'];
$espacoComum->thumbnail_principal = $thumb;
// $espacoComum->hora_inicio_utilizacao = $post['hora_inicio_utilizacao'];
// $espacoComum->hora_fim_utilizacao = $post['hora_fim_utilizacao'];
// $espacoComum->tempo_utilizacao = $post['tempo_utilizacao'];
$espacoComum->id_espaco_comum_tipo = $post['id_espaco_comum_tipo'];
$espacoComum->capacidade = $post['capacidade'];
$espacoComum->valor_taxa_uso = $post['valor_taxa_uso'];
$espacoComum->reserva_aprovada = $post['reserva_aprovada'];
$espacoComum->id_condominio = $post['id_condominio'];
$espacoComum->convidados = (isset($post['convidados'])) ? $post['convidados'] : 0;
$espacoComum->save();
foreach ($modeloEspacoComum->horarios as $horario) {
$espacoComumHorario = new EspacoComumHorario();
$espacoComumHorario->id_espaco_comum = $espacoComum->id;
$espacoComumHorario->dia = $horario->dia;
$espacoComumHorario->hora_inicial = $horario->hora_inicial;
$espacoComumHorario->hora_final = $horario->hora_final;
$espacoComumHorario->save();
}
$status = true;
$message = 'Espaço comum criado com sucesso!';
$response = $espacoComum;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function editarEspacoComum(){
$post = \Request::input();
$response = null;
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo nome é obrigatório.'
));
}
if(!isset($post['id_espaco_comum']) || !$post['id_espaco_comum']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_espaco_comum é obrigatório.'
));
}
if(!isset($post['capacidade']) || !$post['capacidade']){
return json_encode(array(
'status' => false,
'message' => 'O campo capacidade é obrigatório.'
));
}
// sem valor é igual a 0
if(!isset($post['valor_taxa_uso']) || !$post['valor_taxa_uso']){
$post['valor_taxa_uso'] = 0;
}
if(!isset($post['reserva_aprovada'])){
return json_encode(array(
'status' => false,
'message' => 'O campo de preciso aprovar a reserva é obrigatório.'
));
}
$espacoComum = EspacoComum::find($post['id_espaco_comum']);
$espacoComum->nome = $post['nome'];
$espacoComum->capacidade = $post['capacidade'];
$espacoComum->valor_taxa_uso = $post['valor_taxa_uso'];
$espacoComum->reserva_aprovada = $post['reserva_aprovada'];
$espacoComum->save();
$status = true;
$message = 'Espaço comum editado com sucesso!';
$response = $espacoComum;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function deletarEspacoComum(){
$post = \Request::input();
$response = null;
if(!isset($post['id_espaco_comum']) || !$post['id_espaco_comum']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_espaco_comum obrigatório.'
));
}
$espacoComum = EspacoComum::find($post['id_espaco_comum']);
if($espacoComum){
$espacoComum->delete();
$status = true;
$message = 'Espaço Comum removido com sucesso!';
}else{
return json_encode(array(
'status' => false,
'message' => 'Não foi encontrado um espaco comum com esse ID.'
));
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function deletarUnidade(){
$post = \Request::input();
$response = null;
if(!isset($post['id_unidade']) || !$post['id_unidade']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_unidade obrigatório.'
));
}
$unidade = CondominioUnidade::find($post['id_unidade']);
if($unidade){
$unidade->delete();
$status = true;
$message = 'Unidade removida com sucesso!';
}else{
return json_encode(array(
'status' => false,
'message' => 'Não foi encontrado uma unidade com esse ID.'
));
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
// criar uma nova reserva para um espaco comum
public function criarReservaEspacoComum(){
$post = \Request::input();
$response = null;
if(!isset($post['id_espaco_comum']) || !$post['id_espaco_comum']){
return json_encode(array(
'status' => false,
'message' => 'O campo Id do espaço comum é obrigatório.'
));
}
if(!isset($post['id_user_responsavel']) || !$post['id_user_responsavel']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_user_responsavel é obrigatório.'
));
}
if(!isset($post['id_espaco_comum_horario']) || !$post['id_espaco_comum_horario']){
return json_encode(array(
'status' => false,
'message' => 'O campo horário é obrigatório.'
));
}
if(!isset($post['data']) || !$post['data']){
return json_encode(array(
'status' => false,
'message' => 'O campo data é obrigatório.'
));
}
if(Reserva::where('id_espaco_comum', $post['id_espaco_comum'])->where('data', $post['data'])->where('id_espaco_comum_horario', $post['id_espaco_comum_horario'])->count()){
return json_encode(array(
'status' => false,
'message' => 'Já existe uma reserva nesse horário.'
));
}
$espacoComum = EspacoComum::find($post['id_espaco_comum']);
$userResponsavel = Sentinel::findUserById($post['id_user_responsavel']);
if($espacoComum->reserva_aprovada && !$userResponsavel->inRole('sindico')){
$status = 'P';
}else{
$status = 'A';
}
$idCondominioUnidade = CondominioService::buscarCondominioUnidadeAtual($post['id_user_responsavel']);
$reserva = new Reserva();
$reserva->id_espaco_comum = $post['id_espaco_comum'];
$reserva->id_condominio_unidade = $idCondominioUnidade;
$reserva->id_user_responsavel = $post['id_user_responsavel'];
$reserva->id_espaco_comum_horario = $post['id_espaco_comum_horario'];
$reserva->data = $post['data'];
$reserva->status = $status;
if(isset($post['anexo']) && $post['anexo']){
$reserva->anexo = $post['anexo'];
}
$reserva->save();
$idCondominio = CondominioService::buscarCondominioAtual($post['id_user_responsavel']);
$idSindico = CondominioService::buscarSindicoCondominio($idCondominio);
if($espacoComum->reserva_aprovada){
CondominioService::notificarUsuario($post['id_user_responsavel'], 'V', 'Há uma nova reserva a ser aprovada.', $espacoComum->nome, $idSindico, 'aprovarReserva', $reserva->id);
}
if(isset($post['convidados'])){
foreach ($post['convidados'] as $convidado) {
$novoConvidado = new Convidado();
$novoConvidado->nome = $convidado['nome'];
$novoConvidado->documento = $convidado['documento'];
$novoConvidado->save();
$reservaConvidado = new ReservaConvidado();
$reservaConvidado->id_convidado = $novoConvidado->id;
$reservaConvidado->id_reserva = $reserva->id;
$reservaConvidado->save();
}
}
$status = true;
$message = 'Reserva criada com sucesso!';
$response = $reserva;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarHorariosDisponiveis(Request $request){
$post = $request->input();
$message = 'Horários buscados com sucesso!';
$status = true;
$response = [];
if($post['data'] >= date('Y-m-d')){
$espacoComum = EspacoComum::find($post['id_espaco_comum']);
foreach ($espacoComum->horarios as $horario) {
if($horario->dia == (date('w', strtotime($post['data'])) + 1) && ($post['data'] >= date('Y-m-d') || $post['data'] == date('Y-m-d') && $horario->hora_inicial >= date('H:i:s')) ){
$reservado = Reserva::where('data', $post['data'])->where('id_espaco_comum_horario', $horario->id)->where('status', '!=', 'R')->count();
if(!$reservado){
$response[] = $horario;
}
}
}
}else{
$status = false;
$message = 'A data deve ser posterior à data atual.';
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function mudarConfiguracaoNotificacaoUsuario(){
$post = \Request::input();
$response = null;
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_user é obrigatório.'
));
}
if(!isset($post['tipo_notificacao']) || !$post['tipo_notificacao']){
return json_encode(array(
'status' => false,
'message' => 'O campo tipo_notificacao é obrigatório.'
));
}
if(!isset($post['ativo'])){
return json_encode(array(
'status' => false,
'message' => 'O campo ativo é obrigatório.'
));
}
$query = ConfiguracaoNotificacao::select('configuracao_notificacao.*');
$query->where('id_user', $post['id_user']);
$query->where('chave', $post['tipo_notificacao']);
$notificacoes = $query->first();
$notificacoes->ativo = $post['ativo'];
$notificacoes->save();
$status = true;
$message = 'Notificação alterada com sucesso!';
$response = $notificacoes;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function criarRecado(){
$post = \Request::input();
$response = null;
if(!isset($post['id_user_remetente']) || !$post['id_user_remetente']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_user_remetente é obrigatório.'
));
}
if(!isset($post['descricao']) || !$post['descricao']){
return json_encode(array(
'status' => false,
'message' => 'O campo descrição é obrigatório.'
));
}
if(!isset($post['tipo']) || !$post['tipo']){
return json_encode(array(
'status' => false,
'message' => 'O campo tipo é obrigatório.'
));
}
if(!isset($post['id_condominio_torre']) || !$post['id_condominio_torre']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_condominio_torre é obrigatório.'
));
}
$recado = new Recado();
$recado->id_user_remetente = $post['id_user_remetente'];
$recado->descricao = $post['descricao'];
$recado->data = date('Y-m-d H:i:s');
$recado->tipo = $post['tipo'];
$recado->save();
if($post['id_condominio_torre'] == 'todos'){
//$idCondominio = CondominioService::buscarCondominioAtual($reserva->id_user_responsavel);
$idCondominio = CondominioService::buscarCondominioAtual($post['id_user_remetente']);
$users = DB::table('sis_users')
->select('sis_users.*')
->join('sis_role_users', 'sis_users.id', '=', 'sis_role_users.user_id')
->join('condomino', 'sis_users.id_condomino', '=', 'condomino.id')
->join('condominio_unidade', 'condomino.id_condominio_unidade', '=', 'condominio_unidade.id')
->join('condominio_torre', 'condominio_torre.id', '=', 'condominio_unidade.id_condominio_torre')
->where('condominio_torre.id_condominio', $idCondominio)
->get();
}else{
//$torre = CondominioTorre::find($post['id_condominio_torre']);
$users = DB::table('sis_users')
->select('sis_users.*')
->join('sis_role_users', 'sis_users.id', '=', 'sis_role_users.user_id')
->join('condomino', 'sis_users.id_condomino', '=', 'condomino.id')
->join('condominio_unidade', 'condomino.id_condominio_unidade', '=', 'condominio_unidade.id')
->where('condominio_unidade.id_condominio_torre', $post['id_condominio_torre'])
->where('sis_role_users.role_id', '!=', 6) // Não notificar o porteiro
->get();
}
foreach ($users as $user) {
$recadoDestinatario = new RecadoDestinatario();
$recadoDestinatario->id_user_destinatario = $user->id;
$recadoDestinatario->id_recado = $recado->id;
$recadoDestinatario->save();
}
switch ($post['tipo']) {
case 'A': $tipo = 'S'; $titulo = 'Aviso do Síndico'; break;
case 'S': $tipo = 'V'; $titulo = 'Solicitação de Vizinho'; break;
default:
# code...
break;
}
if($post['id_condominio_torre'] == 'todos'){
$usuariosFiltrados = CondominioService::notificarCondominio($post['id_user_remetente'], $tipo, $titulo, $post['descricao'], $idCondominio, 'recado', $recado->id);
}else{
$usuariosFiltrados = CondominioService::notificarTorre($post['id_user_remetente'], $tipo, $titulo, $post['descricao'], $post['id_condominio_torre'], 'recado', $recado->id);
}
$status = true;
$message = 'Recado criado com sucesso!';
$response = $recado;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response,
'usuariosFiltrados' => $usuariosFiltrados
));
}
public function visualizarQuestionamentos(){
$post = \Request::input();
$response = null;
if(!isset($post['id_questionamento']) || !$post['id_questionamento']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_questionamento é obrigatório.'
));
}
Questionamento::where('id', $post['id_questionamento'])->update(array('visualizado' => 1));
$status = true;
$message = 'Questionamento visualizado com sucesso!';
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function visualizarNotificacoes(){
$post = \Request::input();
$response = null;
if(!isset($post['id_notificacao']) || !$post['id_notificacao']){
Notificacao::where('id_user_destinatario', $post['id_user_destinatario'])->where('id_referencia', $post['id_referencia'])->update(array('status' => 1));
}else{
Notificacao::where('id', $post['id_notificacao'])->update(array('status' => 1));
}
$status = true;
$message = 'Notificação visualizada com sucesso!';
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarConfiguracoesNotificacao(){
$post = \Request::input();
$response = null;
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_user é obrigatório.'
));
}
$configuracoes = ConfiguracaoNotificacao::where('id_user', $post['id_user'])->get();
$response = $configuracoes;
$status = true;
$message = 'Configurações buscadas com sucesso!';
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarDiasMes(Request $request){
$post = $request->input();
$dias = cal_days_in_month(CAL_GREGORIAN, $post['mes'], $post['ano']);
$return = [];
for ($i=1; $i<=$dias ; $i++) {
$countReservas = Reserva::join('condominio_unidade', 'reserva.id_condominio_unidade', '=', 'condominio_unidade.id')
->join('condominio_torre', 'condominio_unidade.id_condominio_torre', '=', 'condominio_torre.id')
->where('data',$post['ano'].'-'.$post['mes'].'-'.$i)
->where('reserva.status', 'A')
->where('condominio_torre.id_condominio',$post['id_condominio'])->count();
$countEventosPrivados = EventoPrivado::select('evento_privado.*')
->join('sis_users', 'evento_privado.id_user_responsavel', '=', 'sis_users.id')
->where('sis_users.id', $post['id_user'])
->where('evento_privado.data',$post['ano'].'-'.$post['mes'].'-'.$i)->count();
if($countReservas || $countEventosPrivados){
$temEvento = true;
}else{
$temEvento = false;
}
$diaSemana = date('w',strtotime($post['ano'].'-'.$post['mes'].'-'.$i)) +1;
switch ($diaSemana) {
case 1: $dia = 'Dom'; break;
case 2: $dia = 'Seg'; break;
case 3: $dia = 'Ter'; break;
case 4: $dia = 'Qua'; break;
case 5: $dia = 'Qui'; break;
case 6: $dia = 'Sex'; break;
case 7: $dia = 'Sáb'; break;
}
$return[] = array(
'dia' => $i,
'temEvento' => $temEvento,
'diaSemana' => $dia
);
}
return json_encode($return);
}
public function buscarEventosDia(Request $request){
$post = $request->input();
$reservas = Reserva::select('reserva.*')->join('condominio_unidade', 'reserva.id_condominio_unidade', '=', 'condominio_unidade.id')
->join('condominio_torre', 'condominio_unidade.id_condominio_torre', '=', 'condominio_torre.id')
->where('data',$post['ano'].'-'.$post['mes'].'-'.$post['dia'])
->where('condominio_torre.id_condominio',$post['id_condominio'])->where('reserva.status', 'A')->with('espacoComum', 'espacoComumHorario', 'userResponsavel')->get();
$eventos_privados = EventoPrivado::select('evento_privado.*')
->join('sis_users', 'evento_privado.id_user_responsavel', '=', 'sis_users.id')
->where('sis_users.id', $post['id_user'])
->where('evento_privado.data',$post['ano'].'-'.$post['mes'].'-'.$post['dia'])->with('userResponsavel')->get();
return json_encode(array(
'reservas' => $reservas,
'eventos_privados' => $eventos_privados
));
}
public function buscarEventosSemana(Request $request){
$post = $request->input();
$reservas = Reserva::select('reserva.*')->join('condominio_unidade', 'reserva.id_condominio_unidade', '=', 'condominio_unidade.id')
->join('condominio_torre', 'condominio_unidade.id_condominio_torre', '=', 'condominio_torre.id')
->where('data','>=',$post['ano'].'-'.$post['mes'].'-'.$post['dia'])
->where('data','<=',date('Y-m-d', strtotime($post['ano'].'-'.$post['mes'].'-'.$post['dia'].' + 1 week')))
->where('condominio_torre.id_condominio',$post['id_condominio'])->where('reserva.status', 'A')->with('espacoComum', 'espacoComumHorario', 'userResponsavel')->get();
$eventos_privados = EventoPrivado::select('evento_privado.*')
->join('sis_users', 'evento_privado.id_user_responsavel', '=', 'sis_users.id')
->where('sis_users.id', $post['id_user'])
->where('evento_privado.data','>=',$post['ano'].'-'.$post['mes'].'-'.$post['dia'])
->where('evento_privado.data','<=',date('Y-m-d', strtotime($post['ano'].'-'.$post['mes'].'-'.$post['dia'].' + 1 week')))
->with('userResponsavel')->get();
return json_encode(array(
'reservas' => $reservas,
'eventos_privados' => $eventos_privados
));
}
public function aprovarReserva(Request $request){
$post = $request->input();
$reserva = Reserva::find($post['id_reserva']);
if($reserva){
if($post['status'] == 'A'){
$reserva->status = 'A';
$mensagem = 'O síndico aprovou sua reserva.';
}elseif($post['status'] == 'R'){
$reserva->status = 'R';
$mensagem = 'O síndico recusou sua reserva.';
}
$reserva->save();
$idCondominio = CondominioService::buscarCondominioAtual($reserva->id_user_responsavel);
$idSindico = CondominioService::buscarSindicoCondominio($idCondominio);
CondominioService::notificarUsuario($idSindico, 'S', $mensagem, $reserva->espacoComum->nome, $reserva->id_user_responsavel, 'reserva', $reserva->id);
$status = true;
//$message = 'Reserva aprovada com sucesso!';
}else{
$status = false;
$mensagem = 'Não existe uma reserva com esse ID.';
}
return json_encode(array(
'status' => $status,
'message' => $mensagem
));
}
public function sincronizarFacebook(Request $request){
$post = $request->input();
$status = false;
$message = 'Não foi possível sincronizar com os dados do Facebook.';
$img = \Image::make($post['picture']);
$id_condominio = CondominioService::buscarCondominioAtual($post['id_user']);
$tmpFilePath = 'uploads/users/'.$id_condominio.'/';
$fileName = 'user'.$post['id_user'].'.jpg';
$img->save($tmpFilePath.$fileName);
$user = User::find($post['id_user']);
$user->first_name = $post['name'];
$user->email = $post['email'];
$user->thumbnail_principal = $fileName;
$user->save();
$status = true;
$message = 'Facebook sincronizado com sucesso!';
return json_encode(array(
'status' => $status,
'message' => $message
));
}
public function criarPrestadorServico(){
$post = \Request::input();
$response = null;
$status = false;
$message = "Não foi possível criar o registro. Tente novamente mais tarde.";
if(!isset($post['id_condominio_torre']) || !$post['id_condominio_torre']){
return json_encode(array(
'status' => false,
'message' => 'O campo Torre é obrigatório.'
));
}
if(!isset($post['id_segmento_servico']) || !$post['id_segmento_servico']){
return json_encode(array(
'status' => false,
'message' => 'O campo Segmento de Serviço é obrigatório.'
));
}
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo nome é obrigatório.'
));
}
$prestadorServico = new PrestadorServico();
$prestadorServico->nome = $post['nome'];
$prestadorServico->id_condominio_torre = $post['id_condominio_torre'];
$prestadorServico->id_segmento_servico = $post['id_segmento_servico'];
$prestadorServico->telefone = (isset($post['telefone'])) ? $post['telefone'] : null;
$prestadorServico->email = (isset($post['email'])) ? $post['email'] : null;
$prestadorServico->site = (isset($post['site'])) ? $post['site'] : null;
$prestadorServico->save();
$status = true;
$message = 'Prestador criado com sucesso!';
$response = $prestadorServico;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function editarPrestadorServico(){
$post = \Request::input();
$response = null;
$status = false;
$message = "Não foi possível editar o registro. Tente novamente mais tarde.";
if(!isset($post['id_prestador_servico']) || !$post['id_prestador_servico']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID é obrigatório.'
));
}
if(!isset($post['id_condominio_torre']) || !$post['id_condominio_torre']){
return json_encode(array(
'status' => false,
'message' => 'O campo Torre é obrigatório.'
));
}
if(!isset($post['id_segmento_servico']) || !$post['id_segmento_servico']){
return json_encode(array(
'status' => false,
'message' => 'O campo Segmento de Serviço é obrigatório.'
));
}
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo nome é obrigatório.'
));
}
$prestadorServico = PrestadordeServico::find($post['id_prestador_servico']);
$prestadorServico->nome = $post['nome'];
$prestadorServico->id_condominio_torre = $post['id_condominio_torre'];
$prestadorServico->id_segmento_servico = $post['id_segmento_servico'];
$prestadorServico->telefone = (isset($post['telefone'])) ? $post['telefone'] : $prestadorServico->telefone;
$prestadorServico->email = (isset($post['email'])) ? $post['email'] : $prestadorServico->email;
$prestadorServico->site = (isset($post['site'])) ? $post['site'] : $prestadorServico->site;
$prestadorServico->save();
$status = true;
$message = 'Prestador editado com sucesso!';
$response = $prestadorServico;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function deletarPrestadorServico(){
$post = \Request::input();
$response = null;
$status = false;
$message = "Não foi possível deletar o registro. Tente novamente mais tarde.";
if(!isset($post['id_prestador_servico']) || !$post['id_prestador_servico']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID é obrigatório.'
));
}
PrestadordeServico::where('id',$post['id_prestador_servico'])->delete();
$status = true;
$message = 'Prestador deletado com sucesso!';
$response = $prestadorServico;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarSegmentosServico(){
$segmentos = SegmentoServico::get();
return $segmentos;
}
public function buscarPrestadoresServico(){
$post = \Request::input();
$response = null;
$status = false;
$message = "Não foi possível buscar os registros. Tente novamente mais tarde.";
if(!isset($post['id_condominio']) || !$post['id_condominio']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID Condomínio é obrigatório.'
));
}
$query = PrestadordeServico::select('prestador_de_servico.*')->join('condominio_torre', 'prestador_de_servico.id_condominio_torre', '=', 'condominio_torre.id')
->where('condominio_torre.id_condominio',$post['id_condominio']);
if(isset($post['id_segmento_servico'])){
$query->where('prestador_de_servico.id_segmento_servico', $post['id_segmento_servico'])->get();
}
$prestadores = $query->get();
$status = true;
$message = 'Prestadores buscados com sucesso!';
$response = $prestadores;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function alterarFotoPerfil(Request $request){
if($request->hasFile('file')) {
//upload an image to the /img/tmp directory and return the filepath.
$file = $request->file('file');
$id_condominio = CondominioService::buscarCondominioAtual($request->input('id_user'));
$tmpFilePath = 'uploads/users/'.$id_condominio.'/';
$tmpFileName = time() . '-' . $file->getClientOriginalName();
$file = $file->move(public_path() . '/'.$tmpFilePath, $tmpFileName);
$path = '/'.$tmpFilePath . $tmpFileName;
$img = \Image::make($tmpFilePath.$tmpFileName);
$tmpThumbName = 'thumb_'.$tmpFileName;
if($img->resize($img->width()/5, $img->height()/5)->save($tmpFilePath.$tmpThumbName)){
$pathThumb = '/'.$tmpFilePath.$tmpThumbName;
$user = User::find($request->input('id_user'));
$user->thumbnail_principal = $tmpThumbName;
$user->save();
return response()->json(array('status'=> true, 'file_name'=>$tmpFileName, 'file_name_thumb' => $tmpThumbName), 200);
}else{
return response()->json(array('status'=>false,'message' => 'Não foi possível alterar o tamanho da imagem.'), 200);
}
} else {
return response()->json(false, 200);
}
}
public function buscarDadosUsuario(Request $request){
$params = $request->input();
$usuario = User::find($params['id_user']);
$response = null;
if($usuario){
$status = true;
$message = "Dados buscados com sucesso!";
$response = $usuario;
}else{
$status = false;
$message = "Não existe um usuário com esse ID";
}
return response()->json(array('status'=> $status, 'message'=>$message, 'response' => $response), 200);
}
public function criarCondominio(){
$post = \Request::input();
$response = null;
$status = false;
$message = "Não foi possível criar o condomínio. Tente novamente mais tarde.";
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo Nome é obrigatório.'
));
}
if(!isset($post['endereco']) || !$post['endereco']){
return json_encode(array(
'status' => false,
'message' => 'O campo Endereço é obrigatório.'
));
}
if(!isset($post['id_cidade']) || !$post['id_cidade']){
return json_encode(array(
'status' => false,
'message' => 'O campo Cidade é obrigatório.'
));
}
if(!isset($post['bairro']) || !$post['bairro']){
return json_encode(array(
'status' => false,
'message' => 'O campo Bairro é obrigatório.'
));
}
if(!isset($post['numero_torres']) || !$post['numero_torres']){
return json_encode(array(
'status' => false,
'message' => 'O campo Número de Torres é obrigatório.'
));
}
if(!isset($post['numero_andares']) || !$post['numero_andares']){
return json_encode(array(
'status' => false,
'message' => 'O campo Número de Andares é obrigatório.'
));
}
if(!isset($post['numero_apartamentos_andar']) || !$post['numero_apartamentos_andar']){
return json_encode(array(
'status' => false,
'message' => 'O campo Número de Apartamentos por andar é obrigatório.'
));
}
if(!isset($post['nome_sindico']) || !$post['nome_sindico']){
return json_encode(array(
'status' => false,
'message' => 'O campo Nome do Síndico é obrigatório.'
));
}
if(!isset($post['email_sindico']) || !$post['email_sindico']){
return json_encode(array(
'status' => false,
'message' => 'O campo E-mail do Síndico é obrigatório.'
));
}
if(!isset($post['cep']) || !$post['cep']){
return json_encode(array(
'status' => false,
'message' => 'O campo CEP é obrigatório.'
));
}
if(User::where('email', $post['email_sindico'])->count()){
return json_encode(array(
'status' => false,
'message' => 'Seu síndico ja foi cadastrado. Favor entrar em contato com ele.'
));
}
$condominio = CondominioService::criarCondominio($post);
$status = true;
$message = 'Condomínio criado com sucesso!';
$response = $condominio;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarEstados()
{
$filtros = \Request::input();
$query = Estado::select('estado.*')->orderBy('estado.nome', 'ASC');
$listaEstados = $query->get();
return $listaEstados;
}
public function buscarCidades()
{
$filtros = \Request::input();
$query = Cidade::select('cidade.*')->orderBy('cidade.nome', 'ASC');
if(isset($filtros['estado'])){
$query->where('estado', $filtros['estado']);
}
$listaCidades = $query->get();
return $listaCidades;
}
public function alterarUsuarioGeradoSindico(){
$post = \Request::input();
$result = CondominioService::alterarUsuarioGeradoSindico($post);
return json_encode($result);
}
public function criarPessoaAutorizada(){
$post = \Request::input();
$response = null;
$status = false;
$message = "Não foi possível alterar o usuário. Tente novamente mais tarde.";
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo Nome é obrigatório.'
));
}
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_user é obrigatório.'
));
}
if(!isset($post['documento']) || !$post['documento']){
return json_encode(array(
'status' => false,
'message' => 'O campo Documento é obrigatório.'
));
}
if(!isset($post['observacao']) || !$post['observacao']){
return json_encode(array(
'status' => false,
'message' => 'O campo Observação é obrigatório.'
));
}
$PessoaAutorizada = new PessoaAutorizada;
$PessoaAutorizada->nome = $post['nome'];
$PessoaAutorizada->id_user_responsavel = $post['id_user'];
$PessoaAutorizada->observacao = $post['observacao'];
$PessoaAutorizada->id_condominio_unidade = CondominioService::buscarCondominioUnidadeAtual($post['id_user']);
$PessoaAutorizada->documento = $post['documento'];
if($post['thumbnail_principal']){
$PessoaAutorizada->thumbnail_principal = $post['thumbnail_principal'];
}
$PessoaAutorizada->save();
//$PessoaAutorizada->id ; retorna ID
$status = true;
$message = 'Pessoa Autorizada foi criada com sucesso!';
$response = $PessoaAutorizada;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscaPessoaAutorizada(){
$post = \Request::input();
$response = null;
$status = false;
$message = "Não foi possível alterar o usuário. Tente novamente mais tarde.";
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_user é obrigatório.'
));
}
if(isset($post['id_pessoa_autorizada'])){
$pessoa = PessoaAutorizada::find($post['id_pessoa_autorizada']);
if($pessoa){
$response = $pessoa;
$status = true;
$message = 'Registro buscado com sucesso!';
}else{
$status = false;
$message = 'Não foi encontrado um veículo com esse ID.';
}
}else{
$query = PessoaAutorizada::select('pessoa_autorizada.*')
->where('pessoa_autorizada.id_user_responsavel',$post['id_user']);
$pessoasAutorizadas = $query->get();
$response = null;
if($pessoasAutorizadas){
$status = true;
$message = "Dados buscados com sucesso!";
$response = $pessoasAutorizadas;
}else{
$status = false;
$message = "Não existe com esse ID";
}
}
return response()->json(array('status'=> $status, 'message'=>$message, 'response' => $response), 200);
}
public function deletarPessoaAutorizada(){
$post = \Request::input();
$response = null;
if(!isset($post['id_pessoa_autorizada']) || !$post['id_pessoa_autorizada']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID pessoa autorizada é obrigatório.'
));
}
$pessoa = PessoaAutorizada::find($post['id_pessoa_autorizada']);
if($pessoa){
$pessoa->delete();
$status = true;
$message = 'Pessoa Autorizada removida com sucesso!';
}else{
return json_encode(array(
'status' => false,
'message' => 'Não foi encontrado uma pessoa autorizada com esse ID.'
));
}
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function editarPessoaAutorizada(){
$post = \Request::input();
$response = null;
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo Nome é obrigatório.'
));
}
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_user é obrigatório.'
));
}
if(!isset($post['documento']) || !$post['documento']){
return json_encode(array(
'status' => false,
'message' => 'O campo Documento é obrigatório.'
));
}
if(!isset($post['observacao']) || !$post['observacao']){
return json_encode(array(
'status' => false,
'message' => 'O campo Observação é obrigatório.'
));
}
$PessoaAutorizada = PessoaAutorizada::find($post[' ']);
$PessoaAutorizada->nome = $post['nome'];
$PessoaAutorizada->observacao = $post['observacao'];
$PessoaAutorizada->documento = $post['documento'];
if($post['thumbnail_principal']){
$PessoaAutorizada->thumbnail_principal = $post['thumbnail_principal'];
}
$PessoaAutorizada->save();
$status = true;
$message = 'Pessoa Autorizada editada com sucesso!';
$response = $PessoaAutorizada;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function editarPerfilCondomino(Request $request){
$post = $request->input();
$status = false;
$message = 'Não foi possível sincronizar com os dados do Facebook.';
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_user é obrigatório.'
));
}
$userEmail = User::where('email', $post['email'])->first();
if($userEmail && ($userEmail->id != $post['id_user'])){
return json_encode(array(
'status' => false,
'message' => 'Já existe um usuário com esse e-mail.'
));
}
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo Nome é obrigatório.'
));
}
if(!isset($post['email']) || !$post['email']){
return json_encode(array(
'status' => false,
'message' => 'O campo email é obrigatório.'
));
}
$user = User::find($post['id_user']);
if(isset($post['password']) && $post['password']){
if(strlen($post['password']) >= 6){
$user->password = bcrypt($post['password']);
}else{
return json_encode(array(
'status' => false,
'message' => 'A senha deve conter no mínimo 6 caracteres.'
));
}
}
$user->first_name = $post['nome'];
$user->email = $post['email'];
$user->save();
$status = true;
$message = 'Conta atualizada com sucesso!';
return json_encode(array(
'status' => $status,
'message' => $message
));
}
public function buscarTodosUsuariosCondominio(Request $request){
// enviar apenas id do condominio e o id do grupo
$post = $request->input();
if(!isset($post['id_condominio']) || !$post['id_condominio']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_condominio é obrigatório.'
));
}
if(!isset($post['id_roles']) || !$post['id_roles']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_roles é obrigatório.'
));
}
$torres = CondominioTorre::select('condominio_torre.*')
->where('condominio_torre.id_condominio', '=', $post['id_condominio'])
->get();
foreach ($torres as $key => $torre) {
$torres[$key]->usuarios = $torre->usersByRole($post['id_roles']);
}
$status = true;
$message = 'Condominos buscados com sucesso!';
$response = $torres;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function buscarMotivosTrocaSindico()
{
$filtros = \Request::input();
$query = MotivoTrocaSindico::select('*')->orderBy('nome', 'ASC');
$listaMotivos = $query->get();
$status = true;
$message = 'Motivos buscados com sucesso!';
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $listaMotivos
));
}
public function buscarSindicoCondominioApi()
{
$post = \Request::input();
if(!isset($post['id_condominio']) || !$post['id_condominio']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_condominio é obrigatório.'
));
}
$idSindico = CondominioService::buscarSindicoCondominio($post['id_condominio']);
$status = true;
$message = 'Sindico buscado com sucesso!';
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $idSindico
));
}
public function trocarSindicoCondominio(Request $request){
$post = $request->input();
if(!isset($post['id_user']) || !$post['id_user']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_user é obrigatório.'
));
}
if(!isset($post['id_novo_sindico']) || !$post['id_novo_sindico']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_novo_sindico é obrigatório.'
));
}
if(!isset($post['id_motivo_troca_sindico']) || !$post['id_motivo_troca_sindico']){
return json_encode(array(
'status' => false,
'message' => 'O campo motivo troca de síndico é obrigatório.'
));
}
if(!isset($post['observacao']) || !$post['observacao']){
return json_encode(array(
'status' => false,
'message' => 'O campo observacao é obrigatório.'
));
}
if(!isset($post['id_condominio']) || !$post['id_condominio']){
return json_encode(array(
'status' => false,
'message' => 'O campo id_condominio é obrigatório.'
));
}
$retorno = 'teste';
$sindicoAtual = Sentinel::findUserById($post['id_user']);
$futuroSindico = Sentinel::findUserById($post['id_novo_sindico']);
$roleSindico = Sentinel::findRoleById(2);
$roleCondomino = Sentinel::findRoleById(3);
try {
$roleSindico->users()->detach($sindicoAtual);
$roleCondomino->users()->attach($sindicoAtual);
$roleCondomino->users()->detach($futuroSindico);
$roleSindico->users()->attach($futuroSindico);
$historicoSindicoAntigo = HistoricoSindico::where('id_user', $post['id_user'])->orderBy('data_inicio_gestao', 'desc')->first();
$historicoSindicoAntigo->data_fim_gestao = date('Y-m-d H:i:s');
$historicoSindicoAntigo->id_motivo_troca_sindico = $post['id_motivo_troca_sindico'];
$historicoSindicoAntigo->observacao = $post['observacao'];
$historicoSindicoAntigo->save();
$historicoSindicoNovo = new HistoricoSindico;
$historicoSindicoNovo->data_inicio_gestao = date('Y-m-d H:i:s');
$historicoSindicoNovo->id_condominio = $post['id_condominio'];
$historicoSindicoNovo->id_user = $post['id_novo_sindico'];
$historicoSindicoNovo->save();
} catch (\Illuminate\Database\QueryException $e) {
return json_encode(array(
'status' => false,
'message' => 'Erro de chave primária. Entre em contato com o suporte.'
));
}
$mensagem = 'Parabéns, você é o novo síndico do condomínio, por favor, faça login novamente para que o aplicativo atualize os seus menus de acesso.';
$titulo = 'Você é o novo Síndico';
$arrayIds = [];
array_push($arrayIds, $futuroSindico->udid);
$teste = CondominioService::sendMessage($arrayIds, $mensagem, $titulo, 'novoSindico', $caminho = null);
$status = true;
$message = 'Sindico modificado com sucesso!';
$response = $retorno;
return json_encode(array(
'status' => $status,
'message' => $message,
'response' => $response
));
}
public function cancelarReserva(Request $request){
$post = $request->input();
$usuario = Sentinel::findUserById($post['id_user']);
$reserva = Reserva::with('convidados')->find($post['id_reserva']);
if($reserva){
$message = "O usuário ".$usuario->first_name." ".$usuario->last_name." cancelou a reserva do espaço comum ".$reserva->espacoComum->nome." do dia ".date('d/m/Y', strtotime($reserva->data));
if (($usuario->inRole('condomino') || $usuario->inRole('auxiliar')) && $reserva->id_user_responsavel == $usuario->id || !($usuario->inRole('condomino') || $usuario->inRole('auxiliar'))) {
foreach ($reserva->convidados as $convidado) {
$convidado->delete();
}
$reservaAprovada = $reserva->espacoComum->reserva_aprovada;
Reserva::where('id',$post['id_reserva'])->delete();
if($reservaAprovada){
$idSindico = CondominioService::buscarSindicoCondominio($post['id_condominio']);
$sindico = \App\User::find($idSindico);
$status = CondominioService::sendMessage(array(0 => $sindico->udid), $message, "Reserva cancelada", "reservaCancelada", null);
}
Notificacao::where('tipo', 'reserva')->where('id_referencia',$post['id_reserva'])->delete();
}else{
return json_encode(array(
'status' => false,
'message' => 'Você não tem permissões para excluir essa reserva.'
));
}
}else{
return json_encode(array(
'status' => false,
'message' => 'A reserva com esse ID não foi encontrada.'
));
}
return json_encode(array(
'status' => true,
'message' => 'Reserva cancelada com sucesso.'
));
}
public function criarEventoPrivado(Request $request){
$post = $request->input();
if(!isset($post['nome']) || !$post['nome']){
return json_encode(array(
'status' => false,
'message' => 'O campo Nome é obrigatório.'
));
}
if(!isset($post['data']) || !$post['data']){
return json_encode(array(
'status' => false,
'message' => 'O campo Data é obrigatório.'
));
}
if($post['data'] < date('Y-m-d')){
return json_encode(array(
'status' => false,
'message' => 'O campo Data deve ser posterior à data atual.'
));
}
if(!isset($post['hora_inicial']) || !$post['hora_inicial']){
return json_encode(array(
'status' => false,
'message' => 'O campo Hora Inicial é obrigatório.'
));
}
if(!isset($post['hora_final']) || !$post['hora_final']){
return json_encode(array(
'status' => false,
'message' => 'O campo Hora Final é obrigatório.'
));
}
if(!isset($post['local']) || !$post['local']){
return json_encode(array(
'status' => false,
'message' => 'O campo Local é obrigatório.'
));
}
if(!isset($post['id_user_responsavel']) || !$post['id_user_responsavel']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID User Responsável é obrigatório.'
));
}
$convidados = (isset($post['convidados'])) ? $post['convidados'] : array();
unset($post['convidados']);
$eventoPrivado = new EventoPrivado();
$eventoPrivado->fill($post);
$eventoPrivado->save();
//nl2br(strip_tags(html_entity_decode()));
foreach ($convidados as $convidado) {
$novoConvidado = new Convidado();
$novoConvidado->nome = $convidado['nome'];
$novoConvidado->documento = $convidado['documento'];
$novoConvidado->save();
$epConvidado = new EventoPrivadoConvidado();
$epConvidado->id_convidado = $novoConvidado->id;
$epConvidado->id_evento_privado = $eventoPrivado->id;
$epConvidado->save();
}
return json_encode(array(
'status' => true,
'message' => 'Evento criado com sucesso.',
'response' => $eventoPrivado
));
}
public function buscarCondominio(Request $request){
$post = $request->input();
if(!isset($post['id_condominio']) || !$post['id_condominio']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID Condomínio é obrigatório.'
));
}
$condominio = Condominio::with('torres.unidades.condominos.user')->find($post['id_condominio']);
if($condominio){
return json_encode(array(
'status' => true,
'message' => 'Condomínio buscado com sucesso.',
'response' => $condominio
));
}else{
return json_encode(array(
'status' => false,
'message' => 'Não foi encontrado um condomínio com esse ID.'
));
}
}
public function deletarEventoPrivado(Request $request){
$post = $request->input();
if(!isset($post['id_evento_privado']) || !$post['id_evento_privado']){
return json_encode(array(
'status' => false,
'message' => 'O campo ID Evento Prviado é obrigatório.'
));
}
$eventoPrivado = EventoPrivado::with('convidados')->find($post['id_evento_privado']);
if($eventoPrivado){
foreach ($eventoPrivado->convidados as $convidado) {
$convidado->delete();
}
$eventoPrivado->delete();
return json_encode(array(
'status' => true,
'message' => 'Evento removido com sucesso.'
));
}else{
return json_encode(array(
'status' => false,
'message' => 'Não foi encontrado um evento com esse ID.'
));
}
}
public function salvarContatoSommelier(){
$post = \Request::input();
$user = User::where('email', 'contato@vinumday.com.br')->first();
$user->email = 'contato@sommelierprofissional.com.br';
$post['nome'] = !empty($post['nome']) ? $post['nome'] : 'Site Sommelier Profissional';
$post['telefone'] = '';
$subject = 'Mensagem enviada pelo site sommelierprofissional.com.br';
$post['tipo'] = 'sommelier';
$post['assunto'] = $subject;
// Create the Transport
$transport = (new \Swift_SmtpTransport('smtp.dreamhost.com', 587))
->setUsername('noreply@sommelierprofissional.com.br')
->setPassword('n0r3plymail');
$html = view('emails.contato', $post)->render();
// Create the Mailer using your created Transport
$mailer = new \Swift_Mailer($transport);
// Create a message
$message = (new \Swift_Message($subject))
->setFrom(['noreply@sommelierprofissional.com.br' => 'Sommelier Profissional'])
->setTo([$user->email => $post['nome']])
->setBody($html, 'text/html')
;
// Send the message
$result = $mailer->send($message);
return response()->json(array(
'status' => true,
'message' => "Mensagem enviada com sucesso!"
));
}
public function salvarMailchimpSommelier(){
$input = \Request::input();
$apiKey = '0019c29b4a26764a03ae500930572efa-us4';
$listId = 'c31218bc38';
$status = true;
$message = "Obrigado por se cadastrar";
if(!isset($input['email']) || !isset($input['name'])){
$status = false;
$message = "E-mail ou Nome não setado!";
}elseif(empty($input['email']) || empty($input['name'])){
$status = false;
$message = "E-mail ou Nome não preenchido!";
}else{
$mc = new \NZTim\Mailchimp\Mailchimp($apiKey);
$result = $mc->subscribe($listId, $input['email'], ['FNAME' => $input['name']], false);
$resultado = is_array($result) ? json_encode($result) : $result;
Log::info($resultado);
}
return response()->json(array(
'status' => $status,
'message' => $message
));
}
public function salvarAcessoUsuario(){
$post = \Request::input();
if(!isset($post['id_usuario']) || !$post['id_usuario']){
return json_encode(array(
'status' => false,
'message' => 'O campo `id_usuario` é obrigatório.'
));
}
if(!isset($post['email']) || !$post['email']){
return json_encode(array(
'status' => false,
'message' => 'O campo `email` é obrigatório.'
));
}
if(!isset($post['senha']) || !$post['senha']){
return json_encode(array(
'status' => false,
'message' => 'O campo `senha` é obrigatório.'
));
}
$acesso = AcessoUsuario::where('id_usuario', $post['id_usuario'])->first();
if(!$acesso){
$acesso = new AcessoUsuario();
}
try {
$acesso->id_usuario = $post['id_usuario'];
$acesso->email = $post['email'];
$acesso->senha = bcrypt($post['senha']);
$acesso->updated_at = date('Y-m-d H:i:s');
$acesso->save();
} catch (\Exception $e) {
return response()->json([
'status' => false,
'message' => $e->getMessage()
]);
}
return response()->json([
'status' => true,
'message' => 'Acesso salvo com sucesso'
]);
}
}