/*===============================================================================================*/    
/*                 SCRIPT PARA MYSQL E ORACLE QUE ALTERA A ESTRUTURA DA TABELA FORNECEDOR        */
/*===============================================================================================*/

/* Autor: thiago.monteiro
 * Data: 13-12-2012
 * Funcao:
 *     Adicionar as colunas nomecontato, inscricaoestadual e inscricaomunicipal
 *     na tabela de fornecedor.
 */

/* =========== MYSQL =========== */
        
/* CORRECAO DO NOME DA CHAVE PRIMARIA DA TABELA DE ALCADACENTRORESULTADO */
alter table alcadacentroresultado
    change idalcadacentrocusto idalcadacentroresultado int(11) not null;        

/* ADICIONANDO AS COLUNAS: NOMECONTATO, INSCRICAOESTADUAL E INSCRICAOMUNICIPAL NA TABELA DE FORNECEDOR */

alter table fornecedor
    add column nomecontato varchar(100);

alter table fornecedor
    add column inscricaoestadual varchar(25);

alter table fornecedor
    add column inscricaomunicipal varchar(25);
    
/* ========== ALTERANDO A CHAVE PRIMARIA DA TABELA DE ALCADACENTRORESULTADO ============= */

alter table alcadacentroresultado
    drop primary key;

alter table alcadacentroresultado
    change idcentroresultado idcentroresultado int(11);

alter table alcadacentroresultado
    add primary key(idalcadacentroresultado);

/* ============== ALTERANDO PARA OBRIGATORIAS AS CHAVES: IDCENTRORESULTADO, IDEMPREGADO E IDALCADA ====================== */
alter table alcadacentroresultado
    change idcentroresultado idcentroresultado int(11) not null;

alter table alcadacentroresultado
    change idempregado idempregado int(11) not null;

alter table alcadacentroresultado
    change idalcada idalcada int(11) not null;

/* =================================================================== */
/*        RETIRANDO A CONSTRAINT fk_endereco                           */
/* =================================================================== */
/* 
	MOTIVAO: A REMOO EST SENDO FEITA EM VIRTUDE DO FUNCIONAMENTO 
	DA DYNAMIC VIEW QUE INSERE O VALOR -999 NA COLUNA IDENDERECO DA TABELA DE 
	FORNECEDOR QUANDO NO SE INFORMA UM ENDEREO PARA O MESMO.
	O CAMPO ENDEREO APRESENTA UMA COMBOBOX, CUJA AS OPES SO RESULTADO
	DE UMA PESQUISA ASSOCIANDO A TABELA DE FORNECEDOR E DE ENDERECO.
	A COLUNA IDENDERECO EM FORNECEDOR NO EXIGIA UM VALOR (NO ERA NOT NULL)
	E PORTANTO NO OBRIGAVA O USURIO A INFORMAR O ENDEREO. PORM O COMPORTAMENTO
	DA DYNAMIC VIEW DE INSERIR -999 FERIA A CONSTRAINT fk_endereco POR NO HAVER 
	NENHUM REGISTRO NA TABELA DE ENDERECO COM UMA CHAVE -999.
*/

alter table fonecedor
    drop foreign key fk_endereco;


/* =========== ORACLE =========== */
        
/* CORRECAO DO NOME DA CHAVE PRIMARIA DA TABELA DE ALCADACENTRORESULTADO */

ALTER TABLE ALCADACENTRORESULTADO
    RENAME COLUMN IDALCADACENTROCUSTO TO IDALCADACENTRORESULTADO;

/* ADICIONANDO AS COLUNAS: NOMECONTATO, INSCRICAOESTADUAL E INSCRICAOMUNICIPAL NA TABELA DE FORNECEDOR */

ALTER TABLE FORNECEDOR
    ADD NOMECONTATO VARCHAR2(100);   

ALTER TABLE FORNECEDOR
    ADD INSCRICAOESTADUAL VARCHAR2(25);

ALTER TABLE FORNECEDOR
    ADD COLUMN INSCRICAOMUNICIPAL VARCHAR(25);

/* ========== ALTERANDO A CHAVE PRIMARIA DA TABELA DE ALCADACENTRORESULTADO =============*/

ALTER TABLE ALCADACENTRORESULTADO
    DROP PRIMARY KEY;

ALTER TABLE ALCADACENTRORESULTADO
    MODIFY (IDCENTRORESULTADO INT NULL);

ALTER TABLE ALCADACENTRORESULTADO
   ADD PRIMARY KEY(IDALCADACENTRORESULTADO);
   
