From 921c435c619aaf97c047fc8a7c0f17b66a3bd374 Mon Sep 17 00:00:00 2001 From: wasabirobby <79250053+wasabirobby@users.noreply.github.com> Date: Mon, 27 Mar 2023 20:10:40 -0700 Subject: [PATCH] refactor (ESX.CreateJob) --- [core]/es_extended/server/functions.lua | 41 +++++++++++++++++-------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index be2fead0..5c02683f 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -314,21 +314,36 @@ function ESX.DiscordLogFields(name, title, color, fields) end function ESX.CreateJob(tb) - -- tb (array) containing: name (string), label (string) and grades (table) + -- tb (table) containing: name (string), label (string) and grades (table) -- grades (table) contains: grade (int), name (string), label (string), salary (int) - local job = {} - MySQL.Async.execute('INSERT IGNORE INTO jobs (name, label) VALUES (@name, @label)', {['name'] = tb.name, ['label'] = tb.label}) - job = {name = tb.name, label = tb.label, grades = {}} - for k,v in pairs(tb.grades) do - job.grades[tostring(v.grade)] = {job_name = tb.name, grade = v.grade, name = v.name, label = v.label, v.salary, skin_male = {}, skin_female = {}} - MySQL.Async.execute('INSERT IGNORE INTO job_grades (job_name, grade, name, label, salary) VALUES (@job_name, @grade, @name, @label, @salary)', { - ['@job_name'] = tb.name, - ['@grade'] = v.grade, - ['@name'] = v.name, - ['@label'] = v.label, - ['@salary'] = v.salary - }) + + if tb == nil or next(tb) == nil then + return print('[^3WARNING^7] paramter must be a table.') end + + if tb.name == nil then + return print('[^3WARNING^7] table must contain name(string) for the job name') + end + + if tb.label == nil then + return print('[^3WARNING^7] table must contain label(string) for the job name label') + end + + if tb.grades == nil or next(tb.grades) == nil then + return print('[^3WARNING^7] table must contain grades(table)!') + end + + local parameters = {} + local job = {name = tb.name, label = tb.label, grades = {}} + + for k,v in pairs(tb.grades) do + job.grades[tostring(v.grade)] = {job_name = tb.name, grade = v.grade, name = v.name, label = v.label, salary = v.salary, skin_male = {}, skin_female = {}} + parameters[#parameters + 1] = { tb.name, v.grade, v.name, v.label, v.salary} + end + + MySQL.insert('INSERT IGNORE INTO jobs (name, label) VALUES (?, ?)', {tb.name, tb.label}) + MySQL.prepare('INSERT INTO job_grades (job_name, grade, name, label, salary) VALUES (?, ?, ?, ?, ?)', parameters) + ESX.Jobs[tb.name] = job end