====== Search custom ProductFields during Productsearch ======
If you create an Invoice you could use the great Search function to select products.
But what to do, if you store your unique product selector in a field, which won't be searched during this function?
You probably could apply the following modification:
But you probably will need some SQL knowledge!
=== File: modules/Products/models/Records.php ===
=== Search ===
if($module == 'Products'){
$query = 'SELECT label, crmid, setype, createdtime FROM vtiger_crmentity INNER JOIN vtiger_products ON
vtiger_products.productid = vtiger_crmentity.crmid WHERE label LIKE ? AND vtiger_crmentity.deleted = 0
AND vtiger_products.discontinued = 1 AND setype = ?';
}else if($module == 'Services'){
$query = 'SELECT label, crmid, setype, createdtime FROM vtiger_crmentity INNER JOIN vtiger_service ON
vtiger_service.serviceid = vtiger_crmentity.crmid WHERE label LIKE ? AND vtiger_crmentity.deleted = 0
AND vtiger_service.discontinued = 1 AND setype = ?';
}
Customize this queries, like you need.
If you will query a custom fields (in this example cf_645), you need to modify the code in this way:
if($module == 'Products'){
$query = 'SELECT label, crmid, setype, createdtime FROM vtiger_crmentity
INNER JOIN vtiger_products ON vtiger_products.productid = vtiger_crmentity.crmid
INNER JOIN vtiger_productcf ON vtiger_products.productid = vtiger_productcf.productid
WHERE (label LIKE ? OR cf_645 LIKE ?) AND vtiger_crmentity.deleted = 0
AND vtiger_products.discontinued = 1 AND setype = ?';
$params[] = "%$searchKey%";
}else if($module == 'Services'){
$query = 'SELECT label, crmid, setype, createdtime FROM vtiger_crmentity INNER JOIN vtiger_service ON
vtiger_service.serviceid = vtiger_crmentity.crmid WHERE label LIKE ? AND vtiger_crmentity.deleted = 0
AND vtiger_service.discontinued = 1 AND setype = ?';
}