public static function updateCliente()
 {
     $ClienteTO = new stdClass();
     $ClienteDao = new ClienteDao();
     $PessoaJuridicaDao = new PessoaJuridicaDao();
     $PessoaFisicaTO = new PessoaFisicaTO();
     $PessoaJuridicaTO = new PessoaJuridicaTO();
     $validator = new DataValidator();
     $empreendimentos = isset($_POST['empreendimentos']) ? $_POST['empreendimentos'] : array();
     $where = $_POST['where'];
     foreach ($_POST['campos'] as $key => $value) {
         if ($key != 'cpf' && $key != 'rg') {
             $ClienteTO->{$key} = $value;
         }
     }
     $PessoaFisicaTO->rg = isset($_POST['campos']["rg"]) ? $_POST['campos']["rg"] : "";
     $PessoaFisicaTO->cpf = isset($_POST['campos']["cpf"]) ? $_POST['campos']["cpf"] : "";
     $PessoaFisicaDao = new PessoaFisicaDao();
     $PessoaFisicaTO->usuarios_id = $ClienteTO->id;
     if (!$PessoaFisicaDao->updatePessoaFisica($PessoaFisicaTO)) {
         Flight::halt(500, 'Erro ao atualizar o cliente');
     }
     $validator->set_msg('Campo obrigatório')->set('nome', $ClienteTO->nome)->is_required();
     if (!empty($ClienteTO->email)) {
         $validator->set_msg('Email inválido')->set('email', $ClienteTO->email)->is_email();
     }
     $validator->set_msg('Campo obrigatório')->set('celular', $ClienteTO->celular)->is_required();
     $validator->set_msg('Campo obrigatório')->set('tel_fixo', $ClienteTO->tel_fixo)->is_required();
     if (!(isset($empreendimentos) && is_array($empreendimentos) && count($empreendimentos) > 0)) {
         $validator->_errors['empreendimentos'][] = 'É obrigatório informar pelo menos um empreendimento';
     }
     if (!$validator->validate()) {
         Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($validator->get_errors()))->send();
         return;
     }
     $result = $ClienteDao->ClienteUpdate($ClienteTO, $where);
     $EmpreendimentoDao = new EmpreendimentoDao();
     $UsuarioEmpreendimentoTO = new UsuarioEmpreendimentoTO();
     $UsuarioEmpreendimentoTO->id_usuario = $ClienteTO->id;
     $EmpreendimentoDao->delAllUsuarioEmp($UsuarioEmpreendimentoTO);
     if ($result) {
         $UsuarioEmpreendimentoTO->id_usuario = $ClienteTO->id;
         foreach ($empreendimentos as $key => $value) {
             $UsuarioEmpreendimentoTO->id_empreendimento = $value['id'];
             if (!$EmpreendimentoDao->saveUsuarioEmpreendimento($UsuarioEmpreendimentoTO)) {
                 Flight::halt(500, 'erro ao lincar usuario ao empreendimento');
             }
         }
         Flight::response()->status(200)->header('Content-Type', 'application/json')->write(json_encode(array('id' => $ClienteTO->id)))->send();
     } else {
         Flight::halt(500, 'Erro ao atualizar o cliente');
     }
 }