restaurantt
Version:
This package contains a backend of what would be the logic of a restaurant software
171 lines (137 loc) • 5.07 kB
JavaScript
const { VarChar,Int } = require("mssql");
const { DTOCustomer } = require("../DTO/DTOCustomer");
const { Conection } = require("./Conection");
class DataCustomer
{
//#region CRUD
static registerCustomer=async(dtocustomer)=>
{
let queryinsert =
`
insert into Customer values
(@NamesC,@LastNameC,@PhoneNumberC)
`;
let pool = await Conection.conection();
const result = await pool.request()
.input('NamesC', VarChar, dtocustomer.NamesC)
.input('LastNameC', VarChar, dtocustomer.LastNameC)
.input('PhoneNumberC', VarChar, dtocustomer.PhoneNumberC)
.query(queryinsert)
pool.close();
return true;
}
static updateCustomer=async(dtocustomer)=>
{
let resultquery;
let queryupdate =
`
IF NOT EXISTS ( SELECT IDCustomer FROM Customer WHERE IDCustomer=@IDCustomer)
BEGIN
select -1 as notexistcustomer
END
ELSE
BEGIN
UPDATE Customer
Set NamesC=@NamesC,LastNameC=@LastNameC,
PhoneNumberC=@PhoneNumberC
WHERE IDCustomer=@IDCustomer
select 1 as updatesuccess
END
`;
let pool = await Conection.conection();
const result = await pool.request()
.input('IDCustomer', Int, dtocustomer.IDCustomer)
.input('NamesC', VarChar, dtocustomer.NamesC)
.input('LastNameC', VarChar, dtocustomer.LastNameC)
.input('PhoneNumberC', VarChar, dtocustomer.PhoneNumberC)
.query(queryupdate)
resultquery = result.recordset[0].notexistcustomer;
if(resultquery===undefined)
{
resultquery = result.recordset[0].updatesuccess;
}
pool.close();
return resultquery;
}
//#endregion
//#region GETS
static getCustomer=async(idcustomer)=>
{
let resultquery;
let querysearch = `
IF NOT EXISTS ( SELECT IDCustomer FROM Customer WHERE IDCustomer=@IDCustomer)
BEGIN
select -1 as notexistcustomer
END
ELSE
BEGIN
SELECT * FROM Customer WHERE IDCustomer=@IDCustomer
END
`
let pool = await Conection.conection();
const result = await pool.request()
.input('IDCustomer', Int, idcustomer)
.query(querysearch)
resultquery = result.recordset[0].notexistcustomer;
if (resultquery===undefined) {
let resultrecordset=result.recordset[0];
let customer = new DTOCustomer();
this.getinformation(customer, resultrecordset);
resultquery=customer
}
pool.close();
return resultquery;
}
static getCustomers=async(orderby="IDCustomer")=>
{
let array=[];
let querysearch = `
SELECT * FROM Customer
ORDER BY ${orderby} desc
`
let pool = await Conection.conection();
const result = await pool.request()
.query(querysearch)
for (var cust of result.recordset) {
let customer = new DTOCustomer();
this.getinformation(customer, cust);
array.push(customer);
}
pool.close();
return array;
}
static getSearchCustomers=async(idcustomer1=0,idcustomer2=99999
,namec="",lastnamec="",phonename=""
,orderby="IDCustomer")=>
{
let array=[];
let querysearch = `
SELECT * FROM Customer WHERE
IDCustomer between ${idcustomer1} and ${idcustomer2}
AND NamesC LIKE '%${namec}%'
AND LastNameC LIKE '%${lastnamec}%'
AND PhoneNumberC LIKE '%${phonename}%'
ORDER BY ${orderby} desc
`
let pool = await Conection.conection();
const result = await pool.request()
.query(querysearch)
for (var cust of result.recordset) {
let customer = new DTOCustomer();
this.getinformation(customer, cust);
array.push(customer);
}
pool.close();
return array;
}
//#endregion
//#region GET INFORMATION
static getinformation(customer, result) {
customer.IDCustomer = result.IDCustomer;
customer.NamesC = result.NamesC;
customer.LastNameC = result.LastNameC;
customer.PhoneNumberC = result.PhoneNumberC;
}
//#endregion
}
module.exports = { DataCustomer };