SIGE MANAGER";
// General check for user permissions.
if (!current_user_can('manage_options')) {
wp_die( __('You do not have sufficient pilchards to access this page.') );
}
count_views();
//////// Controle Geral de Inscrições ////////////////////////
echo '
Controle Geral de Inscrições
';
echo '
';
$events = array( array("name"=>"SIGE Online", "cod" => "online" . $ano),
array("name"=>"SIGE Presencial" , "cod" => "presencial" . $ano),
array("name"=>"I ENCONTRO NACIONAL DE TECNOLOGIAS QUÂNTICAS PARA A DEFESA (Online)", "cod" => "eged_online"),
array("name"=>"I ENCONTRO NACIONAL DE TECNOLOGIAS QUÂNTICAS PARA A DEFESA (Presencial)", "cod"=>"eged_presencial"),
array("name"=>"IVR Presencial", "cod"=>"ivr_presencial"),
array("name"=>"Inovação", "cod"=>"inovacao2023"),
array("name"=>"aerologlab2023", "cod"=>"aerologlab2023")
);
//Adicionar botao para exportar dados com os dados desejados
$meta_data = array("full_name", "militar","ehativa","forca","posto","circulo_hierarquico", "instituicao", "setordeatuacao", "areaatividadeprincipal", "cargofuncao" ,"nacionalidade", "cidade", "estado", "compartilha_dados","termos2022","compartilha2022","presencial_geral", "efetivo_dcta","serfa_ivr_credencial");
foreach($events as &$e) { $meta_data[] = $e["cod"]; }
foreach($courses as &$c) { $meta_data[] = $c; }
$user_list = generate_export_insc_list($meta_data, $ano);
array_to_csv_download($user_list, 'ListaInscritos'. date("d_m_Y") .'.csv', 'Exportar Lista Inscritos');
//Pegar informações de vagas do usuário controle de vagas (TODO: criar solução melhor)
//Hoje o usuário com ID 1551 usa os campos relativos aos minicursos para informar o número de vagas
$vagas = 700; //Vagas geral presencial
$user = get_user_by( 'ID', 1551); //ID do user controle_de_vagas
//Busca o número de vagas para cada minicurso
foreach ($events as &$e)
{
if ($user)
{
$e['Vagas'] = get_metadata('user', $user->ID, $e["cod"], true);
}
else
{
$e['Vagas'] = $vagas;
}
}
//Essa Função cria as tabelas e adiciona o botão para confirmações (ela está no SigeUtils.php)
generate_table_events($vagas, $events, "controleGeral", $ano);
//////// Controle de inscritos cada mini curso ////////////////////////
// Start building the page
echo 'Controle de Inscrições em Minicursos
';
echo '
';
//Adicionar o número de minicuros disponíveis para o ano do evento
//
//Pegar informações de vagas do usuário controle de vagas (TODO: criar solução melhor)
$events = array( array("name"=>"Mini Curso 1", "cod" => "mini1_".$ano),
array("name"=>"Mini Curso 2" , "cod" => "mini2_".$ano),
array("name"=>"Mini Curso 3", "cod" => "mini3_".$ano),
array("name"=>"Mini Curso 4", "cod"=>"mini4_".$ano),
array("name"=>"Mini Curso 5", "cod"=>"mini5_".$ano)
);
//Pegar informações de vagas do usuário controle de vagas (TODO: criar solução melhor)
$vagas = 60;
$user = get_user_by( 'ID', 1551); //ID do user controle_de_vagas
foreach ($events as &$e) {
if ($user) {
$e['Vagas'] = get_metadata('user', $user->ID, $e["cod"], true);
}
else {
$e['Vagas'] = $vagas;
}
}
generate_table_events($vagas, $events, "miniCourses", $ano);
//////// Controle de Presenciais ////////////////////////
$args = array(
'role' => 'inscritos_'.$ano, 'orderby' => 'ID'
);
$usr_list = get_users($args);
$num_local = 0;
$num_local_militar = 0;
$num_dcta = 0;
$num_dcta_militar = 0;
$num_dcta_militar_forcas = array("Força Aérea Brasileira" => 0, "Exército Brasileiro"=> 0, "Marinha do Brasil"=> 0, "Marinha Brasileira" => 0 , "Forças Auxiliares"=> 0);
$num_externo = 0;
$num_externo_militar = 0;
$num_externo_militar_forcas = array("Força Aérea Brasileira" => 0, "Exército Brasileiro"=> 0, "Marinha do Brasil"=> 0, "Forças Auxiliares"=> 0);
$num_externo_militar_SIGE = array("Força Aérea Brasileira" => 0, "Exército Brasileiro"=> 0, "Marinha do Brasil"=> 0, "Forças Auxiliares"=> 0);
$num_externo_militar_SIGEg = array("Força Aérea Brasileira" => 0, "Exército Brasileiro"=> 0, "Marinha do Brasil"=> 0, "Forças Auxiliares"=> 0);
$count_merge = array();
$count_merge_militar = array();
$count_merge_civil = array();
$count_merge_guarnaeSJ_militar = array();
$count_merge_guarnaeSJ_civil = array();
if ( ! empty( $usr_list ) ) {
foreach ( $usr_list as $usr )
{
if (get_metadata('user', $usr->ID, "presencial_geral", true) == "Sim")
{
$merge = checkEventoLocal($usr);
if (!array_key_exists($merge,$count_merge))
$count_merge[$merge] = 1;
else
$count_merge[$merge]++;
$num_local++;
if (get_metadata('user', $usr->ID, "militar", true) == "Sim")
{
$num_local_militar++;
}
if (get_metadata('user', $usr->ID, "efetivo_dcta", true) == "Sim")
{
$num_dcta++;
if (get_metadata('user', $usr->ID, "militar", true) == "Sim")
{
$num_dcta_militar++;
$forca = get_metadata('user', $usr->ID, "forca", true);
if( $forca == "Clique para escolher a Força" || $forca == "")
$forca = "Força Aérea Brasileira";
if ($forca == "Marinha Brasileira")
{
$forca = "Marinha do Brasil";
}
if (array_key_exists($forca, $num_dcta_militar_forcas ))
$num_dcta_militar_forcas[$forca]++;
else
$num_dcta_militar_forcas[$forca] = 1;
if (!array_key_exists($merge,$count_merge_guarnaeSJ_militar))
$count_merge_guarnaeSJ_militar[$merge] = 1;
else
$count_merge_guarnaeSJ_militar[$merge]++;
//if ($merge == "+EGED Presencial")
// $num_externo_militar_EGEDg[$forca]++;
//if ($merge == "+SERFA_IVR Presencial")
// $num_externo_militar_IVRg[$forca]++;
if ($merge == "+SIGE Presencial")
$num_externo_militar_SIGEg[$forca]++;
}
else
{
if (!array_key_exists($merge,$count_merge_guarnaeSJ_civil))
$count_merge_guarnaeSJ_civil[$merge] = 1;
else
$count_merge_guarnaeSJ_civil[$merge]++;
}
}
else
{
$num_externo++;
if (get_metadata('user', $usr->ID, "militar", true) == "Sim")
{
$num_externo_militar++;
$forca = get_metadata('user', $usr->ID, "forca", true);
if( $forca == "Clique para escolher a Força" || $forca == "")
$forca = "Força Aérea Brasileira";
if ($forca == "Marinha Brasileira")
{
$forca = "Marinha do Brasil";
}
if (array_key_exists($forca, $num_externo_militar_forcas ))
{
$num_externo_militar_forcas[$forca]++;
}
else
{
$num_externo_militar_forcas[$forca] = 1;
}
if (!array_key_exists($merge,$count_merge_militar))
$count_merge_militar[$merge] = 1;
else
$count_merge_militar[$merge]++;
}
else
{
if (!array_key_exists($merge,$count_merge_civil))
$count_merge_civil[$merge] = 1;
else
$count_merge_civil[$merge]++;
}
}
}
}
}
echo '
Total Presencial é Referente a "Participação Aprovada" e "Solicitar Participação" em algum dos eventos presenciais';
echo '
----------------------------------------------------------';
echo '
Total Presencial: ' . $num_local . '/' . sizeof($usr_list);
echo '
DCTA Presencial: ' . $num_dcta . ' ( ' . $num_dcta_militar . ' Militares ) -> ' . $num_dcta_militar_forcas["Força Aérea Brasileira"] .' FAB / ' . $num_dcta_militar_forcas["Exército Brasileiro"] .' EB / ' . $num_dcta_militar_forcas["Marinha do Brasil"] .' MB';
echo '
EXTERNO Presencial: ' . $num_externo . ' ( ' . $num_externo_militar . ' Militares ) -> ' . $num_externo_militar_forcas["Força Aérea Brasileira"] .' FAB / ' . $num_externo_militar_forcas["Exército Brasileiro"] .' EB / ' . $num_externo_militar_forcas["Marinha do Brasil"] .' MB';
echo '
----------------------------------------------------------
';
//////FUNÇÕES DE MANUTENÇÃO/////////////////
echo '
';
echo 'Migração Formato Anterior
';
//////// Botao para atualizar campos usuários pelo registro ////////////////////////
echo '
';
echo 'Este botão busca as entradas originais do formulário de cadastro e atualiza os seguintes campos adicionais dos usuários:
';
echo 'posto / militar / instituicao / nacionalidade / compartilhadados / nome exibição';
echo 'Só pressione se você sabe o que está fazendo !!!
';
// Check whether the button has been pressed AND also check the nonce
if (isset($_POST['update_from_reg_button']) && check_admin_referer('update_from_reg_button_clicked')) {
// the button has been pressed AND we've passed the security check
update_from_reg_button_action();
}
echo '';
/////////// MODELO PARA CRIAR UM BOTÃO PARA CHAMER UMA FUNÇÃO PERSONALIZADA ////////////////////////
/* echo '
';
echo 'Recusa inscrições específicas
';
echo 'Só pressione se você sabe o que está fazendo !!!
';
$btn_name = 'naoprova_emails';
if (isset($_POST[$btn_name]) && check_admin_referer($btn_name . '_clicked'))
{
nao_aprovar_evento();
}
echo ''; */
}
function update_from_reg_button_action()
{
$upd_count = 0;
global $wpdb;
$args = array('role' => 'subscriber' );
$usr_list = get_users();
if ( ! empty( $usr_list ) ) {
foreach ( $usr_list as $usr ) {
$usr_info = get_userdata( $usr->ID );
$usr_info->user_email;
//echo '' . $usr_info->display_name . ' : ' . $usr_info->user_email .'';
//Só checa novos usuários
//if (get_metadata( 'user', $usr->ID, 'militar', true ) != "" ) continue;
//Dados retirados do formulário de registro (4754 - 2022 / 742 - 2021)
$cf7_reg_id = get_cf7Id_from_email($usr_info->user_email, 4745);
if ($cf7_reg_id == null) {
$cf7_reg_id = get_cf7Id_from_email($usr_info->user_email, 742);
}
// Atualizar Campos
if ($cf7_reg_id != null)
{
/*$nome = get_cf7_param_from_id($cf7_reg_id->data_id, 'nome');
$posto_reg = get_cf7_param_from_id($cf7_reg_id->data_id, 'posto');
$eh_militar = get_cf7_param_from_id($cf7_reg_id->data_id, 'militar');
$instituicao = get_cf7_param_from_id($cf7_reg_id->data_id, 'instituicao');
$nacionalidade = get_cf7_param_from_id($cf7_reg_id->data_id, 'ehbrasileiro');
$compartilhaDados = get_cf7_param_from_id($cf7_reg_id->data_id, 'concordocompartilhar');*/
//$forca = get_cf7_param_from_id($cf7_reg_id->data_id, 'forcaarmada');
//$cidade = get_cf7_param_from_id($cf7_reg_id->data_id, 'cidade');
//$areaatividade = get_cf7_param_from_id($cf7_reg_id->data_id, 'areaatividadeprincipal');
//$setoratuacao = get_cf7_param_from_id($cf7_reg_id->data_id, 'setordeatuacao');
$cargofuncao = get_cf7_param_from_id($cf7_reg_id->data_id, 'cargofuncao');
/*if (get_metadata( 'user', $usr->ID, 'posto', true ) == "" );
update_user_meta( $usr->ID, 'posto', $posto_reg->value);
if (get_metadata( 'user', $usr->ID, 'militar', true ) == "" );
update_user_meta( $usr->ID, 'militar', $eh_militar->value);
if (get_metadata( 'user', $usr->ID, 'instituicao', true ) == "" );
update_user_meta( $usr->ID, 'instituicao', $instituicao->value);
if (get_metadata( 'user', $usr->ID, 'nacionalidade', true ) == "" );
update_user_meta( $usr->ID, 'nacionalidade', $nacionalidade->value);
if (get_metadata( 'user', $usr->ID, 'compartilha_dados', true ) == "" );
update_user_meta( $usr->ID, 'compartilha_dados', $compartilhaDados->value);*/
//if (get_metadata( 'user', $usr->ID, 'forca', true ) == "" );
// update_user_meta( $usr->ID, 'forca', $forca->value);
//if (get_metadata( 'user', $usr->ID, 'cidade', true ) == "" );
// update_user_meta( $usr->ID, 'cidade', $cidade->value);
//if (get_metadata( 'user', $usr->ID, 'areaatividadeprincipal', true ) == "" );
// update_user_meta( $usr->ID, 'areaatividadeprincipal', $areaatividade->value);
//if (get_metadata( 'user', $usr->ID, 'setordeatuacao', true ) == "" );
// update_user_meta( $usr->ID, 'setordeatuacao', $setoratuacao->value);
if (get_metadata( 'user', $usr->ID, 'cargofuncao', true ) == "" );
update_user_meta( $usr->ID, 'cargofuncao', $cargofuncao->value);
/*$displayName = $nome->value;//$usr->first_name . ' ' . $usr->last_name;
if ($eh_militar->value == "Sim")
$displayName = $posto_reg->value . ' ' . $displayName;
wp_update_user( array( 'ID' => $usr->ID, 'display_name' => $displayName ) );
wp_update_user( array( 'ID' => $usr->ID, 'first_name' => $displayName ) );
update_user_meta( $usr->ID, 'full_name', $nome->value);
*/
$upd_count = $upd_count + 1;
//if ($upd_count == 10) break;
}
}
}
echo ''
. $upd_count . ' Usuários foram atualizados pelo formulário de registro' . '
';
}
function update_from_insc_button_action()
{
$upd_count = 0;
global $wpdb;
$args = array(
'role' => 'subscriber',
);
$usr_list = get_users_details($args);
if ( ! empty( $usr_list ) )
{
//Atualiza os campos de inscrições nos minicursos
$regs = array(array("email","mini1", "mini2", "mini3", "mini4", "mini5"));
foreach ( $usr_list as $usr ) {
$usr_info = get_userdata( $usr->ID );
$usr_info->user_email;
//echo '' . $usr_info->display_name . ' : ' . $usr_info->user_email .'';
//$id_reg = 5017;
//Dados retirados do formulário de inscrição 2022 (5017)
//$cf7_reg_id = get_cf7Id_from_email($usr_info->user_email, $id_reg);
//if ($cf7_reg_id != null)
//{
$reg_id = 5160;
$cf7_reg_id = get_cf7Id_from_email($usr_info->user_email, $reg_id);
//}
if ($cf7_reg_id != null)
{
$courses = array("mini1", "mini2", "mini3", "mini4", "mini5");
$regs_usr = array($usr_info->user_email);
foreach ( $courses as $mini )
{
$mini_data = get_cf7_param_from_id($cf7_reg_id->data_id, $mini);
if ($mini_data != null )
{
if ($mini_data->value == "") { $mini_data = "Não Solicitada";}
else{
if ($mini_data->value == "Enrol") $mini_data = "Solicitar Participação";
}
$regs_usr[] = $mini_data;
echo $mini . ' -> ' . $mini_data . ' | ';
update_user_meta( $usr->ID, $mini, $mini_data);
}
else
{
$mini_data = "Não Solicitada";
echo $mini . ' -> ' . $mini_data . ' | ';
update_user_meta( $usr->ID, $mini, $mini_data);
$regs_usr[] = $mini_data;
}
}
$upd_count = $upd_count + 1;
$regs[] = $regs_usr;
}
}
array_to_csv_download($regs, 'mini_cursos_upd.csv','MiniCursos Data');
//Atualiza os campos de de inscrições no evento Online Presencial
$regs = array(array("email","online", "presencial"));
foreach ( $usr_list as $usr ) {
$usr_info = get_userdata( $usr->ID );
$usr_info->user_email;
//Dados retirados do formulário de inscrição 2022 (5017)
$cf7_reg_id = get_cf7Id_from_email($usr_info->user_email, 5160);
if ($cf7_reg_id != null)
{
$regs_usr = array($usr_info->user_email);
$part_data = get_cf7_param_from_id($cf7_reg_id->data_id, "participacao");
if ($part_data != null )
{
if ($part_data->value == "") { $part_data = "Não Solicitada";}
else{ $part_data = $part_data->value;}
if ($part_data == "On-line")
{
update_user_meta( $usr->ID, 'online2022', 'Participação APROVADA');
update_user_meta( $usr->ID, 'presencial2022', 'Não Solicitada');
$regs_usr[] = $part_data;
}
if ($part_data == "In-person")
{
update_user_meta( $usr->ID, 'presencial2022', 'Solicitar Participação');
update_user_meta( $usr->ID, 'online2022', 'Participação APROVADA');
$regs_usr[] = $part_data;
}
}
if ($part_data == null || $part_data == "Não Solicitada")
{
$part_data = "Não Solicitada";
update_user_meta( $usr->ID, 'online2022', $part_data);
update_user_meta( $usr->ID, 'presencial2022', $part_data);
$regs_usr[] = $part_data;
$regs_usr[] = $part_data;
}
update_user_meta( $usr->ID, 'eged_presencial', "Não Solicitada");
update_user_meta( $usr->ID, 'serfa_ivr_presencial', "Não Solicitada");
update_user_meta( $usr->ID, 'eged_online', "Não Solicitada");
$upd_count = $upd_count + 1;
$regs[] = $regs_usr;
}
}
array_to_csv_download($regs, 'eventos_upd.csv','Eventos Data');
}
echo ''
. $upd_count . ' Usuários foram atualizados pelo Formulário de Inscrição' . '
';
}
function get_some_data( $value ){
global $wpdb;
$sql = $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}cf7_vdata_entry WHERE value = %s ", $value );
return $wpdb->get_results( $sql );
}
function get_all_tables_names($value ){
global $wpdb;
$sql = $wpdb->prepare("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = %s", $value);
return $wpdb->get_results( $sql );
}
function get_all_emails(){
global $wpdb;
$sql = "SELECT * FROM {$wpdb->prefix}cf7_vdata_entry WHERE cf7_id = 4745 AND NAME ='email'\n"
. "ORDER BY `arzam_cf7_vdata_entry`.`cf7_id` ASC;";
return $wpdb->get_results( $sql );
}
function get_cf7Id_from_email($email, $form_id){
global $wpdb;
$sql = $wpdb->prepare("SELECT data_id FROM {$wpdb->prefix}cf7_vdata_entry WHERE name ='email' AND value = %s AND cf7_id = %s", $email, $form_id) ;
$data = $wpdb->get_results( $sql );
if ( ! empty( $data ) ) {
return array_values(array_slice($data, -1))[0];
}
else
{
return null;
}
return array_values(array_slice($data, -1))[0];
}
function get_cf7_param_from_id($id, $param){
global $wpdb;
$sql = $wpdb->prepare("SELECT value FROM {$wpdb->prefix}cf7_vdata_entry WHERE data_id =%d AND name = %s", $id, $param) ;
$data = $wpdb->get_results( $sql );
if ( ! empty( $data ) ) {
return array_values(array_slice($data, -1))[0];
}
else
{
return null;
}
}
function get_users_details($args)
{
$my_user_query = new WP_User_Query( $args );
$users_res = $my_user_query->get_results();
return $users_res;
}
/*add_action( 'wp_login', 'format_user_display_name_on_login' );
function format_user_display_name_on_login( $username ) {
$user = get_user_by( 'login', $username );
$userdata = array(
'ID' => $user->ID,
'display_name' => $user->user_login,
);
wp_update_user( $userdata );
} */
?>