/** * Obtém campos do modelo documento * @param \Core_Dto_Search $dtoSearch * @return array */ public function getCampoModeloDocumento(\Core_Dto_Abstract $dtoSearch) { $queryBuilder = $this->_em->createQueryBuilder(); $queryBuilder->select('pmd.sqPadraoModeloDocumento,pmd.noPadraoModeloDocumento', 'c.noCampo', 'c.noColunaTabela', 'gp.sqGrupoCampo', 'pmdc.inObrigatorio')->from('app:ModeloDocumentoCampo', 'mdc')->innerJoin('mdc.sqPadraoModeloDocumentoCam', 'pmdc')->innerJoin('pmdc.sqPadraoModeloDocumento', 'pmd')->innerJoin('pmdc.sqCampo', 'c')->innerJoin('c.sqGrupoCampo', 'gp')->innerJoin('mdc.sqModeloDocumento', 'md'); if ($dtoSearch->getSqModeloDocumento()) { $queryBuilder->andWhere('md.sqModeloDocumento = :sqModeloDocumento'); $queryBuilder->setParameter('sqModeloDocumento', $dtoSearch->getSqModeloDocumento()); } else { $queryBuilder->andWhere('md.inAtivo = :inAtivo')->setParameter('inAtivo', "TRUE"); } $out = $queryBuilder->getQuery()->execute(); $filter = new \Zend_Filter_Word_UnderscoreToCamelCase(); $arrayField = array(); foreach ($out as $key => $value) { $arrayField[$key]['sqPadraoModeloDocumento'] = $value['sqPadraoModeloDocumento']; $arrayField[$key]['noPadraoModeloDocumento'] = $value['noPadraoModeloDocumento']; $arrayField[$key]['noCampo'] = $value['noCampo']; $arrayField[$key]['noColunaTabela'] = lcfirst($filter->filter($value['noColunaTabela'])); $arrayField[$key]['sqGrupoCampo'] = $value['sqGrupoCampo']; $arrayField[$key]['inObrigatorio'] = $value['inObrigatorio']; } return $arrayField; }
/** * Obtém um modelo * @param \Core_Dto_Abstract $dto * @return array */ public function findModelo(\Core_Dto_Abstract $dto) { $queryBuilder = $this->_em->createQueryBuilder()->select(' DISTINCT md.sqModeloDocumento, pmd.sqPadraoModeloDocumento, pmd.noPadraoModeloDocumento, td.sqTipoDocumento, td.noTipoDocumento, a.sqAssunto, a.txAssunto, md.inAtivo, ptd.sqPosicaoTipoDocumento')->from('app:ModeloDocumento', 'md')->innerJoin('md.sqModeloDocumentoCampo', 'mdc')->innerJoin('md.sqTipoDocumento', 'td')->leftJoin('md.sqAssunto', 'a')->leftJoin('md.sqPosicaoTipoDocumento', 'ptd')->innerJoin('mdc.sqPadraoModeloDocumentoCam', 'pmdc')->innerJoin('pmdc.sqPadraoModeloDocumento', 'pmd')->andWhere('md.sqModeloDocumento = :sqModeloDocumento')->setParameter('sqModeloDocumento', $dto->getSqModeloDocumento())->orderBy('pmd.noPadraoModeloDocumento, td.noTipoDocumento, a.txAssunto', 'ASC'); return $queryBuilder->getQuery()->getSingleResult(); }