public function save_bug($p_event, $p_bug_data, $p_bug_id) { if (!access_has_global_level(plugin_config_get('edit_customer_fields_threshold'))) { return; } $customer_id = gpc_get_int('cm_plugin_customer_id', null); $service_id = gpc_get_int('cm_plugin_service_id', null); $is_billable = CustomerManagementDao::isServiceBillable($customer_id, $service_id); $invoice = gpc_get_string('cm_plugin_invoice', null); if ($customer_id) { if ($is_billable && is_blank($invoice) && $p_bug_data->status >= plugin_config_get('require_invoice_field_status_threshold')) { error_parameters(plugin_lang_get('invoice')); trigger_error(ERROR_EMPTY_FIELD, ERROR); } $bug_data = CustomerManagementDao::getBugData($p_bug_id); CustomerManagementDao::saveBugData($p_bug_id, $customer_id, $service_id, $is_billable, $invoice); if ($bug_data) { history_log_event_direct($p_bug_id, 'invoice', $bug_data['invoice'], $invoice); } } return $p_bug_data; }