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, ' ')
);