vtws_recordExists($recordId) returns true when $recordId is empty or it doesn't exist as crmid in vtiger_crmentity
vtws_recordExists
returns true when vtiger_crmentity.deleted = 0
which is what you would expect, because that means that the record has not been deleted.
The problem is when there is no record in the vtiger_crmentity
table. In that case, the function also returns true
which is terribly wrong and an unexpected behavior of the function.
This is what the function looks like:
function vtws_recordExists($recordId) {
$ids = vtws_getIdComponents($recordId);
return !Vtiger_Util_Helper::CheckRecordExi1stance($ids[1]);
}
This is what Vtiger_Util_Helper::CheckRecordExi1stance()
looks like:
public static function checkRecordExistance($recordId){
global $adb;
$query = 'Select deleted from vtiger_crmentity where crmid=?';
$result = $adb->pquery($query, array($recordId));
return $adb->query_result($result, 'deleted');
}
If the query returns no result, then this line return !Vtiger_Util_Helper::CheckRecordExi1stance($ids[1]);
in vtws_recordExists
converts it to true
Edited by Prasad