FAQ
Frequently Asked Questions
Failed to insert job
--- Create Job at Runtime
--- @param name string
--- @param label string
--- @param grades table
function ESX.CreateJob(name, label, grades)
local currentResourceName = GetInvokingResource()
local success = false
if not name or name == '' then
print("ERROR",currentResourceName, 'Missing argument `name`')
return success
end
if not label or label == '' then
print("ERROR",currentResourceName, 'Missing argument `label`')
return success
end
if type(grades) ~= "table" or not next(grades) then
print("ERROR",currentResourceName, 'Missing argument `grades`')
return success
end
if ESX.DoesJobExist(name, 0) then
print("ERROR",currentResourceName, 'Job already exists: `%s`', name)
return success
end
local queries = {
{ query = 'INSERT INTO jobs (name, label) VALUES (?, ?)', values = { name, label } }
}
for _, grade in pairs(grades) do
queries[#queries + 1] = {
query = 'INSERT INTO job_grades (job_name, grade, name, label, salary, skin_male, skin_female) VALUES (?, ?, ?, ?, ?, ?, ?)',
values = { name, grade.grade, grade.name, grade.label, grade.salary, type(grade.skin_male) == "table" and json.encode(grade.skin_male) or '{}', type(grade.skin_female) == "table" and json.encode(grade.skin_female) or '{}' }
}
end
success = exports.oxmysql:transaction_async(queries)
if not success then
print("ERROR", currentResourceName, 'Failed to insert one or more grades for job: `%s`', name)
return success
end
local job = { name = name, label = label, grades = {} }
for _, v in pairs(grades) do
job.grades[tostring(v.grade)] = { job_name = name, grade = v.grade, name = v.name, label = v.label, salary = v.salary, skin_male = v.skin_male or '{}', skin_female = v.skin_female or '{}' }
end
ESX.Jobs[name] = job
print("SUCCESS", currentResourceName, 'Job created successfully: `%s`', name)
TriggerEvent('esx:jobCreated', name, ESX.Jobs[name])
return success
endLast updated