PenUnidadeDTO.php
1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
require_once dirname(__FILE__) . '/../../../SEI.php';
/**
* Cria uma tabela de relação 1 para 1 para unidade com o intuito de adicionar
* novos campos de configuração para cada unidade utilizado somente pelo módulo
* PEN
*
* Crio a classe com extendida de UnidadeDTO em função dos métodos de UnidadeRN,
* que força o hinting para UnidadeDTO, então não gera erro usar PenUnidadeDTO
* com o UnidadeBD e UnidadeRN
*
* @author Join Tecnologia
* @see http://php.net/manual/pt_BR/language.oop5.typehinting.php
*/
class PenUnidadeDTO extends UnidadeDTO {
public function getStrNomeTabela() {
return 'md_pen_unidade';
}
public function montar() {
$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade');
$this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeRH', 'id_unidade_rh');
$this->configurarPK('IdUnidade',InfraDTO::$TIPO_PK_INFORMADO);
// Infelizmente não funciona com parent::getArrAtributos(), pois o arrAtributos
// esta na InfraDTO e ela confunde em função do extends, então tenho que
// criar uma nova instância
$objUnidadeDTO = new UnidadeDTO();
$objUnidadeDTO->retTodos();
foreach($objUnidadeDTO->getArrAtributos() as $arrAtrib) {
if($arrAtrib[InfraDTO::$POS_ATRIBUTO_PREFIXO] != 'IdUnidade') {
$this->adicionarAtributoTabelaRelacionada(
$arrAtrib[InfraDTO::$POS_ATRIBUTO_PREFIXO],
$arrAtrib[InfraDTO::$POS_ATRIBUTO_NOME],
$arrAtrib[InfraDTO::$POS_ATRIBUTO_CAMPO_SQL],
$objUnidadeDTO->getStrNomeTabela()
);
}
}
$this->configurarFK('IdUnidade', 'unidade', 'id_unidade');
}
}