PageRenderTime 43ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/workflow/engine/classes/model/CaseTrackerObject.php

https://bitbucket.org/ferOnti/processmaker
PHP | 164 lines | 141 code | 7 blank | 16 comment | 7 complexity | c5f02ad6db968e6bc6cc8a56c33a16ad MD5 | raw file
  1. <?php
  2. /**
  3. * CaseTrackerObject.php
  4. *
  5. * @package workflow.engine.classes.model
  6. */
  7. require_once 'classes/model/om/BaseCaseTrackerObject.php';
  8. /**
  9. * Skeleton subclass for representing a row from the 'CASE_TRACKER_OBJECT' table.
  10. *
  11. *
  12. *
  13. * You should add additional methods to this class to meet the
  14. * application requirements. This class will only be generated as
  15. * long as it does not already exist in the output directory.
  16. *
  17. * @package workflow.engine.classes.model
  18. */
  19. class CaseTrackerObject extends BaseCaseTrackerObject
  20. {
  21. public function load ($Uid)
  22. {
  23. try {
  24. $oRow = CaseTrackerObjectPeer::retrieveByPK( $Uid );
  25. if (! is_null( $oRow )) {
  26. $aFields = $oRow->toArray( BasePeer::TYPE_FIELDNAME );
  27. $this->fromArray( $aFields, BasePeer::TYPE_FIELDNAME );
  28. $this->setNew( false );
  29. return $aFields;
  30. } else {
  31. throw (new Exception( "The row '$Uid' in table CaseTrackerObject doesn't exist!" ));
  32. }
  33. } catch (Exception $oError) {
  34. throw ($oError);
  35. }
  36. }
  37. public function create ($aData)
  38. {
  39. $oConnection = Propel::getConnection( CaseTrackerObjectPeer::DATABASE_NAME );
  40. try {
  41. if (! isset( $aData['CTO_UID'] )) {
  42. $aData['CTO_UID'] = G::generateUniqueID();
  43. }
  44. $oCaseTrackerObject = new CaseTrackerObject();
  45. $oCaseTrackerObject->fromArray( $aData, BasePeer::TYPE_FIELDNAME );
  46. if ($oCaseTrackerObject->validate()) {
  47. $oConnection->begin();
  48. $iResult = $oCaseTrackerObject->save();
  49. $oConnection->commit();
  50. return $aData['CTO_UID'];
  51. } else {
  52. $sMessage = '';
  53. $aValidationFailures = $oCaseTrackerObject->getValidationFailures();
  54. foreach ($aValidationFailures as $oValidationFailure) {
  55. $sMessage .= $oValidationFailure->getMessage() . '<br />';
  56. }
  57. throw (new Exception( 'The registry cannot be created!<br />' . $sMessage ));
  58. }
  59. } catch (Exception $oError) {
  60. $oConnection->rollback();
  61. throw ($oError);
  62. }
  63. }
  64. public function update ($aData)
  65. {
  66. $oConnection = Propel::getConnection( CaseTrackerObjectPeer::DATABASE_NAME );
  67. try {
  68. $oCaseTrackerObject = CaseTrackerObjectPeer::retrieveByPK( $aData['CTO_UID'] );
  69. if (! is_null( $oCaseTrackerObject )) {
  70. $oCaseTrackerObject->fromArray( $aData, BasePeer::TYPE_FIELDNAME );
  71. if ($oCaseTrackerObject->validate()) {
  72. $oConnection->begin();
  73. $iResult = $oCaseTrackerObject->save();
  74. $oConnection->commit();
  75. return $iResult;
  76. } else {
  77. $sMessage = '';
  78. $aValidationFailures = $oCaseTrackerObject->getValidationFailures();
  79. foreach ($aValidationFailures as $oValidationFailure) {
  80. $sMessage .= $oValidationFailure->getMessage() . '<br />';
  81. }
  82. throw (new Exception( 'The registry cannot be updated!<br />' . $sMessage ));
  83. }
  84. } else {
  85. throw (new Exception( 'This row doesn\'t exist!' ));
  86. }
  87. } catch (Exception $oError) {
  88. $oConnection->rollback();
  89. throw ($oError);
  90. }
  91. }
  92. public function remove ($sCTOUID)
  93. {
  94. $oConnection = Propel::getConnection( CaseTrackerObjectPeer::DATABASE_NAME );
  95. try {
  96. $oCaseTobj = CaseTrackerObjectPeer::retrieveByPK( $sCTOUID );
  97. if (is_object( $oCaseTobj ) && get_class( $oCaseTobj ) == 'CaseTrackerObject') {
  98. $oConnection->begin();
  99. $iResult = $oCaseTobj->delete();
  100. $oConnection->commit();
  101. return $iResult;
  102. } else {
  103. throw (new Exception( "The row '" . $sCTOUID . "' in table CaseTrackerObject doesn't exist!" ));
  104. }
  105. } catch (Exception $oError) {
  106. var_dump( $oError );
  107. die();
  108. $oConnection->rollback();
  109. throw ($oError);
  110. }
  111. }
  112. public function reorderPositions ($sProcessUID, $iPosition)
  113. {
  114. try {
  115. $oCriteria = new Criteria( 'workflow' );
  116. $oCriteria->add( CaseTrackerObjectPeer::PRO_UID, $sProcessUID );
  117. $oCriteria->add( CaseTrackerObjectPeer::CTO_POSITION, $iPosition, '>' );
  118. $oDataset = CaseTrackerObjectPeer::doSelectRS( $oCriteria );
  119. $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
  120. $oDataset->next();
  121. while ($aRow = $oDataset->getRow()) {
  122. $this->update( array ('CTO_UID' => $aRow['CTO_UID'],'PRO_UID' => $aRow['PRO_UID'],'CTO_TYPE_OBJ' => $aRow['CTO_TYPE_OBJ'],'CTO_UID_OBJ' => $aRow['CTO_UID_OBJ'],'CTO_CONDITION' => $aRow['CTO_CONDITION'],'CTO_POSITION' => $aRow['CTO_POSITION'] - 1
  123. ) );
  124. $oDataset->next();
  125. }
  126. } catch (Exception $oException) {
  127. throw $Exception;
  128. }
  129. }
  130. public function caseTrackerObjectExists ($Uid)
  131. {
  132. try {
  133. $oObj = CaseTrackerObjectPeer::retrieveByPk( $Uid );
  134. if (is_object( $oObj ) && get_class( $oObj ) == 'CaseTrackerObject') {
  135. return true;
  136. } else {
  137. return false;
  138. }
  139. } catch (Exception $oError) {
  140. throw ($oError);
  141. }
  142. }
  143. public function removeByObject ($sType, $sObjUid)
  144. {
  145. try {
  146. $oCriteria = new Criteria( 'workflow' );
  147. $oCriteria->add( CaseTrackerObjectPeer::CTO_TYPE_OBJ, $sType );
  148. $oCriteria->add( CaseTrackerObjectPeer::CTO_UID_OBJ, $sObjUid );
  149. CaseTrackerObjectPeer::doDelete( $oCriteria );
  150. } catch (Exception $e) {
  151. throw ($e);
  152. }
  153. }
  154. }