public function __construct(array $params = array()) { parent::__construct($params); $db = \Cityware\Db\Factory::factory(); $this->setDbAdapter($db->getAdapter()); $this->fileFolder = new Filesystem(); $this->ormFolder = DATA_PATH . 'Orm' . DS; $this->oMetadata = new Metadata($this->getDbAdapter()); return $this; }
/** * Função de criação dos arquivos de Formulário * @throws \Exception */ private function createFormFiles() { $db = \Cityware\Db\Factory::factory('zend'); $tableMetadata = new \Zend\Db\Metadata\Metadata($db->getAdapter()); $tableInfo = $tableMetadata->getTable($this->getTable(), $this->getSchema()); $iniFile = $this->genConfigFormIni(); $iniFile .= $this->genFieldsFormIni($tableInfo); $iniFile .= $this->genButtonsFormIni(); $translateFile = $this->genTranslateFormArray($tableInfo); $moduleName = ucfirst($this->getModule()); $moduleNameLower = strtolower($this->getModule()); try { if (!empty($this->formName)) { file_put_contents($this->dstIniDirectory . $this->formName . '.ini', $iniFile); chmod($this->dstIniDirectory . $this->formName . '.ini', 0777); file_put_contents($this->dstTranslateDirectory . $this->formName . '.php', $translateFile); chmod($this->dstTranslateDirectory . $this->formName . '.php', 0777); $template_Form = file_get_contents($this->srcTemplateDirectory . 'Template_Form.tmpl'); $templateForm = str_replace("%moduleName%", $moduleName, str_replace("%moduleNameLower%", $moduleNameLower, $template_Form)); file_put_contents($this->dstViewDirectory . $this->formName . '.phtml', $templateForm); chmod($this->dstViewDirectory . $this->formName . '.phtml', 0644); } else { file_put_contents($this->dstIniDirectory . 'add.ini', $iniFile); chmod($this->dstIniDirectory . 'add.ini', 0777); file_put_contents($this->dstTranslateDirectory . 'add.php', $translateFile); chmod($this->dstTranslateDirectory . 'add.php', 0777); file_put_contents($this->dstIniDirectory . 'edit.ini', $iniFile); chmod($this->dstIniDirectory . 'edit.ini', 0777); file_put_contents($this->dstTranslateDirectory . 'edit.php', $translateFile); chmod($this->dstTranslateDirectory . 'edit.php', 0777); $template_Form = file_get_contents($this->srcTemplateDirectory . 'Template_Form.tmpl'); $templateForm = str_replace("%moduleName%", $moduleName, str_replace("%moduleNameLower%", $moduleNameLower, $template_Form)); file_put_contents($this->dstViewDirectory . 'add.phtml', $templateForm); chmod($this->dstViewDirectory . 'add.phtml', 0644); file_put_contents($this->dstViewDirectory . 'edit.phtml', $templateForm); chmod($this->dstViewDirectory . 'edit.phtml', 0644); } } catch (Exception $exc) { throw new Exception('Não foi possivel criar o arquivo de configuração do formulário! <br />' . $exc->getMessage(), 500); } }
/** * __construct() - Sets configuration options * * @param string $tableName Optional * @param string $identityColumn Optional * @param string $credentialColumn Optional * @param string $credentialTreatment Optional * @return \Zend\Authentication\Adapter\DbTable */ public function __construct($tableName = null, $schemaName = null, $identityColumn = null, $credentialColumn = null, array $returnColumns = null) { $this->clearIdentity(); $zendDb = \Cityware\Db\Factory::factory(); $this->zendDb = $zendDb->getAdapter(); parent::__construct($this->zendDb); if (null !== $tableName) { if (null !== $schemaName) { $this->setTableName(new TableIdentifier($tableName, $schemaName)); } else { $this->setTableName($tableName); } } if (null !== $identityColumn) { $this->setIdentityColumn($identityColumn); } if (null !== $credentialColumn) { $this->setCredentialColumn($credentialColumn); } $this->returnColumns = $returnColumns; }
/** * Função de criação dos arquivos do Datagrid * @throws \Exception */ private function createDatagridFiles() { $db = \Cityware\Db\Factory::factory('zend'); $tableMetadata = new \Zend\Db\Metadata\Metadata($db->getAdapter()); $tableInfo = $tableMetadata->getTable($this->getTable(), $this->getSchema()); $iniFile = $this->genConfigDatagridIni(); $iniFile .= $this->genFieldsDatagridIni($tableInfo); $translateFile = $this->genTranslateDatagridArray($tableInfo); $moduleName = ucfirst($this->getModule()); $moduleNameLower = strtolower($this->getModule()); try { if (!empty($this->datagridName)) { file_put_contents(MODULES_PATH . ucfirst($this->getModule()) . DS . 'src' . DS . ucfirst($this->getModule()) . DS . 'ini' . DS . strtolower($this->getController()) . DS . $this->datagridName . '.ini', $iniFile); chmod(MODULES_PATH . ucfirst($this->getModule()) . DS . 'src' . DS . ucfirst($this->getModule()) . DS . 'ini' . DS . strtolower($this->getController()) . DS . $this->datagridName . '.ini', 0777); file_put_contents(MODULES_PATH . ucfirst($this->getModule()) . DS . 'src' . DS . ucfirst($this->getModule()) . DS . 'translate' . DS . 'pt_BR' . DS . strtolower($this->getController()) . DS . $this->datagridName . '.php', $translateFile); chmod(MODULES_PATH . ucfirst($this->getModule()) . DS . 'src' . DS . ucfirst($this->getModule()) . DS . 'translate' . DS . 'pt_BR' . DS . strtolower($this->getController()) . DS . $this->datagridName . '.php', 0777); $datagrid_template_phtml = file_get_contents(dirname(__FILE__) . DS . 'Datagrid' . DS . 'Template_Datagrid_Index.tpl'); $datagridTemplatePhtml = str_replace("%moduleName%", $moduleName, str_replace("%moduleNameLower%", $moduleNameLower, $datagrid_template_phtml)); file_put_contents(MODULES_PATH . ucfirst($this->getModule()) . DS . 'view' . DS . strtolower($this->getModule()) . DS . strtolower($this->getController()) . DS . $this->datagridName . '.phtml', $datagridTemplatePhtml); chmod(MODULES_PATH . ucfirst($this->getModule()) . DS . 'view' . DS . strtolower($this->getModule()) . DS . strtolower($this->getController()) . DS . $this->datagridName . '.phtml', 0644); } else { file_put_contents(MODULES_PATH . ucfirst($this->getModule()) . DS . 'src' . DS . ucfirst($this->getModule()) . DS . 'ini' . DS . strtolower($this->getController()) . DS . 'datagrid.ini', $iniFile); chmod(MODULES_PATH . ucfirst($this->getModule()) . DS . 'src' . DS . ucfirst($this->getModule()) . DS . 'ini' . DS . strtolower($this->getController()) . DS . 'datagrid.ini', 0777); file_put_contents(MODULES_PATH . ucfirst($this->getModule()) . DS . 'src' . DS . ucfirst($this->getModule()) . DS . 'translate' . DS . 'pt_BR' . DS . strtolower($this->getController()) . DS . 'datagrid.php', $translateFile); chmod(MODULES_PATH . ucfirst($this->getModule()) . DS . 'src' . DS . ucfirst($this->getModule()) . DS . 'translate' . DS . 'pt_BR' . DS . strtolower($this->getController()) . DS . 'datagrid.php', 0777); $datagrid_template_phtml = file_get_contents(dirname(__FILE__) . DS . 'Datagrid' . DS . 'Template_Datagrid_Index.tpl'); $datagridTemplatePhtml = str_replace("%moduleName%", $moduleName, str_replace("%moduleNameLower%", $moduleNameLower, $datagrid_template_phtml)); file_put_contents(MODULES_PATH . ucfirst($this->getModule()) . DS . 'view' . DS . strtolower($this->getModule()) . DS . strtolower($this->getController()) . DS . 'index.phtml', $datagridTemplatePhtml); chmod(MODULES_PATH . ucfirst($this->getModule()) . DS . 'view' . DS . strtolower($this->getModule()) . DS . strtolower($this->getController()) . DS . 'index.phtml', 0644); $datagrid_template_trash = file_get_contents(dirname(__FILE__) . DS . 'Datagrid' . DS . 'Template_Datagrid_Trash.tpl'); $datagridTemplateTrash = str_replace("%moduleName%", $moduleName, str_replace("%moduleNameLower%", $moduleNameLower, $datagrid_template_trash)); file_put_contents(MODULES_PATH . ucfirst($this->getModule()) . DS . 'view' . DS . strtolower($this->getModule()) . DS . strtolower($this->getController()) . DS . 'trash.phtml', $datagridTemplateTrash); chmod(MODULES_PATH . ucfirst($this->getModule()) . DS . 'view' . DS . strtolower($this->getModule()) . DS . strtolower($this->getController()) . DS . 'trash.phtml', 0644); } } catch (Exception $exc) { throw new Exception('Não foi possivel criar o arquivo de configuração do Datagrid! <br />' . $exc->getMessage(), 500); } }
public function getConnection() { $this->db = \Cityware\Db\Factory::factory(); return $this; }
/** * Popula campo select group pelo banco de dados * @param array $params * @return array */ public function populateSelectGroup($params, $arrayDepend = null, $populateValues = null) { $db = \Cityware\Db\Factory::factory('zend'); /* Verifica o schema se está setado ou não */ $schema = (isset($params['schema']) and $params['schema'] != "") ? $params['schema'] : null; /* Verifica foi setado um alias para a tabela de FROM */ $aliasFromFk = (isset($params['tableAliasFk']) and !empty($params['tableAliasFk'])) ? $params['tableAliasFk'] : 'fk'; /* Define os campos */ $db->select("{$aliasFromFk}.{$params['fieldfk']}", 'ID'); $db->select("{$aliasFromFk}.{$params['fieldshow']}", 'NOME'); /* Verifica se existe algum campo concatenado */ if (isset($params['tableconc']) and !empty($params['tableconc'])) { $db->select("{$params['tableconc']}.{$params['fieldconc']}", 'CONCAT'); } /* Define a ordem de exibição dos dados */ if (isset($params['order']) and $params['order'] == 'ID') { $db->orderBy("ID ASC"); } else { $db->orderBy("NOME ASC"); } /* Define a tabela */ $db->from("{$params['tablefk']}", $aliasFromFk, $schema); /* Monta a condição do SELECT em caso de dependência */ if (!empty($arrayDepend)) { if (isset($params['dependfk']) and !empty($params['dependfk'])) { $db->where("{$params['dependfk']} = '{$arrayDepend[$params['dependfk']]}'"); } if (isset($params['where']) and !empty($params['where'])) { foreach ($params['where'] as $keyWhere => $valueWhere) { $db->where($this->prepareWherePhpTag($valueWhere)); } } } else { /* Monta a condição do SELECT em caso de populate */ if (!empty($populateValues)) { if (isset($params['fieldpk']) and !empty($params['fieldpk'])) { $db->where("{$params['fieldpk']} = '{$populateValues[$params['fieldpk']]}'"); } if (isset($params['where']) and !empty($params['where'])) { foreach ($params['where'] as $keyWhere => $valueWhere) { $db->where($this->prepareWherePhpTag($valueWhere)); } } } else { /* Define as condições do select caso houver */ if (isset($params['where']) and !empty($params['where'])) { foreach ($params['where'] as $keyWhere => $valueWhere) { $db->where($this->prepareWherePhpTag($valueWhere)); } } } } /* Define o JOIN da tabela caso houver */ if (isset($params['join']) and $params['join'] == "true") { for ($idxJoin = 0; $idxJoin < count($params['jointype']); $idxJoin++) { $joinAlias = (isset($params['joinalias'][$idxJoin]) and !empty($params['joinalias'][$idxJoin])) ? $params['joinalias'][$idxJoin] : null; $db->join($params['joinfrom'][$idxJoin], $joinAlias, $params['joincond'][$idxJoin], $params['jointype'][$idxJoin], $params['joinschema'][$idxJoin]); } } if (isset($params['debug']) and $params['debug'] == "true") { $db->setDebug(true); } return $db->executeSelectQuery(); }
/** * Função que retorna a instância de conexão ao banco de dados * @return object */ public function getConnection() { return \Cityware\Db\Factory::factory(); }
/** * Função de definição de validações de campos * @param array $params * @param object $mainFilter * @return object */ private function defineValidation(array $params, $mainFilter) { $factory = new ZendInputFilterFactory(); $validatorChain = new ZendValidatorChain(); $validatorsField = array(); $iCount = 0; if (isset($params['validation']) and strtolower(trim($params['validation'])) == 'required') { $validatorsField['name'] = $params['name']; $validatorsField['required'] = true; $validatorsField['validators'][$iCount] = array('name' => 'NotEmpty'); $validatorsField['validators'][$iCount]['options']['messages'] = array(\Zend\Validator\NotEmpty::IS_EMPTY => 'Campo de preenchimento obrigatório'); $iCount++; } else { $validatorsField['name'] = $params['name']; $validatorsField['required'] = false; } if (isset($params['validationtype'])) { /* Verifica o tipo de validação utilizada e formata para continuar */ if (!is_array($params['validationtype'])) { $params['validationtype'] = array($params['validationtype']); } /* Procura o tipo de validação e define o mesmo */ foreach ($params['validationtype'] as $value) { $options = array(); //$options['translator'] = $this->translator; switch (strtolower($value)) { /* Zend Validator */ case 'alphanum': if (isset($params['permiteespaco']) and !empty($params['permiteespaco'])) { $validatorsField['validators'][$iCount] = array('name' => 'Alnum', 'options' => array($options, 'allowWhiteSpace' => true)); } else { $validatorsField['validators'][$iCount] = array('name' => 'Alnum'); } break; case 'alpha': if (isset($params['permiteespaco']) and !empty($params['permiteespaco'])) { $validatorsField['validators'][$iCount] = array('name' => 'Alpha', 'options' => array($options, 'allowWhiteSpace' => true)); } else { $validatorsField['validators'][$iCount] = array('name' => 'Alpha'); } break; case 'barcode': $validatorsField['validators'][$iCount] = array('name' => 'Barcode', 'options' => array($options, 'adapter' => $params['barcodeadapter'])); break; case 'between': if (isset($params['validationmax']) and !empty($params['validationmax'])) { $options['max'] = $params['validationmax']; } if (isset($params['validationmin']) and !empty($params['validationmin'])) { $options['min'] = $params['validationmin']; } $options['inclusive'] = true; $validatorsField['validators'][$iCount] = array('name' => 'Between', 'options' => $options); break; case 'callback': $validatorsField['validators'][$iCount] = array('name' => 'Callback', 'options' => $options); break; case 'creditcard': $validatorsField['validators'][$iCount] = array('name' => 'CreditCard', 'options' => $options); break; case 'date': $options['format'] = 'Y-m-d'; $validatorsField['validators'][$iCount] = array('name' => 'Date', 'options' => $options); break; case 'time': $options['format'] = 'H:i:s'; $validatorsField['validators'][$iCount] = array('name' => 'Date', 'options' => $options); break; case 'datetime': $validatorObj = new \Zend\I18n\Validator\DateTime(); $validatorObj->setDateType(\IntlDateFormatter::SHORT); $validatorObj->setTimeType(\IntlDateFormatter::SHORT); $validatorsField['validators'][$iCount] = $validatorChain->attach($validatorObj); break; case 'recordexists': $options['adapter'] = \Cityware\Db\Factory::factory('zend')->getAdapter(); if (isset($params['recordColumn']) and !empty($params['recordColumn'])) { $options['field'] = $params['recordColumn']; } else { $options['field'] = $params['name']; } if (isset($params['recordTable']) and !empty($params['recordTable'])) { $options['table'] = $params['recordTable']; } else { $options['table'] = $this->formDefaultConfig['table']; } if (isset($params['recordSchema']) and !empty($params['recordSchema'])) { $options['schema'] = $params['recordSchema']; } else { $options['schema'] = $this->formDefaultConfig['schema']; } if (isset($params['exclude']) and $params['exclude'] == 'true') { if (isset($params['excludeCol']) and !empty($params['excludeCol'])) { $options['exclude']['field'] = $params['excludeCol']; } else { throw new \Exception('Não foi definido nenhuma coluna de exclusão!', 500); } if (isset($params['excludeColValue']) and !empty($params['excludeColValue'])) { $options['exclude']['value'] = \Cityware\Format\Str::preparePhpTag($params['excludeColValue'], false); } else { if (isset($params['excludeUrlParam']) and !empty($params['excludeUrlParam'])) { $options['exclude']['value'] = $this->getUrlParam($params['excludeCol']); } else { throw new \Exception('Não foi definido nenhum valor de exclusão!', 500); } } } $validatorsField['validators'][$iCount] = array('name' => 'Db\\RecordExists', 'options' => $options); break; case 'norecordexists': $options['adapter'] = \Cityware\Db\Factory::factory('zend')->getAdapter(); if (isset($params['recordColumn']) and !empty($params['recordColumn'])) { $options['field'] = $params['recordColumn']; } else { $options['field'] = $params['name']; } if (isset($params['recordTable']) and !empty($params['recordTable'])) { $options['table'] = $params['recordTable']; } else { $options['table'] = $this->formDefaultConfig['table']; } if (isset($params['recordSchema']) and !empty($params['recordSchema'])) { $options['schema'] = $params['recordSchema']; } else { $options['schema'] = $this->formDefaultConfig['schema']; } if (isset($params['exclude']) and $params['exclude'] == 'true') { if (isset($params['excludeCol']) and !empty($params['excludeCol'])) { $options['exclude']['field'] = $params['excludeCol']; } else { throw new \Exception('Não foi definido nenhuma coluna de exclusão!', 500); } if (isset($params['excludeColValue']) and !empty($params['excludeColValue'])) { $options['exclude']['value'] = \Cityware\Format\Str::preparePhpTag($params['excludeColValue'], false); } else { if (isset($params['excludeUrlParam']) and !empty($params['excludeUrlParam'])) { $options['exclude']['value'] = $this->getUrlParam($params['excludeCol']); } else { throw new \Exception('Não foi definido nenhum valor de exclusão!', 500); } } } $validatorsField['validators'][$iCount] = array('name' => 'Db\\NoRecordExists', 'options' => $options); break; case 'digits': case 'int': case 'integer': $validatorsField['validators'][$iCount] = array('name' => 'Digits', 'options' => $options); break; case 'email': $validatorsField['validators'][$iCount] = array('name' => 'EmailAddress', 'options' => array($options, 'allow' => \Zend\Validator\Hostname::ALLOW_DNS, 'mx' => false, 'domain' => true)); break; case 'greaterthan': if (isset($params['validationmin']) and !empty($params['validationmin'])) { $options['min'] = $params['validationmin']; } $validatorsField['validators'][$iCount] = array('name' => 'GreaterThan', 'options' => $options); break; case 'hex': $validatorsField['validators'][$iCount] = array('name' => 'Hex', 'options' => $options); break; case 'hostname': $validatorsField['validators'][$iCount] = array('name' => 'Hostname', 'options' => $options); break; case 'iban': $validatorsField['validators'][$iCount] = array('name' => 'Iban', 'options' => $options); break; case 'identical': $validatorsField['validators'][$iCount] = array('name' => 'Identical', 'options' => array($options, 'token' => $params['validationcompare'])); break; case 'ip': $validatorsField['validators'][$iCount] = array('name' => 'Ip', 'options' => $options); break; case 'isbn': $validatorsField['validators'][$iCount] = array('name' => 'Isbn', 'options' => $options); break; case 'postcode': $validatorsField['validators'][$iCount] = array('name' => 'PostCode', 'options' => $options); break; case 'lessthan': if (isset($params['validationmax']) and !empty($params['validationmax'])) { $options['max'] = $params['validationmax']; } $validatorsField['validators'][$iCount] = array('name' => 'LessThan', 'options' => $options); break; case 'regex': $validatorsField['validators'][$iCount] = array('name' => 'Regex', 'options' => array($options, 'pattern' => $params['regexrule'])); break; case 'stringlength': if (isset($params['validationmax']) and !empty($params['validationmax'])) { $options['max'] = $params['validationmax']; } if (isset($params['validationmin']) and !empty($params['validationmin'])) { $options['min'] = $params['validationmin']; } $validatorsField['validators'][$iCount] = array('name' => 'StringLength', 'options' => $options); break; /* Customizados */ /* Customizados */ case 'custom': $validatorsField['validators'][$iCount] = $validatorChain->attach(new $params['customclass']()); break; case 'cpf': $validatorsField['validators'][$iCount] = $validatorChain->attach(new \Cityware\Form\Validators\Cpf()); break; case 'cnpj': $validatorsField['validators'][$iCount] = $validatorChain->attach(new \Cityware\Form\Validators\Cnpj()); break; case 'renavam': $validatorsField['validators'][$iCount] = $validatorChain->attach(new \Cityware\Form\Validators\Renavam()); break; case 'rg': $validatorsField['validators'][$iCount] = $validatorChain->attach(new \Cityware\Form\Validators\Rg()); break; case 'strongpassword': $validatorsField['validators'][$iCount] = $validatorChain->attach(new \Cityware\Form\Validators\StrongPassword()); break; case 'mediumpassword': $validatorsField['validators'][$iCount] = $validatorChain->attach(new \Cityware\Form\Validators\MediumPassword()); break; case 'easypassword': $validatorsField['validators'][$iCount] = $validatorChain->attach(new \Cityware\Form\Validators\EasyPassword()); break; case 'float': $validatorsField['validators'][$iCount] = $validatorChain->attach(new \Zend\I18n\Validator\Float()); break; case 'seterrorcustom': $validatorsField['validators'][$iCount] = $validatorChain->attach(new \Cityware\Form\Validators\SetErrorCustom()); break; } if (isset($params['messages']) and !empty($params['messages'])) { $validatorsField['validators'][$iCount]['options']['messages'] = $params['messages']; } $iCount++; } } $mainFilter->add($factory->createInput($validatorsField)); return $mainFilter; }
/** * Função de define o status dos registros selecionados da datagrid * @param string $varStatus */ public function defineStatus($varStatus) { $options = array(); /* Pega o request da página */ if (isset($this->request['idselect']) and !empty($this->request['idselect'])) { $regIds = $this->request['idselect']; } else { if (isset($this->request['id']) and !empty($this->request['id'])) { $regIds = array($this->request['id']); } else { throw new \Exception('Nenhum identificador definido', 500); } } /* Arquivo de configuração do datagrid */ $configGrid = ZendConfigFile::fromFile($this->sessionAdapter->moduleIni . $this->request['__CONTROLLER__'] . DS . ((isset($options['iniGridName']) and !empty($options['iniGridName'])) ? $options['iniGridName'] . ".ini" : "datagrid.ini")); $getParamsFieldGrid = $configGrid['gridfieldsconfig']; $getParamsGrid = $configGrid['gridconfig']; /* Coluna Primária do datagrid */ $primaryKey = null; foreach ($getParamsFieldGrid as $key => $value) { if (strtolower($value['type']) == 'primarykey') { $primaryKey = $key; } } /* Seleciona a tabela padrão do datagrid */ $db = \Cityware\Db\Factory::factory('zend'); if (isset($getParamsGrid['grid']['schema']) and $getParamsGrid['grid']['schema'] != "") { $db->from($getParamsGrid['grid']['table'], null, $getParamsGrid['grid']['schema']); } else { $db->from($getParamsGrid['grid']['table']); } /* Verifica se é array ou não definindo o where */ if (is_array($regIds)) { $inRegs = implode("','", $regIds); $db->where("{$primaryKey} IN ('{$inRegs}')"); } else { $db->where("{$primaryKey} = '{$regIds}'"); } /* Define o status */ $db->update('ind_status', $varStatus); /* Executa a atualização */ $db->setDebug(false); $db->executeUpdateQuery(); }
/** * C.R.U.D GENERICO * FUNCAO RESPONSAVEL PELA MANIPULACAO BASICA DAS INFORMACOES DISPONIVEIS NO BANCO DE DADOS * FORAM DEFINIDOS OS SEGUINTES CASOS: INSERIR, ATUALIZAR, ATIVAR, DESATIVAR, RECICLAR, RECUPERAR E EXCLUIR * * @param string $varAction * @param array $options * @param integer $varPage * @param integer $varLimit * @return boolean * @throws \Exception */ public function execute($varAction, array $options, $varPage = 1, $varLimit = 10) { if (isset($options['debug']) and $options['debug'] == 'true') { $this->setDebug(true); } /* Seleciona a tabela padrão do datagrid */ $db = \Cityware\Db\Factory::factory(); $primaryColumnName = $db->getPrimaryColumn($options['table'], $options['schema']); /** Define a coluna de chave primária */ $this->setPrimaryColumn($primaryColumnName); /* RECUPERA O TIPO DA ACAO ATRAVES DA CHAMADA DA FUNCAO OU RECUPERANDO A VARIAVEL POST['action'] RESERVADA */ $typeAction = (string) strtoupper(isset($varAction) && !empty($varAction) ? $varAction : (isset($_POST['action']) && !empty($_POST['action']) ? $_POST['action'] : null)); /* INSTANCIA E RECUPERA AS INFORMACOES DA TABELA SELECIONADA */ if ($options['table'] !== null) { /* DEFINE A TABELA SELECIONADA */ $db->from($options['table'], null, $options['schema']); if (strtolower($typeAction) != 'add' and strtolower($typeAction) != 'select') { if (is_numeric($this->getRequestValue('id'))) { $id = $this->getRequestValue('id'); } else { if (is_numeric($this->getRequestValue($primaryColumnName))) { $id = $this->getRequestValue($primaryColumnName); } else { $return = false; throw new \Exception('O identificador ID definido incorretamente', 500); } } } /** Formatação de campos de data automaticamente para o banco de dados */ $this->setRequestValues(\Cityware\Format\Date::formatDate($this->getRequestValues(), 'Y-m-d')); /** Definição de gravação das datas de cadastro e atualização */ if (strtolower($typeAction) == 'add') { $this->setRequestValue('dte_register', date('Y-m-d H:m:s')); $this->setRequestValue('dte_update', date('Y-m-d H:m:s')); } else { $this->setRequestValue('dte_update', date('Y-m-d H:m:s')); } /** Limpesa de campos não necessários para a tabela */ $this->setRequestValues($db->fromArray($this->getRequestValues(), $options['table'], $options['schema'])); if (!in_array($primaryColumnName, $this->getRequestValues())) { //$this->setRequestValue($primaryColumnName, null); } switch (strtolower($typeAction)) { /** CASO PARA INSERIR NOVOS DADOS */ case 'add': try { foreach ($this->getRequestValues() as $key => $value) { $db->insert($key, $value); } /* Executa o debug da query */ $db->setDebug($this->getDebug()); $return = $db->executeInsertQuery(); } catch (\Zend\Db\Exception\ErrorException $exc) { throw new \Exception('Ocorreu um erro ao tentar inserir dados na tabela: <b>' . $options['table'] . '</b> na ação de inserir<br /><br />' . $exc->getMessage(), 500); } break; /** CASO PARA ATUALIZAR OS DADOS SELECIONADOS */ /** CASO PARA ATUALIZAR OS DADOS SELECIONADOS */ case 'edit': try { foreach ($this->getRequestValues() as $key => $value) { $db->update($key, $value); } $db->where("{$this->getPrimaryColumn()} = '{$id}'"); $db->setDebug($this->getDebug()); $db->executeUpdateQuery(); $return = $id; } catch (\Zend\Db\Exception\ErrorException $exc) { throw new \Exception('Ocorreu erro ao tentar atualizar os dados da tabela: <b>' . $options['table'] . '</b> na ação de atualizar!<br /><br />' . $exc->getMessage(), 500); } break; /** CASO PARA ATIVAR (TORNAR ATIVO) OS DADOS SELECIONADOS */ /** CASO PARA ATIVAR (TORNAR ATIVO) OS DADOS SELECIONADOS */ case 'active': try { $db->update('ind_status', "A"); $db->where("{$this->getPrimaryColumn()} = '{$id}'"); $db->setDebug($this->getDebug()); $db->executeUpdateQuery(); } catch (\Zend\Db\Exception\ErrorException $exc) { throw new \Exception('Ocorreu erro ao tentar atualizar os dados da tabela: <b>' . $options['table'] . '</b> na ação de ativa!<br /><br />' . $exc->getMessage(), 500); } break; /** CASO PARA DESATIVAR (TORNAR INATIVO) OS DADOS SELECIONADOS */ /** CASO PARA DESATIVAR (TORNAR INATIVO) OS DADOS SELECIONADOS */ case 'deactivate': try { $db->update('ind_status', "B"); $db->where("{$this->getPrimaryColumn()} = '{$id}'"); $db->setDebug($this->getDebug()); $db->executeUpdateQuery(); } catch (\Zend\Db\Exception\ErrorException $exc) { throw new \Exception('Ocorreu erro ao tentar atualizar os dados da tabela: <b>' . $options['table'] . '</b> na ação de bloquear!<br /><br />' . $exc->getMessage(), 500); } break; /** CASO PARA RESTAURAR (RECUPERAR DA LIXEIRA) OS DADOS SELECIONADOS */ /** CASO PARA RESTAURAR (RECUPERAR DA LIXEIRA) OS DADOS SELECIONADOS */ case 'restore': try { $db->update('ind_status', "B"); $db->where("{$this->getPrimaryColumn()} = '{$id}'"); $db->setDebug($this->getDebug()); $db->executeUpdateQuery(); } catch (\Zend\Db\Exception\ErrorException $exc) { throw new \Exception('Ocorreu erro ao tentar atualizar os dados da tabela: <b>' . $options['table'] . '</b> na ação de restaurar!<br /><br />' . $exc->getMessage(), 500); } break; /** CASO PARA RECICLAR (ENVIAR PARA A LIXEIRA) OS DADOS SELECIONADOS */ /** CASO PARA RECICLAR (ENVIAR PARA A LIXEIRA) OS DADOS SELECIONADOS */ case 'trash': try { $db->update('ind_status', "L"); $db->where("{$this->getPrimaryColumn()} = '{$id}'"); $db->setDebug($this->getDebug()); $db->executeUpdateQuery(); } catch (\Zend\Db\Exception\ErrorException $exc) { throw new \Exception('Ocorreu erro ao tentar atualizar os dados da tabela: <b>' . $options['table'] . '</b> na ação de reciclar!<br /><br />' . $exc->getMessage(), 500); } break; /** CASO PARA EXCLUIR DEFINITIVAMENTE OS DADOS SELECIONADOS */ /** CASO PARA EXCLUIR DEFINITIVAMENTE OS DADOS SELECIONADOS */ case 'delete': try { $db->update('ind_status', "I"); $db->where("{$this->getPrimaryColumn()} = '{$id}'"); $db->setDebug($this->getDebug()); $db->executeUpdateQuery(); } catch (\Zend\Db\Exception\ErrorException $exc) { throw new \Exception('Ocorreu erro ao tentar atualizar os dados da tabela: <b>' . $options['table'] . '</b> na ação de excluir!<br /><br />' . $exc->getMessage(), 500); } break; /** CASO PARA SELECIONAR E PAGINAR OS DADOS SELECIONADOS */ /** CASO PARA SELECIONAR E PAGINAR OS DADOS SELECIONADOS */ case 'pagination': try { $db->select("*"); $return = $db->executeSelectQuery(true, $varPage, $varLimit); } catch (\Zend\Db\Exception\ErrorException $exc) { throw new \Exception('Ocorreu erro ao tentar selecionar os dados da tabela: <b>' . $options['table'] . '</b> na ação de paginar!<br /><br />' . $exc->getMessage(), 500); } break; /** CASO PARA SELECIONAR OS DADOS */ /** CASO PARA SELECIONAR OS DADOS */ case 'select': try { $db->select("*"); $return = $db->executeSelectQuery(); } catch (\Zend\Db\Exception\ErrorException\ErrorException $exc) { throw new \Exception('Ocorreu erro ao tentar selecionar os dados da tabela: <b>' . $options['table'] . '</b> na ação de selecionar!<br /><br />' . $exc->getMessage(), 500); } break; /** CASO PARA SELECIONAR OS DADOS POR ID */ /** CASO PARA SELECIONAR OS DADOS POR ID */ case 'selectid': try { $db->select("*"); $db->where("{$this->getPrimaryColumn()} = '{$id}'"); $return = $db->executeSelectQuery(); } catch (\Zend\Db\Exception\ErrorException\ErrorException $exc) { throw new \Exception('Ocorreu erro ao tentar selecionar os dados da tabela: <b>' . $options['table'] . '</b> na ação de selecionar por id!<br /><br />' . $exc->getMessage(), 500); } break; } } else { $return = false; throw new \Exception('A tabela não foi definida!', 500); } self::freeMemory(); return $return; }