Добрый день уважаемые форумчане!
Входные данные: Клиент передает на сервер json oбъект который содержит в себе массив вида (id, quantity, price)
Моя функция для того чтоб сделать insert этого массива в db:
static addSale(products){
//WHERE (SELECT stock FROM prais_informations WHERE code = ) > 20;
let quer = 'INSERT INTO `sales` (`id`, `code`, `quantity`, `price`, `sum`, `idCheck`) VALUES ?;';
return new Promise((resolve, reject) => {
pool.getConnection((err, connection) => {
if (err)reject(err);
connection.query(quer, [products.map(item => [null, item.id, item.quantity, item.price, item.sum, 3])], (err, rows) => {
if (err) {
reject(err);
}
resolve(rows);
connection.release();
});
});
});
}
Вопрос в следующем, прежде чем сделать инсерт всех строк, нужно проверить не превышает ли количество в запросе, остаток в бд, если хотя бы одна строка не удовлетворяет условию, запрос не должен быть сделан.
Вариант я вижу один, создать дополнительную функцию, которая вернет в промисе AND нескольких селектов (true/false) и в части then уже делать insert запрос.