Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save gunnicom/acda7ec35be774d410cbc032bfde71cd to your computer and use it in GitHub Desktop.
Save gunnicom/acda7ec35be774d410cbc032bfde71cd to your computer and use it in GitHub Desktop.
<?php
require_once('include/SugarFields/Fields/Base/SugarFieldBase.php');
class SugarFieldAutoincrement extends SugarFieldBase {
function getEditViewSmarty($parentFieldArray, $vardef, $displayParams, $tabindex, $searchView = false) {
$displayParams['bean_id']='id';
$this->setup($parentFieldArray, $vardef, $displayParams, $tabindex);
return $this->fetch($this->findTemplate('EditView'));
}
function getDetailViewSmarty($parentFieldArray, $vardef, $displayParams, $tabindex, $searchView = false) {
$displayParams['bean_id']='id';
$this->setup($parentFieldArray, $vardef, $displayParams, $tabindex);
return $this->fetch($this->findTemplate('DetailView'));
}
function getUserEditView($parentFieldArray, $vardef, $displayParams, $tabindex, $searchView = false) {
$displayParams['bean_id']='id';
$this->setup($parentFieldArray, $vardef, $displayParams, $tabindex, false);
return $this->fetch($this->findTemplate('UserEditView'));
}
function getUserDetailView($parentFieldArray, $vardef, $displayParams, $tabindex, $searchView = false) {
$displayParams['bean_id']='id';
$this->setup($parentFieldArray, $vardef, $displayParams, $tabindex, false);
return $this->fetch($this->findTemplate('UserDetailView'));
}
function getSearchViewSmarty($parentFieldArray, $vardef, $displayParams, $tabindex) {
return $this->getSmartyView($parentFieldArray, $vardef, $displayParams, $tabindex, 'SearchView');
}
function get_next_value($bean, $params, $field, $properties){
$tableName = $bean->table_name;
if (substr_compare($field, '_c', -2, 2) === 0){
$tableName .= '_cstm';
}
$next_step = intval($properties['startindex']);
$r = $bean->db->query('select max('.$field.') as current_max from '.$tableName);
$a = $bean->db->fetchByAssoc($r);
if (isset($a['current_max'])){
$next_step = intval($a['current_max']) + intval($properties['interval']);
}
return $next_step;
}
public function save($bean, $params, $field, $properties, $prefix = '') {
if (!isset($bean->$field) || $bean->$field == '' || $bean->$field == 0){
$bean->$field = $this->get_next_value($bean, $params, $field, $properties);
}
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment