diff --git a/packages/vtiger/optional/RecycleBin.zip b/packages/vtiger/optional/RecycleBin.zip index 4f3185ef3283bd897637630d31ec42ff5729a4b0..b0e2ef16bfbf18966d9bf93820a089432ed97ab2 100644 Binary files a/packages/vtiger/optional/RecycleBin.zip and b/packages/vtiger/optional/RecycleBin.zip differ diff --git a/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/Module.php b/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/Module.php index d9dfed4d51316eee4675d4fd95e6b6be6e6ac0dd..c14b14dc49dfa7f24d9b405ed50863bb3de364dc 100644 --- a/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/Module.php +++ b/pkg/vtiger/modules/RecycleBin/modules/RecycleBin/models/Module.php @@ -152,6 +152,7 @@ class RecycleBin_Module_Model extends Vtiger_Module_Model { // Delete related mod comments $this->deleteRelatedComments($recordIds); + $this->deleteRelatedEmails($recordIds); // TODO - Remove records from module tables and other related stores. $query = 'DELETE FROM vtiger_modtracker_basic WHERE crmid in(' . generateQuestionMarks($recordIds) . ')'; @@ -256,4 +257,26 @@ class RecycleBin_Module_Model extends Vtiger_Module_Model { $db->pquery($query, array($recordIds)); } + + /** + * Function to remove emails related to given records + * NOTE : Still need to confirm + * @param type $recordIds + */ + public function deleteRelatedEmails($recordIds) { + $db = PearDatabase::getInstance(); + /** + * we have to delete emails if email is related to any $recordIds and same email is + * not related to another record + */ + $query = "DELETE vtiger_crmentity.* FROM vtiger_crmentity INNER JOIN " + . "(SELECT vtiger_crmentity.crmid AS actid,vtiger_seactivityrel.crmid AS relid " + . "FROM vtiger_crmentity INNER JOIN vtiger_seactivityrel ON " + . "vtiger_seactivityrel.activityid=vtiger_crmentity.crmid " + . "GROUP BY vtiger_seactivityrel.activityid HAVING count(vtiger_seactivityrel.activityid) = 1)" + . " AS relationdata ON relationdata.actid=vtiger_crmentity.crmid " + . "WHERE relationdata.relid IN (" . generateQuestionMarks($recordIds) . ")"; + + $db->pquery($query, array($recordIds)); + } }