Commit c4ea73ff authored by Fabricio Jose de Oliveira Ceschin's avatar Fabricio Jose de Oliveira Ceschin
Browse files

Create method save_agendamento

parent 93e0b439
......@@ -177,6 +177,10 @@ class App::Json::CidadaosController < App::Json::AppController
return render :json=> {:sucess=>true, :bloqueio => true, :mensagem => "A utilização do agendador pela internet está desatibilitada nesta cidade."}
end
if resource.first.tmibge_id != Prefeitura.first.tmibge_id
return render :json=> {:sucess=>true, :bloqueio => true, :mensagem => "Sua cidade é diferente desta prefeitura."}
end
prefeitura = Prefeitura.first
bloqueio = Bloqueio.situacao(resource.first).first
num_agendamentos = Agendamento.cidadao_agendados(resource.first).count
......@@ -190,6 +194,65 @@ class App::Json::CidadaosController < App::Json::AppController
end
# /app/json/cidadao/save_agendamento?token=[:token]&agendamento_id=[:agendamento_id]&observacao=[:observacao]
def save_agendamento
resource = Cidadao.where(:token => params[:token])
if resource.size <= 0
render :json=> {:sucess=>false}
else
if (!Prefeitura.first.acessoCidadao)
# acesso nao disponivel
return render :json=> {:sucess=>true, :agendado => false}
end
if resource.first.tmibge_id != Prefeitura.first.tmibge_id
# cidade diferente
return render :json=> {:sucess=>true, :agendado => false}
end
prefeitura = Prefeitura.first
bloqueio = Bloqueio.situacao(resource.first).first
num_agendamentos = Agendamento.cidadao_agendados(resource.first).count
if (bloqueio && bloqueio.data_expira > Date.today) || (num_agendamentos >= prefeitura.max_agendamentos)
# cidadao bloqueado
return render :json=> {:sucess=>true, :agendado => false}
end
cidadao_agendamentos = Agendamento.cidadao_agendados(resource.first).count
if cidadao_agendamentos < Prefeitura.first.max_agendamentos
agendamento = Agendamento.where(id: params[:agendamento_id].to_i).first
if agendamento.tipo_situacao.vago?
agendamento.with_lock do
agendamento.tipo_situacao_id = TipoSituacao.agendado.id
agendamento.cidadao_id = resource.first.id
agendamento.observacao = params[:observacao] if params[:observacao]
agendamento.profissional_ajax_lido = 0
agendamento.save!
end
if resource.first.email != nil
unless resource.first.email.empty?
UserMailer.agendamento_email(resource.first, agendamento).deliver!
mail_sent = 1;
end
end
# agendado
return render :json=> {:sucess=>true, :agendado=>true}
else
# agendamento já não está mais disponível
return render :json=> {:sucess=>true, :agendado=>false}
end
else
return render :json=> {:sucess=>true, :agendado=>false}
end
end
end
private
end
......
......@@ -168,6 +168,7 @@ Agendador::Application.routes.draw do
get "cidadao/agendamentos/", :to => 'cidadaos#agendamentos'
get "cidadao/horarios_agendamentos/", :to => 'cidadaos#horarios_agendamentos'
get "cidadao/bloqueio_cidadao/", :to => 'cidadaos#bloqueio_cidadao'
get "cidadao/save_agendamento/", :to => 'cidadaos#save_agendamento'
# delete "/sign_out", :to => 'session#destroy'
# end
end
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment