<?PHP
/*
 * DIREITOS AUTORAIS RESERVADOS (C) 2007 UFRJ
 * 
 * ESTE PROGRAMA É SOFTWARE LIVRE; VOCÊ PODE REDISTRIBUÍ-LO E/OU MODIFICÁ-LO SOB OS
 * TERMOS DA LICENÇA PÚBLICA GERAL GNU CONFORME PUBLICADA PELA FREE SOFTWARE FOUNDATION;
 * TANTO A VERSÃO 2 DA LICENÇA, COMO (A SEU CRITÉRIO) QUALQUER VERSÃO POSTERIOR.

 * ESTE PROGRAMA É DISTRIBUÍDO NA EXPECTATIVA DE QUE SEJA ÚTIL, PORÉM, SEM NENHUMA GARANTIA;
 * NEM MESMO A GARANTIA IMPLÍCITA DE COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
 * CONSULTE A LICENÇA PÚBLICA GERAL DO GNU PARA MAIS DETALHES.
 * 
 * VOCÊ DEVE TER RECEBIDO UMA CÓPIA DA LICENÇA PÚBLICA GERAL DO GNU JUNTO COM ESTE PROGRAMA; 
 * SE NÃO, ACESSE <<HTTP://WWW.GNU.ORG/LICENSES/LICENSES.PT-BR.HTML>>
 */


<?php


// Conexao a uma base ja definida


$dbh = pg_connect("host=localhost port=5432 dbname=pcni user=semge password=semge");

if (!$dbh)

     die ("Erro na conexão: " . pg_last_error());



// Cria schema da Cultura


$sql="create schema cultura";
$result=pg_query($dbh,$sql);
if (!$result)
   die("Erro: Posivelmente Schema cultura ja existe");



// Cria sequencia de chaves para usuarios


$sql="create sequence cultura.usuario_codigousuario_seq increment by 1 minvalue 1 maxvalue 9223372036854775807 
                      start 1 cache 1 no cycle";

$result=pg_query($dbh, $sql);
if (!$result)
   die("Erro: Sequencia para codigocultura ja existe");


// Cria tabelas para sistema da Cultura



