From a387877eb428a21349e0b8a686b81546477b5932 Mon Sep 17 00:00:00 2001
From: Madhu S R <madhu.sr@vtigersolutions.com>
Date: Wed, 3 Apr 2024 10:03:30 +0530
Subject: [PATCH] #Fixes::159009390::madhusr::Not able to unlink the emails
 from the project module

---
 .gitignore                                        |  1 +
 modules/Contacts/Contacts.php                     | 15 ++++++++++++++-
 .../Project/modules/Project/models/Relation.php   |  2 ++
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 1b58a9326..585abce2b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 vendor/*
 !vendor/.htaccess
+.vscode/*
\ No newline at end of file
diff --git a/modules/Contacts/Contacts.php b/modules/Contacts/Contacts.php
index 422c09245..b58cb0973 100644
--- a/modules/Contacts/Contacts.php
+++ b/modules/Contacts/Contacts.php
@@ -788,7 +788,7 @@ class Contacts extends CRMEntity {
 			}
 		}
         
-        $relatedIds = array_merge(array($id), $this->getRelatedPotentialIds($id), $this->getRelatedTicketIds($id));
+        $relatedIds = array_merge(array($id), $this->getRelatedPotentialIds($id), $this->getRelatedTicketIds($id), $this->getRelatedProjectIds($id));
         $relatedIds = implode(', ', $relatedIds);
 
 		$userNameSql = getSqlForNameInDisplayFormat(array('first_name'=>
@@ -1614,6 +1614,19 @@ function get_contactsforol($user_name)
         return $relatedIds;
     }
 
+	function getRelatedProjectIds($id) {
+		$relatedIds = array();
+		$db = PearDatabase::getInstance();
+		$query = "SELECT DISTINCT vtiger_crmentity.crmid FROM vtiger_contactdetails LEFT JOIN vtiger_project ON
+		(vtiger_project.linktoaccountscontacts = vtiger_contactdetails.contactid) INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_project.projectid
+		WHERE vtiger_crmentity.deleted = 0 AND vtiger_contactdetails.contactid = ?";
+		$result = $db->pquery($query, array($id));
+		for ($i = 0; $i < $db->num_rows($result); $i++) {
+			$relatedIds[] = $db->query_result($result, $i, 'crmid');
+		}
+        return $relatedIds;
+    }
+
 }
 
 ?>
diff --git a/pkg/vtiger/modules/Projects/Project/modules/Project/models/Relation.php b/pkg/vtiger/modules/Projects/Project/modules/Project/models/Relation.php
index 72086687f..99f482f50 100644
--- a/pkg/vtiger/modules/Projects/Project/modules/Project/models/Relation.php
+++ b/pkg/vtiger/modules/Projects/Project/modules/Project/models/Relation.php
@@ -21,6 +21,8 @@ class Project_Relation_Model extends Vtiger_Relation_Model{
 		$destinationModuleName = $this->getRelationModuleModel()->get('name');
 		$sourceModuleFocus = CRMEntity::getInstance($sourceModuleName);
         	$sourceModuleFocus->delete_related_module($sourceModuleName, $sourceRecordId, $destinationModuleName, $relatedRecordId);
+			$destinationModuleFocus = CRMEntity::getInstance($destinationModuleName);
+			$destinationModuleFocus->unlinkRelationship($relatedRecordId, $sourceModuleName, $sourceRecordId);
 			$sourceModuleFocus->trackUnLinkedInfo($sourceModuleName, $sourceRecordId, $destinationModuleName, $relatedRecordId);
 		return true;
 	}
-- 
GitLab