本文整理汇总了PHP中DBManager::save_audit_records方法的典型用法代码示例。如果您正苦于以下问题:PHP DBManager::save_audit_records方法的具体用法?PHP DBManager::save_audit_records怎么用?PHP DBManager::save_audit_records使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DBManager
的用法示例。
在下文中一共展示了DBManager::save_audit_records方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: createAuditRecord
/**
* Takes the audit changes array and creates entries in audit table.
* Reset's the bean fetched row so changes are not duplicated.
*
* @param array $auditDataChanges
*/
protected function createAuditRecord(array $auditDataChanges)
{
foreach ($auditDataChanges as $change) {
$this->db->save_audit_records($this, $change);
$this->fetched_row[$change['field_name']] = $change['after'];
}
}
示例2: save_audit_records
/**
* Saves changes to module's audit table
*
* @param object $bean Sugarbean instance
* @param array $changes changes
*/
public function save_audit_records(SugarBean $bean, $changes)
{
//Bug 25078 fixed by Martin Hu: sqlserver haven't 'date' type, trim extra "00:00:00"
if ($changes['data_type'] == 'date') {
$changes['before'] = str_replace(' 00:00:00', '', $changes['before']);
}
parent::save_audit_records($bean, $changes);
}
示例3: save
//.........这里部分代码省略.........
$isUpdate = false;
}
if ($this->new_with_id == true) {
$isUpdate = false;
}
if (empty($this->date_modified) || $this->update_date_modified) {
$this->date_modified = $GLOBALS['timedate']->nowDb();
}
$this->_checkOptimisticLocking($action, $isUpdate);
if (!empty($this->modified_by_name)) {
$this->old_modified_by_name = $this->modified_by_name;
}
if ($this->update_modified_by) {
$this->modified_user_id = 1;
if (!empty($current_user)) {
$this->modified_user_id = $current_user->id;
$this->modified_by_name = $current_user->user_name;
}
}
if ($this->deleted != 1) {
$this->deleted = 0;
}
if (!$isUpdate) {
if (empty($this->date_entered)) {
$this->date_entered = $this->date_modified;
}
if ($this->set_created_by == true) {
// created by should always be this user
$this->created_by = isset($current_user) ? $current_user->id : "";
}
if ($this->new_with_id == false) {
$this->id = create_guid();
}
}
require_once "data/BeanFactory.php";
BeanFactory::registerBean($this->module_name, $this);
if (empty($GLOBALS['updating_relationships']) && empty($GLOBALS['saving_relationships']) && empty($GLOBALS['resavingRelatedBeans'])) {
$GLOBALS['saving_relationships'] = true;
// let subclasses save related field changes
$this->save_relationship_changes($isUpdate);
$GLOBALS['saving_relationships'] = false;
}
if ($isUpdate && !$this->update_date_entered) {
unset($this->date_entered);
}
// call the custom business logic
$custom_logic_arguments['check_notify'] = $check_notify;
$this->call_custom_logic("before_save", $custom_logic_arguments);
unset($custom_logic_arguments);
// If we're importing back semi-colon separated non-primary emails
if ($this->hasEmails() && !empty($this->email_addresses_non_primary) && is_array($this->email_addresses_non_primary)) {
// Add each mail to the account
foreach ($this->email_addresses_non_primary as $mail) {
$this->emailAddress->addAddress($mail);
}
$this->emailAddress->save($this->id, $this->module_dir);
}
if (isset($this->custom_fields)) {
$this->custom_fields->bean = $this;
$this->custom_fields->save($isUpdate);
}
// use the db independent query generator
$this->preprocess_fields_on_save();
//construct the SQL to create the audit record if auditing is enabled.
$auditDataChanges = array();
if ($this->is_AuditEnabled()) {
if ($isUpdate && !isset($this->fetched_row)) {
$GLOBALS['log']->debug('Auditing: Retrieve was not called, audit record will not be created.');
} else {
$auditDataChanges = $this->db->getAuditDataChanges($this);
}
}
$this->_sendNotifications($check_notify);
if ($isUpdate) {
$this->db->update($this);
} else {
$this->db->insert($this);
}
if (!empty($auditDataChanges) && is_array($auditDataChanges)) {
foreach ($auditDataChanges as $change) {
$this->db->save_audit_records($this, $change);
}
}
if (empty($GLOBALS['resavingRelatedBeans'])) {
SugarRelationship::resaveRelatedBeans();
}
// populate fetched row with current bean values
foreach ($auditDataChanges as $change) {
$this->fetched_row[$change['field_name']] = $change['after'];
}
//If we aren't in setup mode and we have a current user and module, then we track
if (isset($GLOBALS['current_user']) && isset($this->module_dir)) {
$this->track_view($current_user->id, $this->module_dir, 'save');
}
$this->call_custom_logic('after_save', '');
//Now that the record has been saved, we don't want to insert again on further saves
$this->new_with_id = false;
$this->in_save = false;
return $this->id;
}
示例4: save
//.........这里部分代码省略.........
if (empty($this->date_entered)) {
$this->date_entered = $this->date_modified;
}
if ($this->set_created_by == true) {
// created by should always be this user
$this->created_by = isset($current_user) ? $current_user->id : "";
}
if ($this->new_with_id == false) {
$this->id = create_guid();
}
}
// if the module has a team_id field and no team_id is specified, set team_id as the current_user's default team
// currently, the default_team is only enforced in the presentation layer-- this enforces it at the data layer as well
$usedDefaultTeam = false;
if (empty($this->team_id) && isset($this->field_defs['team_id']) && isset($current_user)) {
$this->team_id = $current_user->team_id;
$usedDefaultTeam = true;
}
// if this bean has a currency_id and base_rate, verify that base_rate is set to the correct amount
if (isset($this->field_defs['currency_id']) && isset($this->field_defs['base_rate'])) {
SugarCurrency::verifyCurrencyBaseRateSet($this, $isUpdate);
}
require_once "data/BeanFactory.php";
BeanFactory::registerBean($this);
if (!static::inOperation('saving_related') && static::enterOperation('updating_relationships')) {
// let subclasses save related field changes
$this->save_relationship_changes($isUpdate);
static::leaveOperation('updating_relationships');
}
$this->updateCalculatedFields();
if ($isUpdate && !$this->update_date_entered) {
unset($this->date_entered);
}
// call the custom business logic
$custom_logic_arguments = array('check_notify' => $check_notify, 'isUpdate' => $isUpdate);
$this->call_custom_logic("before_save", $custom_logic_arguments);
unset($custom_logic_arguments);
if (isset($this->custom_fields)) {
$this->custom_fields->bean = $this;
$this->custom_fields->save($isUpdate);
}
//rrs new functionality to check if the team_id is set and the team_set_id is not set,
//then see what we can do about saving to team_set_id. It is important for this code block to be below
//the 'before_save' custom logic hook as that is where workflow is called.
if (isset($this->field_defs['team_id'])) {
if (empty($this->teams)) {
$this->load_relationship('teams');
}
if (!empty($this->teams)) {
//we do not need to the TeamSetLink to update the bean's table here
//since it will be handled below.
$this->teams->save(false, $usedDefaultTeam);
}
}
// use the db independent query generator
$this->preprocess_fields_on_save();
$dataChanges = $this->db->getDataChanges($this);
//construct the SQL to create the audit record if auditing is enabled.
$auditDataChanges = array();
if ($this->is_AuditEnabled()) {
if ($isUpdate && !isset($this->fetched_row)) {
$GLOBALS['log']->debug('Auditing: Retrieve was not called, audit record will not be created.');
} else {
$auditFields = $this->getAuditEnabledFieldDefinitions();
$auditDataChanges = array_intersect_key($dataChanges, $auditFields);
}
}
$this->_sendNotifications($check_notify);
if ($isUpdate) {
$this->db->update($this);
} elseif ($this->db->insert($this)) {
//Now that the record has been saved, we don't want to insert again on further saves
$this->new_with_id = false;
}
if (!empty($auditDataChanges) && is_array($auditDataChanges)) {
foreach ($auditDataChanges as $change) {
$this->db->save_audit_records($this, $change);
}
}
$this->updateRelatedCalcFields();
// populate fetched row with newest changes in the bean
foreach ($dataChanges as $change) {
$this->fetched_row[$change['field_name']] = $change['after'];
}
// the reason we need to skip this is so that any RelatedBeans that are targeted to be saved
// after the delete happens, wait to be saved till them.
if (!static::inOperation('delete')) {
SugarRelationship::resaveRelatedBeans();
}
//rrs - bug 7908
$this->process_workflow_alerts();
//rrs
//If we aren't in setup mode and we have a current user and module, then we track
if (isset($GLOBALS['current_user']) && isset($this->module_dir)) {
$this->track_view($current_user->id, $this->module_dir, 'save');
}
$this->call_custom_logic('after_save', array('isUpdate' => $isUpdate, 'dataChanges' => $dataChanges));
$this->in_save = false;
return $this->id;
}