php - Using subquery for search in popup view -
i using sugarcrm ce 6.5.20, out box not allow searching related modules many many relationship. can overcome adding custom relate field respresents relationship using custom subquery in searchfields.php so:
'par_med_cond' => array ( 'query_type' => 'default', 'operator' => 'subquery', subquery' => 'select spsmc.frp_fundraisingprogram_contacts_1contacts_idb frp_fundraisingprogram_contacts_1_c spsmc left join frp_fundraisingprogram smc on spsmc.frp_fundraisingprogram_contacts_1frp_fundraisingprogram_ida = smc.id smc.deleted =0 , spsmc.deleted =0 , smc.name like', 'db_field' => array ( 0 => 'id', ), ), this works on normal listview advanced search panel not work when adding field popupview search.
its not adding subquery on @ in popup. query that's failing:
select contacts.id ,contacts_cstm.contactkeyhost_c, ltrim(rtrim(concat(ifnull(contacts.first_name,''),' ',ifnull(contacts.last_name,'')))) name, contacts.first_name , contacts.last_name , contacts.salutation , accounts.name account_name, jtl0.account_id account_id, contacts.profile_ref , contacts.assigned_user_id contacts left join contacts_cstm on contacts.id = contacts_cstm.id_c left join accounts_contacts jtl0 on contacts.id=jtl0.contact_id , jtl0.deleted=0 left join accounts accounts on accounts.id=jtl0.account_id , accounts.deleted=0 , accounts.deleted=0 (( par_med_cond 'mtest1%' )) , contacts.deleted=0 order name asc limit 0,21 - unknown column 'par_med_cond' in 'where clause'
i had customize view.popup.php module , jam in condition if being searched on in $popupmeta['wherestatement'] within display().
if(!empty($_request['mode']) && $_request['mode']=='multiselect_fp') { $_request['mode'] = 'multiselect';
$popupmeta['wherestatement'] .= (!empty($popupmeta['wherestatement']) ? ' and' : '')." ((contacts.id in (select frp_fundraisingprogram_contacts_1contacts_idb (select spsmc.frp_fundraisingprogram_contacts_1contacts_idb frp_fundraisingprogram_contacts_1_c spsmc left join frp_fundraisingprogram smc on spsmc.frp_fundraisingprogram_contacts_1frp_fundraisingprogram_ida = smc.id smc.deleted =0 , spsmc.deleted =0 , smc.name '".$_request['metadata']."') par_med_cond_derived))) , contacts.deleted=0 "; }
Comments
Post a Comment