Sunday 21 October 2012

Extending and customize Organization details

In this tutorial I would like to explain you how you can simply add some fields in the organization detail module.

Remember that this part of VTiger CRM does not allow custom field features but you need to modify database table and source code related.

Suppose we want add the taxcode field.

First of all you need to alter table  vtiger_organizationdetails and add field taxcode like this sample:
alter table  vtiger_organizationdetails add column `taxcode` VARCHAR(50) NULL DEFAULT NULL


Edit file /modules/Settings/OrganizationConfig.php and add this piece of code


$organization_taxcode = decode_html($adb->query_result($result,0,'taxcode'));

Some row below

if (isset($organization_taxcode))
    $smarty->assign("ORGANIZATIONTAXCODE",$organization_taxcode);


Edit file /modules/Settings/EditCompanyDetails.php

$organization_taxcode = decode_html($adb->query_result($result,0,'taxcode'));

Some row below

if (isset($organization_taxcode))
    $smarty->assign("ORGANIZATIONTAXCODE",$organization_taxcode);


Edit file /modules/Settings/SaveCompany.php

// get from request
$organization_taxcode = $_REQUEST['organization_taxcode'];
Edit and add piece of code in this insert query
//insert data
$organizationId = $this->db->getUniqueID('vtiger_organizationdetails');
    $sql="insert into vtiger_organizationdetails(organization_id,organizationname, address, city, state, code, country, phone, fax, website, taxcode) values(?,?,?,?,?,?,?,?,?,?,?)";
    $params = array($organizationId, $organization_name, $organization_address, $organization_city, $organization_state, $organization_code, $organization_country, $organization_phone, $organization_fax, $organization_website, $organization_taxcode);

//Handling update
else
{
    $sql="update vtiger_organizationdetails set organizationname = ?, address = ?, city = ?, state = ?,  code = ?, country = ?,  phone = ?,  fax = ?,  website = ?, taxcode = ? where organizationname = ?";
    $params = array($organization_name, $organization_address, $organization_city, $organization_state, $organization_code, $organization_country, $organization_phone, $organization_fax, $organization_website, $organization_taxcode, $org_name);
}


5)vtigercrm/modules/Settings/add2db.php

if($saveflag=="true")
{

...
$organization_logo=from_html($_REQUEST['organization_logo']);
$organization_taxcode=from_html($_REQUEST['organization_taxcode']);
...

if($org_name=='')
{
$organizationId = $this->db->getUniqueID('vtiger_organizationdetails');
            $sql="INSERT INTO vtiger_organizationdetails
                (organization_id,organizationname, address, city, state, code, country, phone, fax, website, logoname, taxcode) values (?,?,?,?,?,?,?,?,?,?,?)";
            $params = array($organizationId,$organization_name, $organization_address, $organization_city, $organization_state, $organization_code,
                            $organization_country, $organization_phone, $organization_fax, $organization_website, $organization_logoname, $taxcode);
}


....
Some row below

$sql = "UPDATE vtiger_organizationdetails
                SET organizationname = ?, address = ?, city = ?, state = ?, code = ?, country = ?,
                phone = ?, fax = ?, website = ?, logoname = ?, taxcode=? WHERE organizationname = ?";
            $params = array($organization_name, $organization_address, $organization_city, $organization_state, $organization_code,
                    $organization_country, $organization_phone, $organization_fax, $organization_website, decode_html($organization_logoname), $taxcode, $org_name);
        }



Edit template /Smarty/templates/Settings/CompanyInfo.tpl

Add this line of code for inserting this new field
<tr>
<td width="20%" class="small cellLabel"><strong>{$MOD.LBL_ORGANIZATION_TAXCODE}</strong></td>
<td width="80%" class="small cellText">{$ORGANIZATIONTAXCODE}</td>
</tr>

Edit template  /Smarty/templates/Settings/EditCompanyInfo.tpl

<tr>
<td class="small cellLabel"><strong>{$MOD.LBL_ORGANIZATION_TAXCODE}</strong></td>
<td class="small cellText">
<input type="text" name="organization_taxcode" class="detailedViewTextBox small" value="{$ORGANIZATIONTAXCODE}">
</td>
</tr>




Add custom language translation in file vtigercrm/modules/Settings/language/XXXXXXX

'LBL_ORGANIZATION_TAXCODE' => 'Tax code',


Setting header report
/include/InventoryPDFController.php

find function buildHeaderModelColumnLeft

and add this line

            $modelColumnLeft = array(
                'logo' => "test/logo/".$resultrow['logoname'],
                'summary' => decode_html($resultrow['organizationname']) .
"\n".getTranslatedString("LBL_ORGANIZATION_TAXCODE", "Settings")." ". $resultrow['taxcode']
                ,'content' => $this->joinValues($addressValues, ' '). $this->joinValues($additionalCompanyInfo, ' ')
            );



1 comment:

  1. dear sir please help me how create google adsense blog and how to add adds

    ReplyDelete