Example #1
0
 public function __construct()
 {
     $sl = ServiceLocator::getInstance();
     $config = ConfigFormulario::getInstance();
     $this->repoFormulario = $sl->getRepository($config->getEntityFormulario());
     $this->repoCampoFormulario = $sl->getRepository($config->getEntityCampoFormulario());
     $this->repoCampoFormularioValor = $sl->getRepository($config->getEntityCampoFormularioValor());
 }
Example #2
0
 public function validateEntityCampoFormularioValor()
 {
     $methods = array('getCodvalor', 'getCodcampo', 'getCodregistro', 'getValor');
     $this->validate($this->entityCampoFormularioValor, $methods);
     $sl = ServiceLocator::getInstance();
     $repository = $sl->getRepository($this->entityCampoFormularioValor);
     $methods = array('getValue', 'salvarValores', 'excluirValores');
     $this->validate(get_class($repository), $methods);
     return $this;
 }
Example #3
0
 public function validateEntityConfiguracao()
 {
     $methods = array('getCodconfiguracao', 'getDescricao', 'getAtributo', 'getValor');
     $this->validate($this->entityConfiguracao, $methods);
     $sl = ServiceLocator::getInstance();
     $repository = $sl->getRepository($this->entityConfiguracao);
     $methods = array('getConfigurationByAtributo');
     $this->validate(get_class($repository), $methods);
     return $this;
 }
Example #4
0
 public function validateEntityVariavelValor()
 {
     $methods = array('getCodvalor', 'getCodvariavel', 'getValor', 'getDescricao');
     $this->validate($this->entityVariavelValor, $methods);
     $sl = ServiceLocator::getInstance();
     $repository = $sl->getRepository($this->entityVariavelValor);
     $methods = array('fetchPairs', 'findValor');
     $this->validate(get_class($repository), $methods);
     return $this;
 }
Example #5
0
 public function __construct($entity)
 {
     $this->entity = $entity;
     $serviceLocator = ServiceLocator::getInstance();
     $serviceLocator->requireFile($this->entity);
 }
Example #6
0
 public function prepararCamposComplementares(array $data = array())
 {
     $form = $this->getForm();
     if (null === $form) {
         return null;
     }
     $formName = $form->getName();
     $configuration = new FormConfiguration();
     $config = $configuration->loadFormConfiguration($formName);
     $campos = $configuration->findCamposComplementares($formName);
     $camposValores = array();
     if (count($campos) > 0) {
         foreach ($campos as $campo) {
             // Array de controle para salvar na tabela de campoformulariovalor
             $campoValor = array('codvalor' => null, 'codcampo' => $campo->getCodcampo(), 'codregistro' => null, 'valor' => null);
             $repository = ServiceLocator::getInstance()->getRepository('Entity\\' . ucwords($campo->getFormulario()->getNometabela()));
             $pk = $repository->getPrimaryKey();
             // Verifica se o formulário tem primary key para buscar o valor do campo complementar
             if (!is_null($pk)) {
                 // Captura o elemento dentro do formulário para depois saber o valor para buscar na entidade de configuração
                 $elementPk = $form->getElement($pk);
                 // Verifica se o elemento informado como primary key existe realmente no formulário
                 if (!is_null($elementPk)) {
                     // Busca o valor da campo com o nome da primary key dentro do formulário
                     $valuePk = $elementPk->getValue();
                     $repoConfFormValor = $configuration->getRepoCampoFormularioValor();
                     $conf = $repoConfFormValor->getValue($campo->getCodcampo(), $valuePk);
                     if (!$conf->isEmpty()) {
                         $campoValor['codvalor'] = $conf->getCodvalor();
                     }
                     $campoValor['codregistro'] = $valuePk;
                 }
                 if (array_key_exists($campo->getNomecampo(), $data)) {
                     $campoValor['valor'] = $data[$campo->getNomecampo()];
                 }
             }
             $camposValores[$campo->getNomecampo()] = $campoValor;
         }
     }
     $this->_camposComplementares = $camposValores;
     return $this;
 }
Example #7
0
 public function getServiceLocator()
 {
     return ServiceLocator::getInstance();
 }
Example #8
0
 public function carregarCamposComplementares($config, $entityCampoFormularioValor)
 {
     if (!$this->camposComplementaresCarregados) {
         $this->camposComplementaresCarregados = true;
         $configuration = new Configuration();
         $campos = $configuration->findCamposComplementares($config->getNomeformulario());
         if (count($campos) > 0) {
             foreach ($campos as $campo) {
                 $element = $this->createElement($campo->getTipocampo(), $campo->getNomecampo())->setRequired($campo->getNotnull() === 's')->setValue($campo->getValorpadrao())->setAttribs(array('class' => $campo->getClass(), 'maxlength' => $campo->getMaxlength()));
                 $repository = ServiceLocator::getInstance()->getRepository('Entity\\' . ucwords($campo->getFormulario()->getNometabela()));
                 $pk = $repository->getPrimaryKey();
                 // Verifica se o formulário tem primary key para buscar o valor do campo complementar na tabela campoformulariovalor
                 if (!is_null($pk)) {
                     // Captura o elemento dentro do formulário para depois saber o valor para buscar na entidade de configuração
                     $elementPk = $this->getElement($pk);
                     // Verifica se o elemento informado como primary key existe realmente no formulário
                     if (!is_null($elementPk)) {
                         // Busca o valor da campo com o nome da primary key dentro do formulário
                         $valuePk = $elementPk->getValue();
                         // Preenche o elemento com o valor salvo em formulariovalor
                         $repoConfFormValor = ServiceLocator::getInstance()->getRepository($entityCampoFormularioValor);
                         $conf = $repoConfFormValor->getValue($campo->getCodcampo(), $valuePk);
                         if (!$conf->isEmpty()) {
                             $element->setValue($conf->getValor());
                         }
                     }
                 }
                 if ($campo->getLabel()) {
                     //$element->setLabel(array('label' => $campo->getLabel(), 'class' => $campo->getLabelclass()));
                     $element->setLabel(array('label' => $campo->getLabel()));
                 }
                 if ($campo->getPlaceholder()) {
                     $element->setAttrib('placeholder', $campo->getPlaceholder());
                 }
                 if ($campo->getExternalHTML()) {
                     $element->setExternalHTML($campo->getExternalHTML());
                 }
                 if ($campo->getMultiExternalHTML()) {
                     $element->setMultiExternalHTML($campo->getMultiExternalHTML());
                 }
                 if ($campo->getContent()) {
                     $element->setContent($campo->getContent());
                 }
                 if ($campo->getSeparador()) {
                     $element->setSeparator($campo->getSeparador());
                 }
                 if ((int) $campo->getCodvariavel() !== 0 && method_exists($element, 'setMultiOptions')) {
                     $configVariavelValor = ConfigVariavel::getInstance();
                     $entityVariavelValor = $configVariavelValor->getEntityVariavelValor();
                     if ($entityVariavelValor) {
                         $repoVariavel = ServiceLocator::getInstance()->getRepository($entityVariavelValor);
                         $valores = $repoVariavel->fetchPairs($campo->getCodvariavel());
                         $element->setMultiOptions($valores);
                     }
                 }
                 $campoPosterior = $campo->getCampoposterior();
                 if (null == $campoPosterior) {
                     // Adiciona ao final do formulário
                     $this->addElement($element);
                 } else {
                     // Posiciona o elemento no local definido no campo campoanterior
                     $elements = $this->elements;
                     $this->elements = array();
                     foreach ($elements as $item) {
                         if ($item->getName() === $campoPosterior) {
                             $this->addElement($element);
                         }
                         $this->addElement($item);
                     }
                 }
             }
         }
     }
     return $this;
 }