consider dao->delete result for triggerDelete()
authordeepak-srivastava <deepak.srivastava.0303@gmail.com>
Thu, 2 Oct 2014 14:41:47 +0000 (15:41 +0100)
committerdeepak-srivastava <deepak.srivastava.0303@gmail.com>
Fri, 3 Oct 2014 09:08:27 +0000 (10:08 +0100)
CRM/Core/BAO/RecurringEntity.php
CRM/Core/DAO.php
Civi/Core/DAO/Event/PostDelete.php

index 0e92e02791debd28f7c78c92138bfd4756075a39..c48be354ce1e7b769a762f10574225f38fc858ef 100644 (file)
@@ -653,6 +653,8 @@ class CRM_Core_BAO_RecurringEntity extends CRM_Core_DAO_RecurringEntity {
    * @return void
    */
   static public function triggerDelete($event){
+    $obj =& $event->object;
+
     // if DB version is earlier than 4.6 skip any processing
     static $currentVer = NULL;
     if (!$currentVer) {
@@ -663,8 +665,7 @@ class CRM_Core_BAO_RecurringEntity extends CRM_Core_DAO_RecurringEntity {
     }
 
     static $processedEntities = array();
-    $obj =& $event->object;
-    if (empty($obj->id) || empty($obj->__table)) {
+    if (empty($obj->id) || empty($obj->__table) || !$event->result) {
       return FALSE;
     }
     $key = "{$obj->__table}_{$obj->id}";
index bfdf3964c9a28e8fcb44e799939e49268e9de7fe..7f990f5a7b8fbb6af0f4aa6c2d5a0c95ff47eb08 100644 (file)
@@ -470,7 +470,7 @@ class CRM_Core_DAO extends DB_DataObject {
   function delete($useWhere = FALSE) {
     $result = parent::delete($useWhere);
 
-    $event = new \Civi\Core\DAO\Event\PostDelete($this);
+    $event = new \Civi\Core\DAO\Event\PostDelete($this, $result);
     \Civi\Core\Container::singleton()->get('dispatcher')->dispatch("DAO::post-delete", $event);
 
     return $result;
index 1fd5485cb8b2f97acdd5007bbc150215cfca9f11..c50895ecf8fa2203c83e5e072ca9e98cb4277251 100644 (file)
@@ -38,7 +38,13 @@ class PostDelete extends \Symfony\Component\EventDispatcher\Event {
    */
   public $object;
 
-  function __construct($object) {
+  /**
+   * @var DAO delete result
+   */
+  public $result;
+
+  function __construct($object, $result) {
     $this->object = $object;
+    $this->result = $result;
   }
 }