function set_chart_details($id, $code_chart, $description, $chart_type) { log_debug("accounts_charts_manage", "Executing set_chart_details({$id}, values...)"); if (user_permissions_get("accounts_charts_write")) { $obj_chart = new chart(); /* Load SOAP Data */ $obj_chart->id = @security_script_input_predefined("int", $id); $obj_chart->data["code_chart"] = @security_script_input_predefined("int", $code_chart); $obj_chart->data["description"] = @security_script_input_predefined("any", $description); $obj_chart->data["chart_type"] = @security_script_input_predefined("int", $chart_type); foreach (array_keys($obj_chart->data) as $key) { if ($obj_chart->data[$key] == "error") { throw new SoapFault("Sender", "INVALID_INPUT"); } } /* Error Handling */ // verify chart ID (if editing an existing chart) if ($obj_chart->id) { if (!$obj_chart->verify_id()) { throw new SoapFault("Sender", "INVALID_ID"); } } // make sure we don't choose a chart code that has already been taken if (!$obj_chart->verify_code_chart()) { throw new SoapFault("Sender", "DUPLICATE_CODE_CHART"); } /* Perform Changes */ if ($obj_chart->action_update_details()) { return $obj_chart->id; } else { throw new SoapFault("Sender", "UNEXPECTED_ACTION_ERROR"); } } else { throw new SoapFault("Sender", "ACCESS DENIED"); } }