restaurantt
Version:
This package contains a backend of what would be the logic of a restaurant software
156 lines (127 loc) • 4.58 kB
JavaScript
const { VarChar,Int, Money } = require("mssql");
const { DTOCategory } = require("../DTO/DTOCategory");
const { Conection } = require("./Conection");
class DataCategory
{
//#region CRUD
static registerCategory=async(dtocategory)=>
{
let queryinsert = `
insert into Category values (@NameC,@DescriptionC)
`;
let pool = await Conection.conection();
const result = await pool.request()
.input('NameC', VarChar, dtocategory.NameC)
.input('DescriptionC', VarChar, dtocategory.DescriptionC)
.query(queryinsert)
pool.close();
return true;
}
static updateCategory=async(dtocategory)=>
{
let resultquery;
let queryupdate = `
IF NOT EXISTS ( SELECT IDCategory FROM Category WHERE IDCategory=@IDCategory)
BEGIN
select -1 as notexistcategory
END
ELSE
BEGIN
UPDATE Category Set NameC=@NameC,DescriptionC=@DescriptionC
WHERE IDCategory=@IDCategory
select 1 as updatesuccess
END
`;
let pool = await Conection.conection();
const result = await pool.request()
.input('IDCategory', Int, dtocategory.IDCategory)
.input('NameC', VarChar, dtocategory.NameC)
.input('DescriptionC', VarChar, dtocategory.DescriptionC)
.query(queryupdate)
resultquery = result.recordset[0].notexistcategory;
if(resultquery===undefined)
{
resultquery = result.recordset[0].updatesuccess;
}
pool.close();
return resultquery;
}
//#endregion
//#region GETS
static getCategory=async(idcategory)=>
{
let resultquery;
let querysearch = `
IF NOT EXISTS ( SELECT IDCategory FROM Category WHERE IDCategory=@IDCategory)
BEGIN
select -1 as notexistcategory
END
ELSE
BEGIN
SELECT * FROM Category
WHERE IDCategory=@IDCategory
END
`
let pool = await Conection.conection();
const result = await pool.request()
.input('IDCategory', Int, idcategory)
.query(querysearch)
resultquery = result.recordset[0].notexistcategory;
if (resultquery===undefined) {
let resultrecordset=result.recordset[0];
let cat = new DTOCategory();
this.getinformation(cat, resultrecordset);
resultquery=cat
}
pool.close();
return resultquery;
}
static getCategories=async(orderby="NameC")=>
{
let array=[];
let querysearch = `
SELECT * FROM Category
ORDER BY ${orderby} desc
`
let pool = await Conection.conection();
const result = await pool.request()
.query(querysearch)
for (var resultrecordset of result.recordset) {
let cat = new DTOCategory();
this.getinformation(cat, resultrecordset);
array.push(cat);
}
pool.close();
return array;
}
static getSearchCategories=async(idcategory1=0,idcategory2=9999,NameC="",
orderby="NameC")=>
{
let array=[];
let querysearch = `
SELECT * FROM Category
WHERE IDCategory between ${idcategory1} and ${idcategory2}
AND NameC like '%${NameC}%'
ORDER BY ${orderby} desc
`
let pool = await Conection.conection();
const result = await pool.request()
.query(querysearch)
for (var r of result.recordset) {
let cat = new DTOCategory();
this.getinformation(cat, r);
array.push(cat);
}
pool.close();
return array;
}
//#endregion
//#region GET INFORMATION
static getinformation(category, result) {
category.IDCategory = result.IDCategory;
category.NameC = result.NameC;
category.DescriptionC = result.DescriptionC;
}
//#endregion
}
module.exports = { DataCategory };