$sql="create table cultura.usuario (
  codigousuario                       integer    not null default nextval('cultura.usuario_codigousuario_seq'::regclass),
  semdocumentosusuario                character(1),                 
  nomeusuario                         character varying(120)  not null,
  nrocadsususuario                    character(15),                
  nrocadsususuarioapresentada         character(1),
  nrocadsususuariodigitalizada        character(1), 
  sexousuario                         character(1)            not null,
  datanascimentousuario               date                    not null,
  codigomunicipiousuario              numeric(7,0), 
  codigoufusuario                     numeric(2,0), 
  nisusuario                          character(11), 
  nisusuarioapresentada               character(1),
  nisusuariodigitalizada              character(1), 
  cpfusuario                          character varying(14), 
  cpfapresentada                      character(1), 
  cpfdigitalizada                     character(1), 
  rgusuario                           character varying(15), 
  rgusuarioestado                     character(2), 
  rgusuariodataemissao                date,                
  rgusuarioorgaoemissor               character(2), 
  rgusuarioapresentada                character(1),                 
  rgusuariodigitalizada               character(1),                 
  carteiratrabusuario                 character varying(15),        
  carteiratrabusuarioserie            character varying(8),         
  carteiratrabusuarioestado           character(2), 
  carteiratrabusuariodataemissao      date,                        
  carteiratrabusuarioapresentada      character(1),                 
  carteiratrabusuariodigitalizada     character(1),  
  titeleitorusuario                   character varying(15), 
  titeleitorusuariozona               character varying(8), 
  titeleitorusuariosecao              character varying(8), 
  titeleitorusuarioapresentada        character(1), 
  titeleitorusuariodigitalizada       character(1),
  pispasepusuario                     character varying(15), 
  pispasepusuarioapresentada          character(1),                 
  pispasepusuariodigitalizada         character(1), 
  certidaotipousuario                 character(2), 
  certidaofolhausuario                character varying(10),
  certidaotermousuario                character varying(15), 
  certidaolivrousuario                character varying(10), 
  certidaocartoriousuario             character varying(100), 
  certidaocartoriousuarioapresentada  character(1),
  certidaocartoriodigitalizadausuario character(1),                
  certidaousuariodataemissao          date,
  cartmotoristausuario                character varying(20), 
  cartmotoristaapresentada            character(1), 
  cartmotoristadigitalizada           character(1), 
  logradourotipousuario               character(2),
  logradouronomeusuario               character varying(150),
  logradouronumerousuario             character varying(15),
  logradourocomplementousuario        character varying(30),
  logradourobairrousuario             character varying(50), 
  logradourocidadeusuario             numeric(7,0), 
  logradourocepusuario                character varying(9),
  logradourogeoiguacuusuario          character varying(8), 
  logradouronaocadastradousuario      character(1), 
  logradourotipojustificativa         character(1), 
  logradourojustificativausuario      character varying(150),
  logradouropontoreferenciausuario    character varying(60),
  telefonefixousuario                 character varying(14),
  telefonecelularusuario              character varying(14), 
  telefonerecadousuario               character varying(14),
  emailusuario                        character varying(60), 
  possuitelefonefixousuario           character(1),
  possuitelefonecelularusuario        character(1),                
  possuitelefonerecadousuario         character(1),                 
  possuiemailusuario                  character(1),                 
  enderecocorrespomesmo               character(1),              
  logradourocorresptipousuario        character(2),                 
  logradourocorrespnomeusuario        character varying(150),       
  logradourocorrespnumerousuario      character varying(15),        
  logradourocorrespcomplementousuario character varying(30),        
  logradourocorrespbairrousuario      character varying(50),        
  logradourocorrespcidadeusuario      numeric(7,0),                 
  logradourocorrespcepusuario         character varying(9),         
  datacadastrousuario                 timestamp without time zone  not null,
  estuda                              character(1),                 
  turnoestudo                         smallint,                     
  escolaridade                        smallint,                     
  trabalha                            character(1),                 
  tipotrabalho                        smallint,                     
  lazeroutros                         character varying(70),        
  locallazeroutro                     character varying(70),        
  logradouroufusuario                 numeric(2,0),                 
  logradourocorrespufusuario          numeric(2,0),                 
  nacionalidadeusuario                character(1)                  not null,
  codigopaisusuario                   character varying(3)          not null,
  usuario                             character varying(20)         default NULL::character varying,
  corracausuario                      character(1),
  idpessoa                            bigint, 
 
  Primary Key (codigousuario) )";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela usuario ".pg_last_error());
 


$sql="create table cultura.logon (
  usuario                             character varying(20), 
  senha                               character varying(35),
  numerocras                          character varying(2),
  tipo_perfil                         character(1)                 default 'C',
  cria_usuario                        character(1)                 default 'N',
  conferencia_estatisticas            character(1)                 default 'N',
  usuario_administrador               character(1)                 default 'N',
  data_criacao_usuario                timestamp without time zone  default now(),
  criou_usuario                       character varying(20)        default NULL,
  supervisor                          character(1),

  Primary Key (usuario) )";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela logon ".pg_last_error());



$sql="create table cultura.visita (
  codigousuario                       integer not null,
  datavisita                          timestamp without time zone not null,
  codigolocal                         smallint,
  modificou                           character(1),
  idpessoa                            bigint,

  Primary Key (codigousuario) )";


$result=pg_query($dbh, $sql);
if(!$result)

   die("Erro: Tabela visita ".pg_last_error());
   
   

$sql="create table cultura.usuarioatividade (
  codigousuario                       integer                      not null,
  tipoatividade                       smallint,
  participaatividade                  character(1),
  idpessoa                            bigint,


  Primary Key (codigousuario,tipoatividade) )";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela usuarioatividade ".pg_last_error());



$sql="

create table cultura.usuariolazer (
  codigousuario                       integer                      not null,
  tipolazer                           smallint                     not null,
  idpessoa                            bigint,

  Primary Key (codigousuario, tipolazer)   ) 

";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela usuariolazer ".pg_last_error());



$sql="

create table cultura.usuariolocaislazer (
  codigousuario                       integer                      not null,
  locallazer                          smallint                     not null,
  frequencialocallazer                character(1), 
  idpessoa                            bigint,

  Primary Key (codigousuario, locallazer)  )

";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela usuariolocaislazer ".pg_last_error());



$sql="create table cultura.historicousuario (
  codigousuario                       integer,
  dataatualizacao                     timestamp without time zone  not null,
  estuda                              character(1),                
  turnoestudo                         smallint,                     
  escolaridade                        smallint,                     
  trabalha                            character(1),                 
  tipotrabalho                        smallint,                     
  lazeroutros                         character varying(70),        
  locallazeroutro                     character varying(70),        
  idpessoa                            bigint,
  
  Primary Key (codigousuario, dataatualizacao)    )

";



$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: tabela historicousuario ".pg_last_error());



       
$sql="

create table cultura.historicousuarioatividade (
  codigousuario                       integer                      not null,
  tipoatividade                       smallint                     not null,
  dataatualizacao                     timestamp without time zone  not null,
  participaatividade                  character(1),                  
  idpessoa                            bigint,

  Primary Key (codigousuario, tipoatividade, dataatualizacao) ) 

";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela historicousuarioatividade ".pg_last_error());

                      
 
$sql="
  create table cultura.historicousuariolazer (
  codigousuario                       integer                      not null,
  tipolazer                           smallint                     not null,
  dataatualizacao                     timestamp without time zone  not null,
  idpessoa                            bigint,

  Primary Key (codigousuario, tipolazer, dataatualizacao) )

";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela historicousuariolazer ".pg_last_error());



$sql="
create table cultura.historicousuariolocaislazer (
  codigousuario                       integer                      not null,
  locallazer                          smallint                     not null,
  dataatualizacao                     timestamp without time zone  not null,
  frequencialocallazer                character(1),
  idpessoa                            bigint,

  Primary Key (codigousuario, locallazer, dataatualizacao) )

";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela historicousuariolocaislazer ".pg_last_error());



$sql="                   

create table cultura.locaislazer (
  locallazer                          smallint                     not null,
  nomelocallazer                      character varying(50),

  Primary Key (locallazer) )

";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela locaislazer ".pg_last_error());



$sql="

create table cultura.localidade (
   codigolocal                        smallint                     not null,
   descricaolocal                     character varying(50),

   Primary Key (codigolocal) )

";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela localidade ".pg_last_error());



$sql="

create table cultura.tiposatividade (
   tipoatividade                      smallint                     not null,
   nometipoatividade                  character varying(40),

   Primary Key (tipoatividade) )

";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela tiposatividade ".pg_last_error());



$sql="
 
create table cultura.tiposlazer (
  tipolazer                           smallint                     not null,
  nometipolazer                       character varying(40),

  Primary Key (tipolazer) )

";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela tiposlazer ".pg_last_error());



$sql=" 

create table cultura.tipostrabalho (
  tipotrabalho                        smallint                     not null,
  nometipotrabalho                    character varying(160),

  Primary Key (tipotrabalho)  )

";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela tipostrabalho ".pg_last_error());



$sql="

create table cultura.turnosestudo (
  turnoestudo                         smallint                     not null,
  nometurnoestudo                     character varying(15),

  Primary Key (turnoestudo) )

";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela turnosestudo ".pg_last_error());



$sql="

create table cultura.niveisescolaridade (
  nivelescolaridade                   smallint                     not null,
  nomenivelescolaridade               character varying(160),

  Primary Key (nivelescolaridade) )

";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela niveisescolaridade ".pg_last_error());





$sql="

 CREATE VIEW cultura.usuario_main_aux_0 (id, codigousuario, nomeusuario,
                                         datacadastrousuario, datanascimentousuario,
                                         usuario)
 AS SELECT pessoa.id, usuario.codigousuario, pessoa.nome AS nomeusuario,
           to_date(substring(to_char(pessoa.data_criacao,
                 'YYYY-MM-DD HH12:MI:SS'::text), 0, 11),
                 'YYYY-MM-DD'::text) AS datacadastrousuario,
           pessoa.data_nascimento AS datanascimentousuario,
           usuario.usuario
   FROM   cultura.usuario, cabcomum.pessoa
   WHERE  pessoa.id = usuario.idpessoa

";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Visao cultura.usuario_main_aux_0 ".pg_last_error());
   



$sql="

 CREATE VIEW cultura.usuario_main_aux_1 ( id, codigousuario, nomeusuario,  
                                          datacadastrousuario, datanascimentousuario, 
                                          usuario, rgusuario)
 AS SELECT     usuario_main_aux_0.id, usuario_main_aux_0.codigousuario,
               usuario_main_aux_0.nomeusuario,
               usuario_main_aux_0.datacadastrousuario,
               usuario_main_aux_0.datanascimentousuario,
               usuario_main_aux_0.usuario, pessoa_documento.numero AS rgusuario
    FROM       cultura.usuario_main_aux_0
    LEFT JOIN  cabcomum.pessoa_documento ON pessoa_documento.idpessoa =
               usuario_main_aux_0.id AND
               usuario_main_aux_0.id = pessoa_documento.idpessoa
               AND pessoa_documento.idtipo_documento = 1
             
";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Visao cultura.usuario_main_aux_1 ".pg_last_error());



$sql="             
             
 CREATE VIEW cultura.usuario_main (id, codigousuario, nomeusuario, datacadastrousuario,
                                   datanascimentousuario, usuario, rgusuario, 
                                   cpfusuario) 
 AS SELECT     usuario_main_aux_1.id, usuario_main_aux_1.codigousuario,
               usuario_main_aux_1.nomeusuario, usuario_main_aux_1.datacadastrousuario,
               usuario_main_aux_1.datanascimentousuario, usuario_main_aux_1.usuario,
               usuario_main_aux_1.rgusuario, pessoa_documento.numero AS cpfusuario
    FROM       cultura.usuario_main_aux_1
    LEFT JOIN  cabcomum.pessoa_documento ON pessoa_documento.idpessoa = usuario_main_aux_1.id
               AND usuario_main_aux_1.id = pessoa_documento.idpessoa AND
               pessoa_documento.idtipo_documento = 5

";

$result=pg_query($dbh,$sql);


if(!$result)

   die("Erro: Visao cultura.usuario_main ".pg_last_error());




$sql="

 CREATE VIEW cultura.usuariocultura (codigousuario, idpessoa, sexousuario, 
                                     datanascimentousuario, logradourocidadeusuario,
                                     trabalha, tipotrabalho, estuda, corracausuario, 
                                     esscolaridade)
 AS SELECT usuario.codigousuario, usuario.idpessoa, pessoa.idsexo AS sexousuario,
           pessoa.data_nascimento AS datanascimentousuario,
           pessoa_endereco.idmunicipio AS logradourocidadeusuario,
           usuario.trabalha, usuario.tipotrabalho, usuario.estuda,
           pessoa.idraca AS corracausuario, usuario.escolaridade
    FROM   cultura.usuario, cabcomum.pessoa, cabcomum.pessoa_endereco
    WHERE  pessoa.id = usuario.idpessoa AND pessoa_endereco.idpessoa = usuario.idpessoa AND
           pessoa_endereco.idtipo_endereco = 1;
        
"; 

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Tabela cultura.usuariocultura ".pg_last_error());

 

// Carga de Tabelas de uso especifico da Cultura


$dir=getcwd();


$i=0;
$j=strlen($dir);
$diretorio="";
while ($i < $j)
{
   if ($dir[$i] == '\\')
      $dir[$i] = '/';
   $diretorio=$diretorio . $dir[$i];
   $i++;
}


$sql="copy cultura.locaislazer from '$diretorio/tab_locaislazer' with delimiter ','";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Carga tabela locaislazer  ".pg_last_error());
   
   

$sql="copy cultura.localidade from '$diretorio/tab_localidade' with delimiter ','";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Carga tabela localidade  ".pg_last_error());



$sql="copy cultura.niveisescolaridade from '$diretorio/tab_niveisescolaridade' with delimiter ','";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Carga tabela niveisescolaridade  ".pg_last_error());
   
   

$sql="copy cultura.tiposatividade from '$diretorio/tab_tiposatividade' with delimiter ','";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Carga tabela tiposatividade  ".pg_last_error());
   
   
   
   
$sql="copy cultura.tiposlazer from '$diretorio/tab_tiposlazer' with delimiter ','";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Carga tabela tiposlazer  ".pg_last_error());
   
   
   
   
$sql="copy cultura.tipostrabalho from '$diretorio/tab_tipostrabalho' with delimiter ','";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Carga tabela tipostrabalho  ".pg_last_error());
   
   
   
   
$sql="copy cultura.turnosestudo from '$diretorio/tab_turnosestudo' with delimiter ','";

$result=pg_query($dbh,$sql);

if(!$result)

   die("Erro: Carga tabela turnosestudo  ".pg_last_error());
   


// Fecha a Base

        
pg_close($dbh);

echo "Tabelas definidas";


?>
