function libCorpUpdateDocumento($updDocumento, $userCredential = NULL) { $xmlResult = '<result><status>%s</status><errocode>%s</errocode><response>%s</response></result>'; try { Registry::factory()->setCredential($userCredential); $voDocumento = DocumentoValueObject::factory()->loadData($updDocumento); $voDocumento = DocumentoBusiness::factory()->updateDocumento($voDocumento); return sprintf($xmlResult, 'success', '00000', $voDocumento->toXml()); } catch (\Exception $excp) { return sprintf($xmlResult, 'failure', $excp->getCode(), $excp->getMessage()); } }
/** * recupera todos os atributos que compoem um determinado documento, * filtrando-o por uma das porpiedades do proprio documento. * * supondo que o documento seja composto pelos atributos: a,b,c e d, * este metodo recupera todos os atributos informando em deles * * @param integer $sqpessoa * @param integer $sqDocumento * @return ResultSet * */ public function findAtributosDocumento(DocumentoValueObject $documento) { $query = 'SELECT tipDoc.sq_tipo_documento, doc.sq_documento, tipDoc.no_tipo_documento, doc.tx_valor, attr.no_atributo_documento FROM corporativo.documento AS doc INNER JOIN corporativo.atributo_tipo_documento AS attrtipDoc ON doc.sq_atributo_tipo_documento = attrtipDoc.sq_atributo_tipo_documento INNER JOIN corporativo.tipo_documento AS tipDoc ON attrtipDoc.sq_tipo_documento = tipDoc.sq_tipo_documento INNER JOIN corporativo.atributo_documento AS attr ON attrtipDoc.sq_atributo_documento = attr.sq_atributo_documento WHERE tipDoc.sq_tipo_documento = ( SELECT sub_attr_tip_doc.sq_tipo_documento FROM corporativo.documento AS sub_doc INNER JOIN corporativo.atributo_tipo_documento AS sub_attr_tip_doc ON sub_doc.sq_atributo_tipo_documento = sub_attr_tip_doc.sq_atributo_tipo_documento WHERE sub_doc.sq_documento = :sqDocumento) AND doc.sq_pessoa = :sqPessoa'; # dono do documento $params['sqPessoa'] = new \stdClass(); $params['sqPessoa']->type = 'integer'; $params['sqPessoa']->value = $documento->getSqPessoa()->getSqPessoa(); # id do documento $params['sqDocumento'] = new \stdClass(); $params['sqDocumento']->type = 'integer'; $params['sqDocumento']->value = $documento->getSqDocumento(); return $this->execute($query, $params); }
/** * Atualiza os dados de Documento * * @example DocumentoBusiness::updateDocumento * @code * <?php * # cria filtro usado por agencia * $voDocumento = ValueObjectAbstract::factory('fullnamespace'); * # outra forma de utilizar * # $voDocumento = EmailValueObject::factory(); * $voDocumento->setSqDocumento(1); * * # efetua atualizacao * $documentoBusiness = DocumentoBusiness::factory(); * $documentoBusiness->updateEmail($voDocumento); * ?> * @endcode * * @param DocumentoValueObject $voDocumento * @return DocumentoValueObject * @throws BusinessException * */ public function updateDocumento(DocumentoValueObject $voDocumento) { try { $voDocumentoTmp = DocumentoBusiness::factory(NULL, 'libcorp')->find($voDocumento->getSqDocumento()); $voDocumentoTmp->loadData($this->keepUpdateData($voDocumento)); $this->getModelPersist('libcorp')->update($voDocumentoTmp); return $voDocumentoTmp; } catch (ModelException $mExcp) { throw new BusinessException($mExcp->getMessage(), $mExcp->getCode()); } }