Results 1 to 4 of 4

Thread: Alert message creditlimit

  1. #1
    timolein is offline Sugar Community Member
    Join Date
    May 2008
    Posts
    51

    Default Credit limit

    Hi,

    Can this be done?

    I have a custom module and text field for customer creditlimit. Now if admin type "problems with creditlimit or do not sell anything to this customer" in the field, you get alert message on customer list view or somewhere just to notice users that this customer has problems with creditlimit.

    Tpl
    Last edited by timolein; 2009-03-18 at 06:33 PM.

  2. #2
    Angel's Avatar
    Angel is offline Sugar Community Member
    Join Date
    Jul 2005
    Location
    Los Angeles
    Posts
    4,813

    Default Re: Alert message creditlimit

    Yes, it is possible.

    I actually just finished doing something similar for a client where they wanted a specific field on the listview to be highlighted based on whether or not it contained a specific value. Not sure if that's what you are looking for, but it is a similar concept. You would need to define exactly what you mean by alert.

    Either way, you will need to do some custom coding. The general idea would be to override the default listview template with your customized version which in turn has the logic that does the highlighting, etc.

    Check out the developer help forum for some further insight as there was a recent HOW TO post with instructions on overriding the default listview template.
    Regards,

    Angel Magaņa
    Co-Author: Implementing SugarCRM 5.x (Packt Publishing -- Sept. 2010)
    Blog: http://cheleguanaco.blogspot.com.
    Twitter: @cheleguanaco.

    ________
    | Projects: |_____________________________________
    |
    | CandyWrapper (.NET Wrapper for SugarCRM SOAP API). Source now available on GitHub!
    | GoldMine to SugarCRM Express Conversion. Latest: 1.0.1.7 (Nov. 3, 2009)
    | CRM SkyDialer (Skype Integration). Latest: 1.0.2 (Feb. 17, 2010)
    | Round Robin Leads Assignment
    | Phone Number Formatter
    | CaseTwit (Twitter Integration)
    ______________________________________________

  3. #3
    timolein is offline Sugar Community Member
    Join Date
    May 2008
    Posts
    51

    Default Re: Alert message creditlimit

    Thanks for reply Angel! Yes that is exact what I need -> "listview to be highlighted based on whether or not it contained a specific value"

    So is this right file to be edit: modules\my custom module\metadata\listviewdefs.php ?

    Can this specific value field (basic textfield) be in differenf custom module or should it be on the same custom module?

    And I need some example code please.

    Tpl

  4. #4
    Angel's Avatar
    Angel is offline Sugar Community Member
    Join Date
    Jul 2005
    Location
    Los Angeles
    Posts
    4,813

    Default Re: Alert message creditlimit

    This should help...

    This is the view.list.php that I use to override the default ListViewGeneric.tpl file:

    Code:
    <?php
    if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
    require_once('include/MVC/View/views/view.list.php');  
    
    class OpportunitiesViewList extends ViewList {          
            function OpportunitiesViewList(){                 
                parent::ViewList();        
            }          
    
            function listViewProcess(){
    		
    			$this->processSearchForm();
    			
    			$this->lv->searchColumns = $this->searchForm->searchColumns;
    			
    			if(empty($_REQUEST['search_form_only']) || $_REQUEST['search_form_only'] == false)
    			{
    				$this->lv->setup($this->seed, 'custom/modules/YOURMODULE/tpls/ListViewGeneric.tpl', $this->where, $this->params); 
    				$savedSearchName = empty($_REQUEST['saved_search_select_name']) ? '' : (' - ' . $_REQUEST['saved_search_select_name']);
    				echo get_form_header($GLOBALS['mod_strings']['LBL_LIST_FORM_TITLE'] . $savedSearchName, '', false);
    				echo $this->lv->display();
    			}		
            }
    		
    }   
    ?>
    Notice the reference to the ListViewGeneric.tpl file in the above. That's what tells it where to find the one I want to use. In reality, you can store it wherever you like, so long as the web server has access to it.

    That file is just a copy of the one found in include/ListView, with a minor modification to color the background red whenever a field contains "MYVALUE". This is that code:

    Code:
    {if $overlib}
    	<script type='text/javascript' src='{sugar_getjspath file='include/javascript/sugar_grp_overlib.js'}'></script>
    	<div id='overDiv' style='position:absolute; visibility:hidden; z-index:1000;'></div>
    {/if}
    {if $prerow}
    	{$multiSelectData}
    {/if}
    <table cellpadding='0' cellspacing='0' width='100%' border='0' class='listview'>
    {include file='include/ListView/ListViewPagination.tpl}
    <tr height='20'>
    		{if $prerow}
    			<td scope='col' class='listViewThS1' nowrap width='1%'>
    				<input type='checkbox' class='checkbox' name='massall' value='' onclick='sListView.check_all(document.MassUpdate, "mass[]", this.checked);' />
    			</td>
    		{/if}
    		{counter start=0 name="colCounter" print=false assign="colCounter"}
    		{foreach from=$displayColumns key=colHeader item=params}
    			<td scope='col' width='{$params.width}%' class='listViewThS1' nowrap>
    				<div style='white-space: nowrap;'width='100%' align='{$params.align|default:'left'}'>
                    {if $params.sortable|default:true}
    	                <a href='javascript:sListView.order_checks("{$pageData.ordering.sortOrder|default:ASCerror}", "{$params.orderBy|default:$colHeader|lower}" , "{$pageData.bean.moduleDir}{"2_"}{$pageData.bean.objectName|upper}{"_ORDER_BY"}")' class='listViewThLinkS1'>
    					{sugar_translate label=$params.label module=$pageData.bean.moduleDir}&nbsp;&nbsp;
    					{if $params.orderBy|default:$colHeader|lower == $pageData.ordering.orderBy}
    						{if $pageData.ordering.sortOrder == 'ASC'}
    							<img border='0' src='{$imagePath}arrow_down.{$arrowExt}' width='{$arrowWidth}' height='{$arrowHeight}' align='absmiddle' alt='{$arrowAlt}'>
    						{else}
    							<img border='0' src='{$imagePath}arrow_up.{$arrowExt}' width='{$arrowWidth}' height='{$arrowHeight}' align='absmiddle' alt='{$arrowAlt}'>
    						{/if}
    					{else}
    						<img border='0' src='{$imagePath}arrow.{$arrowExt}' width='{$arrowWidth}' height='{$arrowHeight}' align='absmiddle' alt='{$arrowAlt}'>
    					{/if}
    					</a>
    				{else}
    					{sugar_translate label=$params.label module=$pageData.bean.moduleDir}
    				{/if}
    				</div>
    			</td>
    			{counter name="colCounter"}
    		{/foreach}
    		{if !empty($quickViewLinks)}
    		<td scope='col' class='listViewThS1' nowrap width='1%'>&nbsp;</td>
    		{/if}
    	</tr>
    		
    	{counter start=$pageData.offsets.current print=false assign="offset" name="offset"}	
    	{foreach name=rowIteration from=$data key=id item=rowData}
    	    {counter name="offset" print=false}
    
    		{if $smarty.foreach.rowIteration.iteration is odd}
    			{assign var='_bgColor' value=$bgColor[0]}
    			{assign var='_rowColor' value=$rowColor[0]}
    		{else}
    			{assign var='_bgColor' value=$bgColor[1]}
    			{assign var='_rowColor' value=$rowColor[1]}
    		{/if}
    		
    		<tr height='20' onmouseover="setPointer(this, '{$id}', 'over', '{$_bgColor}', '{$bgHilite}', '');" onmouseout="setPointer(this, '{$rowData.ID}', 'out', '{$_bgColor}', '{$bgHilite}', '');" onmousedown="setPointer(this, '{$id}', 'click', '{$_bgColor}', '{$bgHilite}', '');">
    			{if $prerow}
    			<td width='1%' class='{$_rowColor}S1' bgcolor='{$_bgColor}' nowrap>
    					<input onclick='sListView.check_item(this, document.MassUpdate)' type='checkbox' class='checkbox' name='mass[]' value='{$rowData.ID}'>
    					{$pageData.additionalDetails.$id}
    			</td>
    			{/if}
    			{counter start=0 name="colCounter" print=false assign="colCounter"}
    
    			{foreach from=$displayColumns key=col item=params}
    			
    				<td scope='row' align='{$params.align|default:'left'}' valign=top class='{$_rowColor}S1' bgcolor='{$_bgColor}'>
    				
    					{if $params.link && !$params.customCode}
    						
    						<{$pageData.tag.$id[$params.ACLTag]|default:$pageData.tag.$id.MAIN} href="#" onMouseOver="javascript:lvg_nav('{if $params.dynamic_module}{$rowData[$params.dynamic_module]}{else}{$params.module|default:$pageData.bean.moduleDir}{/if}', '{$rowData[$params.id]|default:$rowData.ID}', 'd', {$offset}, this)"  onFocus="javascript:lvg_nav('{if $params.dynamic_module}{$rowData[$params.dynamic_module]}{else}{$params.module|default:$pageData.bean.moduleDir}{/if}', '{$rowData[$params.id]|default:$rowData.ID}', 'd', {$offset}, this)"  class='listViewTdLinkS1'>{$rowData.$col}</{$pageData.tag.$id[$params.ACLTag]|default:$pageData.tag.$id.MAIN}>
    						
    					{elseif $params.customCode} 
    						{sugar_evalcolumn_old var=$params.customCode rowData=$rowData}
    					{elseif $params.currency_format} 
    						{sugar_currency_format 
                                var=$rowData.$col 
                                round=$params.currency_format.round 
                                decimals=$params.currency_format.decimals 
                                symbol=$params.currency_format.symbol
                                convert=$params.currency_format.convert
                                currency_symbol=$params.currency_format.currency_symbol
    						}
    					{elseif $params.type == 'bool'}
    							<input type='checkbox' disabled=disabled class='checkbox'
    							{if !empty($rowData[$col])}
    								checked=checked
    							{/if}
    							/>
    					{elseif $params.type == 'multienum'}
    						{if !empty($rowData.$col)} 
    							{counter name="oCount" assign="oCount" start=0}
    							{assign var="vals" value='^,^'|explode:$rowData.$col}
    							{foreach from=$vals item=item}
    								{counter name="oCount"}
    								{sugar_translate label=$params.options select=$item}{if $oCount !=  count($vals)},{/if} 
    							{/foreach}	
    						{/if} 
    					{else}
    						{if $rowData.$col == 'MYVALUE'}	
    							<span style='background-color: red;'>{$rowData.$col}</span>
    						{else}
    							{$rowData.$col}
    						{/if}
    					{/if}
    				</td>
    				{counter name="colCounter"}
    			{/foreach}
    			{if !empty($quickViewLinks)}
    			<td width='1%' class='{$_rowColor}S1' bgcolor='{$_bgColor}' nowrap>
    				{if $pageData.access.edit}
    					<a title='{$editLinkString}' href="#" onMouseOver="javascript:lvg_nav('{if $params.dynamic_module}{$rowData[$params.dynamic_module]}{else}{$pageData.bean.moduleDir}{/if}', '{$rowData.ID}', 'e', {$offset}, this)" onFocus="javascript:lvg_nav('{if $params.dynamic_module}{$rowData[$params.dynamic_module]}{else}{$pageData.bean.moduleDir}{/if}', '{$rowData.ID}', 'e', {$offset}, this)">
    					<img border=0 src='{sugar_getimagepath file='edit_inline.gif'}'>
    					</a>
    				{/if}
    			</td>
    	    	</tr>
    			{/if}
    	 	<tr><td colspan='20' class='listViewHRS1'></td></tr>
    	    
    	{/foreach}
    {include file='include/ListView/ListViewPagination.tpl}
    </table>
    {if $contextMenus}
    <script>
    	{$contextMenuScript}
    {literal}function lvg_nav(m,id,act,offset,t){if(t.href.search(/#/) < 0){return;}else{if(act=='d'){ act='DetailView';}else{ act='EditView';}{/literal}url = 'index.php?module='+m+'&offset=' + offset + '&stamp={$pageData.stamp}&return_module='+m+'&action='+act+'&record='+id;t.href=url;{literal}}}{/literal}
    {literal}function lvg_dtails(id){{/literal}return SUGAR.util.getAdditionalDetails( '{$params.module|default:$pageData.bean.moduleDir}',id, 'adspan_'+id);{literal}}{/literal}
    </script>
    {/if}
    Regards,

    Angel Magaņa
    Co-Author: Implementing SugarCRM 5.x (Packt Publishing -- Sept. 2010)
    Blog: http://cheleguanaco.blogspot.com.
    Twitter: @cheleguanaco.

    ________
    | Projects: |_____________________________________
    |
    | CandyWrapper (.NET Wrapper for SugarCRM SOAP API). Source now available on GitHub!
    | GoldMine to SugarCRM Express Conversion. Latest: 1.0.1.7 (Nov. 3, 2009)
    | CRM SkyDialer (Skype Integration). Latest: 1.0.2 (Feb. 17, 2010)
    | Round Robin Leads Assignment
    | Phone Number Formatter
    | CaseTwit (Twitter Integration)
    ______________________________________________

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Not showing alert message by giving wrong input
    By synoy in forum Developer Help
    Replies: 1
    Last Post: 2009-01-09, 11:25 AM
  2. Replies: 1
    Last Post: 2008-04-07, 05:05 PM
  3. alert generation
    By dauti in forum Developer Help
    Replies: 4
    Last Post: 2008-03-06, 03:17 PM
  4. Mailbox alert
    By pentalift1 in forum General Discussion
    Replies: 0
    Last Post: 2007-06-21, 03:44 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •