เช่นตอนนี้ ใน field ของ running_number มีค่า = 0 ฉนั้นแล้วเวลาที่ดึงค่าสูงสุดออกมาจะได้ค่าเท่ากับ 0 แล้วเวลาที่บวกค่า 1 เข้าไปแล้ว จะได้ 0+1 = 0 ดังนั้น ใน field ของ running_number จะได้เท่ากับ = 1 ซึ่งตรงนี้จะใช้ NodeJs เป็นตัวจัดการ
และในการดึงค่าสูงสุดของ column นั้นมาผมใช้คำสั่ง
โค้ด: เลือกทั้งหมด
select MAX(running_number) from product
โค้ด: เลือกทั้งหมด
let sql_number = "select MAX(running_number) from product"
โค้ด: เลือกทั้งหมด
let sql_number = "select MAX(running_number) from product"
let record_running_number = db.select(sql_number);
โค้ด: เลือกทั้งหมด
let record_running_number = db.select(sql_number);
โค้ด: เลือกทั้งหมด
"select MAX(running_number) from product"
โค้ด: เลือกทั้งหมด
let sql_number = "select MAX(running_number) from product"
โดยถ้ารวมคำสั่งกันแล้วจะได้
โค้ด: เลือกทั้งหมด
let sql_number = "select MAX(running_number) from product"
let record_running_number = db.select(sql_number);
record_running_number += 1
แล้วในการทำ running_number จะรูปแบบ format คือ yyyy/mm/dd-running_number
โค้ด: เลือกทั้งหมด
let sql_number = "select MAX(running_number) from product"
let record_running_number = db.select(sql_number);
record_running_number += 1
let product_id = q_id;
if (!q_id) {
product_id = (moment()).format('YYYY-MM-DD-'+ record_running_number)
}
โค้ด: เลือกทั้งหมด
exports.save = async function (req, res, next) {
try {
const db = req.app.db;
var q_cat = req.params.cat
var q_id = common.getUrlPostParam(req, 'id');
const sql_number = "select max(running_number) from product where delete_flag = 0";
const record_running_number = await db.select(sql_number);
record_running_number += 23
let product_id = q_id;
if (!q_id) {
product_id = (moment()).format('YYYY-MM-DD-'+record_running_number)
}
let record_product = {};
/*create product */
let data_product = {
id: product_id,
lov_product_data_share_id: req.body.lov_product_data_share_id,
running_number: record_running_number,
};
if (q_id) {
data_product.update_date = (moment()).format('YYYY-MM-DD HH:mm:ss');
record_product = await db.update("product", data_product, { id: product_id },{running_number: record_running_number});
}
else {
data_product.create_date = (moment()).format('YYYY-MM-DD HH:mm:ss');
data_product.delete_flag = 0;
record_product = await db.create("product", data_product,{running_number: record_running_number});
}
/*create product ge */
let data_product_ge = {
product_id: product_id,
create_by_which_country: req.body.create_by_which_country,
national_registration_id_product_registration_id: req.body.national_registration_id_product_registration_id,
product_category: req.body.product_category,
registration_date_approval: common.toDateFormat(req.body.registration_date_approval, 'DD/MM/YYYY', 'YYYY-MM-DD'),
family_name_other_models_if_applicable: req.body.family_name_other_models_if_applicable,
country_of_registration: req.body.country_of_registration,
legislation_framework: req.body.legislation_framework,
legislation_entry_into_force_date: common.toDateFormat(req.body.legislation_entry_into_force_date, 'DD/MM/YYYY', 'YYYY-MM-DD'),
registration_expiry_date: common.toDateFormat(req.body.registration_expiry_date, 'DD/MM/YYYY', 'YYYY-MM-DD'),
registration_expiry_alert: common.toDateFormat(req.body.registration_expiry_alert, 'DD/MM/YYYY', 'YYYY-MM-DD'),
registration_status: req.body.registration_status,
brand_name: req.body.brand_name,
model_number: req.body.model_number,
manufacturers_name: req.body.manufacturers_name,
country_of_manufacture: req.body.country_of_manufacture,
general_comment: req.body.general_comment
};
if (q_id) {
await db.update("product_ge", data_product_ge, { product_id: product_id });
}
else {
await db.create("product_ge", data_product_ge);
}
// await db.save("product",{'running_number': req.body.running_number});
/*create product category*/
if (q_cat == "ac") {
let data_product_ac = {
product_id: product_id,
testing_standard_ac: req.body.testing_standard_ac,
meps_repuirement: req.body.meps_repuirement,
product_category: req.body.product_category,
product_sub_category: req.body.product_sub_category,
adjustable_output_capacity_inverter_driven_technol: req.body.adjustable_output_capacity_inverter_driven_technol,
cooling_mode_rated_power_electrical: req.body.cooling_mode_rated_power_electrical,
cooling_mode_rated_output_capacity_cooling: req.body.cooling_mode_rated_output_capacity_cooling,
cooling_mode_rated_eer: req.body.cooling_mode_rated_eer,
claimed_cooling_seasonal_performance_factor_or_equ: req.body.claimed_cooling_seasonal_performance_factor_or_equ,
refrigerant_type: req.body.refrigerant_type,
test_laboratory: req.body.test_laboratory,
test_report_number: req.body.test_report_number,
test_report_date: common.toDateFormat(req.body.test_report_date, 'DD/MM/YYYY', 'YYYY-MM-DD'),
energy_efficiency_rating_label: req.body.energy_efficiency_rating_label,
does_the_product_meet_the_refrigerant_requirements: req.body.does_the_product_meet_the_refrigerant_requirements,
tested_full_load_cooling_capacity_kw: req.body.tested_full_load_cooling_capacity_kw,
tested_full_load_cop: req.body.tested_full_load_cop,
tested_part_load_cop: req.body.tested_part_load_cop
};
await db.save("product_ac", data_product_ac, { product_id: product_id }, data_product_ac);
}
else if (q_cat == "li") {
let data_product_li = {
product_id: product_id,
testing_standard_lighting: req.body.testing_standard_lighting,
meps_repuirement: req.body.meps_repuirement,
product_category: req.body.product_category,
product_sub_category: req.body.product_sub_category,
rated_power_w: req.body.rated_power_w,
rated_luminous_flux_lm: req.body.rated_luminous_flux_lm,
rated_efficacy_lmw: req.body.rated_efficacy_lmw,
rated_cri: req.body.rated_cri,
rated_cct: req.body.rated_cct,
test_laboratory: req.body.test_laboratory,
test_report_number: req.body.test_report_number,
test_report_date: common.toDateFormat(req.body.test_report_date, 'DD/MM/YYYY', 'YYYY-MM-DD'),
energy_efficiency_rating_label: req.body.energy_efficiency_rating_label,
lamp_cap: req.body.lamp_cap
};
await db.save("product_li", data_product_li, { product_id: product_id }, data_product_li);
}
else if (q_cat == "re") {
let data_product_re = {
product_id: product_id,
testing_standard_refrigerator: req.body.testing_standard_refrigerator,
meps_repuirement: req.body.meps_repuirement,
product_category: req.body.product_category,
product_sub_category: req.body.product_sub_category,
number_of_compartments: req.body.number_of_compartments,
refrigerant_type: req.body.refrigerant_type,
test_laboratory: req.body.test_laboratory,
test_report_number: req.body.test_report_number,
test_report_date: req.body.test_report_date,
claimed_annual_energy_consumption: req.body.claimed_annual_energy_consumption,
energy_efficiency_rating_label: req.body.energy_efficiency_rating_label,
total_storage_volume_litres: req.body.total_storage_volume_litres,
tested_annual_energy_consumption: req.body.tested_annual_energy_consumption
};
await db.save("product_re", data_product_re, { product_id: product_id }, data_product_re);
}
if (q_id) {
return res.status(200).json({ success: true, message: 'Save complete.' })
}
else {
return res.status(200).json({ success: true, message: 'Save complete.', redirect: '/product/' + q_cat + '/edit?id=' + product_id })
}
}
catch (err) {
console.log(err);
next(err);
}
}