/* ============== ALTERANDO PARA OBRIGATORIAS AS CHAVES: IDCENTRORESULTADO, IDEMPREGADO E IDALCADA ====================== */

ALTER TABLE ALCADACENTRORESULTADO
    MODIFY (IDCENTRORESULTADO INT NOT NULL);

ALTER TABLE ALCADACENTRORESULTADO
    MODIFY (IDEMPREGADO INT NOT NULL);

ALTER TABLE ALCADACENTRORESULTADO
    MODIFY (IDALCADA INT NOT NULL);
    
/* =================================================================== */
/*        RETIRANDO A CONSTRAINT fk_endereco                           */
/* =================================================================== */
/* 
	MOTIVAO: A REMOO EST SENDO FEITA EM VIRTUDE DO FUNCIONAMENTO 
	DA DYNAMIC VIEW QUE INSERE O VALOR -999 NA COLUNA IDENDERECO DA TABELA DE 
	FORNECEDOR QUANDO NO SE INFORMA UM ENDEREO PARA O MESMO.
	O CAMPO ENDEREO APRESENTA UMA COMBOBOX, CUJA AS OPES SO RESULTADO
	DE UMA PESQUISA ASSOCIANDO A TABELA DE FORNECEDOR E DE ENDERECO.
	A COLUNA IDENDERECO EM FORNECEDOR NO EXIGIA UM VALOR (NO ERA NOT NULL)
	E PORTANTO NO OBRIGAVA O USURIO A INFORMAR O ENDEREO. PORM O COMPORTAMENTO
	DA DYNAMIC VIEW DE INSERIR -999 FERIA A CONSTRAINT fk_endereco POR NO HAVER 
	NENHUM REGISTRO NA TABELA DE ENDERECO COM UMA CHAVE -999.
*/

ALTER TABLE FORNECEDOR
    DROP CONSTRAINT FK_ENDERECO;

    

/*=========================================================================================*/    
/*                 CONFIGURANDO A DYNAMIC VIEW DE FORNECEDOR                               */
/*=========================================================================================*/

Pgina: http://localhost:8080/citsmart/pages/visaoAdm/visaoAdm.load?idVisao=23

1 - CONFIGURANDO O CAMPO CPF/CNPJ
    1.1 - Objeto de Negcio: FORNECEDOR
    1.2 - Tipo de Campo: Nmero
    1.3 - Campo de Objeto de Negcio: CNPJ
    1.4 - Descrio: CPF/CNPJ
    1.5 - Tamanho: 14
    1.6 - Obrigatrio: No
    1.7 - Situao: Ativo
    
2 - CONFIGURANDO O CAMPO ENDEREO
    1.1 - Objeto de Negcio: FORNECEDOR
    1.2 - Tipo de Campo: Relacionamento com outro objeto de negcio
    1.3 - IDENDERECO
    1.4 - Descrio: ENDEREO
    1.5 - Tamanho: 11
    1.6 - Obrigatrio: No
    1.7 - Descrio para o Relacionamento: ENDEREO
    1.8 - Relacionamento (Objeto de Negcio): ENDERECO
    1.9 - Campo do Objeto de Negcio para Apresentao - Relacionamento: LOGRADOURO
    1.10 - Campo do Objeto de Negcio para Ligao - Relacionamento: IDENDERECO
    1.11 - Campo do Objeto de Negcio para Ordem - Relacionamento: LOGRADOURO
    1.12 - Tipo de campo a apresentar: LOOKUP
    1.13 - Filtro Adicional (SQL): ${TERMO_PESQUISA}  


3 - CONFIGURANDO O SCRIPT DE VERIFICAO DO COMPRIMENTO DO NMERO CPF/CNPJ
    3.1 - Clique no boto Scripts, na janela que se abre clique na seo Servidor e logo aps na opo Ao Inserir.
    3.2 - Na rea de texto cole o cdigo a seguir:

		var tipoPessoa = mapFields.get("TIPOPESSOA");
		var numDoc = mapFields.get("CNPJ");
		
		if (tipoPessoa == "F") {
		    if (numDoc.length() != 14) {
		        dinamicViewDto.abortFuncaoPrincipal = true;
		        dinamicViewDto.msgRetorno = "A quantidade de dgitos do CPF informado  invlida";
		    }
		}
		
		if (tipoPessoa == "J") {
		    if (numDoc.length() != 18) {
		        dinamicViewDto.abortFuncaoPrincipal = true;
		        dinamicViewDto.msgRetorno = "A quantidade de dgitos do CNPJ informado  invlida";
		    }
		}
