finished customer pages
This commit is contained in:
89
backend/controller/departments.js
Normal file
89
backend/controller/departments.js
Normal file
@ -0,0 +1,89 @@
|
||||
import {
|
||||
getDepartmentById,
|
||||
getDepartmentsByCustomerId,
|
||||
updateDepartmentById,
|
||||
insertDepartment,
|
||||
getSelectedDepartmentsByName,
|
||||
deleteDepartmentById,
|
||||
getDepartmentByName
|
||||
} from "../models/departmentsModel.js";
|
||||
|
||||
//get single department by id
|
||||
export const showDepartmentById = (req, res) => {
|
||||
getDepartmentById(req.params.id, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
//get single department by name
|
||||
export const showDepartmentByName = (req, res) => {
|
||||
getDepartmentByName(req.params.id, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
//get departments by customer id
|
||||
export const showDepartmentByCustomerId = (req, res) => {
|
||||
getDepartmentsByCustomerId(req.params.id, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Update department
|
||||
export const updateDepartment = (req, res) => {
|
||||
const data = req.body;
|
||||
updateDepartmentById(data, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
//create new department
|
||||
export const createDepartment = (req, res) => {
|
||||
const data = req.body;
|
||||
insertDepartment(data, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
//get all selected departments by name
|
||||
export const showSelectedDepartmentsByName = (req, res) => {
|
||||
getSelectedDepartmentsByName(req.params.id, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Delete department
|
||||
export const deleteDepartment = (req, res) => {
|
||||
const id = req.params.id;
|
||||
deleteDepartmentById(id, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
101
backend/controller/employees.js
Normal file
101
backend/controller/employees.js
Normal file
@ -0,0 +1,101 @@
|
||||
import {
|
||||
getEmployeeById,
|
||||
getEmployeesByCustomerId,
|
||||
updateEmployeeById,
|
||||
insertEmployee,
|
||||
getSelectedEmployeesByName,
|
||||
deleteEmployeeById,
|
||||
getSelectedEmployeesByDepartment,
|
||||
getSelectedEmployeesByDepartmentName,
|
||||
} from "../models/employeesModel.js";
|
||||
|
||||
//get single employee by id
|
||||
export const showEmployeeById = (req, res) => {
|
||||
getEmployeeById(req.params.id, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
//get employees by customer id
|
||||
export const showEmployeeByCustomerId = (req, res) => {
|
||||
getEmployeesByCustomerId(req.params.id, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
//get employees by customer id
|
||||
export const showEmployeeByDepartmentId = (req, res) => {
|
||||
getSelectedEmployeesByDepartment(req.params.id, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Update employee
|
||||
export const updateEmployee = (req, res) => {
|
||||
const data = req.body;
|
||||
updateEmployeeById(data, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
//create new employee
|
||||
export const createEmployee = (req, res) => {
|
||||
const data = req.body;
|
||||
insertEmployee(data, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
//get all selected employees by name
|
||||
export const showSelectedEmployeesByName = (req, res) => {
|
||||
getSelectedEmployeesByName(req.params.id, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
//get all selected employees by name
|
||||
export const showSelectedEmployeesByDepartmentName = (req, res) => {
|
||||
getSelectedEmployeesByDepartmentName(req.params.id, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Delete employee
|
||||
export const deleteEmployee = (req, res) => {
|
||||
const id = req.params.id;
|
||||
deleteEmployeeById(id, (err, results) => {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
} else {
|
||||
res.json(results);
|
||||
}
|
||||
});
|
||||
};
|
||||
@ -56,7 +56,7 @@ export const getConfigItemByCustomerId = async (customerId, result) => {
|
||||
}
|
||||
};
|
||||
|
||||
// Update customer to Database
|
||||
// Update config item to Database
|
||||
export const updateConfigItemById = async (data, result) => {
|
||||
const id = data.primaryID;
|
||||
try {
|
||||
|
||||
@ -63,7 +63,8 @@ export const getCustomerByMaintenanceVisitId = async (id, result) => {
|
||||
//insert customer to databased
|
||||
export const insertCustomer = async (data, result) => {
|
||||
try {
|
||||
const results = await ownConn.query(`INSERT INTO customers(customername, contactperson, EMail, phonenumber, address, postcode, city, notes) VALUES(?, ?, ?, ?, ?, ?, ?, ?)`, [data.customername, data.contactperson, data.EMail, data.phonenumber, data.address, data.postcode, data.city, data.notes])
|
||||
const results = await ownConn.query(`INSERT INTO customers(customername, contactperson, EMail, secondEMail, thirdEMail, phonenumber, secondPhonenumber, thirdPhonenumber, street, no, postcode, city, secondStreet, secondNo, secondPostcode, secondCity, thirdStreet, thirdNo, thirdPostcode, thirdCity, notes) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [data.customername, data.contactperson, data.EMail, data.secondEMail, data.thirdEMail, data.phonenumber, data.secondPhonenumber, data.thirdPhonenumber, data.street, data.no, data.postcode, data.city, data.secondStreet, data.secondNo, data.secondPostcode, data.secondCity, data.thirdStreet, data.thirdNo, data.thirdPostcode, data.thirdCity, data.notes])
|
||||
results.insertId = results.insertId.toString();
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
@ -105,8 +106,9 @@ export const getCustomerByName = async (id, result) => {
|
||||
export const updateCustomerById = async (data, result) => {
|
||||
const id = data.customerID;
|
||||
try {
|
||||
let sql = `UPDATE customers SET customername = ?, contactperson = ?, EMail = ?, phonenumber = ?, address = ?, postcode = ?, city = ?, notes = ? WHERE customerID = ?`;
|
||||
const results = await ownConn.query(sql, [data.customername, data.contactperson, data.EMail, data.phonenumber, data.address, data.postcode, data.city, data.notes, id]);
|
||||
let sql = `UPDATE customers SET customername = ?, contactperson = ?, EMail = ?, secondEMail = ?, thirdEMail = ?, phonenumber = ?, secondPhonenumber = ?, thirdPhonenumber = ?, street = ?, no = ?, postcode = ?, city = ?, secondStreet = ?, secondNo = ?, secondPostcode = ?, secondCity = ?, thirdStreet = ?, thirdNo = ?, thirdPostcode = ?, thirdCity = ?, notes = ? WHERE customerID = ?`;
|
||||
const results = await ownConn.query(sql, [data.customername, data.contactperson, data.EMail, data.secondEMail, data.thirdEMail, data.phonenumber, data.secondPhonenumber, data.thirdPhonenumber, data.street, data.no, data.postcode, data.city, data.secondStreet, data.secondNo, data.secondPostcode, data.secondCity, data.thirdStreet, data.thirdNo, data.thirdPostcode, data.thirdCity, data.notes, id]);
|
||||
results.insertId = results.insertId.toString();
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
@ -122,6 +124,7 @@ export const deleteCustomerById = async (id, result) => {
|
||||
try {
|
||||
let sql = `DELETE FROM customers WHERE customerID = ?`;
|
||||
const results = await ownConn.query(sql, [id])
|
||||
results.insertId = results.insertId.toString();
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
|
||||
102
backend/models/departmentsModel.js
Normal file
102
backend/models/departmentsModel.js
Normal file
@ -0,0 +1,102 @@
|
||||
import ownConn from "../dbConfig.js";
|
||||
|
||||
//get single department by id
|
||||
export const getDepartmentById = async (id, result) => {
|
||||
try {
|
||||
let sql = `SELECT * FROM customerdepartment WHERE primaryID = ?`;
|
||||
const results = await ownConn.execute(sql, [id])
|
||||
result(null, results[0]);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
|
||||
//get departments by customer id
|
||||
export const getDepartmentsByCustomerId = async (customerId, result) => {
|
||||
try {
|
||||
let sql = `SELECT * FROM customerdepartment WHERE customerID = ? ORDER BY name ASC`;
|
||||
const results = await ownConn.query(sql, [customerId])
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
|
||||
// Update department to Database
|
||||
export const updateDepartmentById = async (data, result) => {
|
||||
const id = data.primaryID;
|
||||
try {
|
||||
let sql = `UPDATE customerdepartment SET name = ?, head = ?, notes = ? WHERE primaryID = ?`;
|
||||
const results = await ownConn.query(sql, [data.name, data.head, data.notes, id]);
|
||||
results.insertId = results.insertId.toString();
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
|
||||
//insert department to databased
|
||||
export const insertDepartment = async (data, result) => {
|
||||
try {
|
||||
const results = await ownConn.query(`INSERT INTO customerdepartment(customerID, customername, name, head, notes) VALUES(?, ?, ?, ?, ?)`, [data.customerID, data.customername, data.name, data.head, data.notes])
|
||||
results.insertId = results.insertId.toString();
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
|
||||
//get all selected departments by name
|
||||
export const getSelectedDepartmentsByName = async (selected, result) => {
|
||||
try {
|
||||
let sql = `SELECT * FROM customerdepartment WHERE LOWER(name) LIKE '%${selected.toLowerCase()}%' ORDER BY name ASC`;
|
||||
const results = await ownConn.execute(sql)
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
|
||||
// Delete department to Database
|
||||
export const deleteDepartmentById = async (id, result) => {
|
||||
try {
|
||||
let sql = `DELETE FROM customerdepartment WHERE primaryID = ?`;
|
||||
const results = await ownConn.query(sql, [id])
|
||||
results.insertId = results.insertId.toString();
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
|
||||
//get single department by name
|
||||
export const getDepartmentByName = async (id, result) => {
|
||||
try {
|
||||
let sql = `SELECT * FROM customerdepartment WHERE name = ?`;
|
||||
const results = await ownConn.execute(sql, [id])
|
||||
result(null, results[0]);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
116
backend/models/employeesModel.js
Normal file
116
backend/models/employeesModel.js
Normal file
@ -0,0 +1,116 @@
|
||||
import ownConn from "../dbConfig.js";
|
||||
|
||||
//get single employee by id
|
||||
export const getEmployeeById = async (id, result) => {
|
||||
try {
|
||||
let sql = `SELECT * FROM customeremployees WHERE primaryID = ?`;
|
||||
const results = await ownConn.execute(sql, [id])
|
||||
result(null, results[0]);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
|
||||
//get employees by customer id
|
||||
export const getEmployeesByCustomerId = async (customerId, result) => {
|
||||
try {
|
||||
let sql = `SELECT * FROM customeremployees WHERE customerID = ? ORDER BY name ASC`;
|
||||
const results = await ownConn.query(sql, [customerId])
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
|
||||
// Update employee to Database
|
||||
export const updateEmployeeById = async (data, result) => {
|
||||
const id = data.primaryID;
|
||||
try {
|
||||
let sql = `UPDATE customeremployees SET name = ?, pronouns = ?, title = ?, firstName = ?, lastName = ?, preferredName = ?, department = ?, departmentID = ?, jobTitle = ?, phonenumber = ?, eMail = ?, notes = ? WHERE primaryID = ?`;
|
||||
const results = await ownConn.query(sql, [data.name, data.pronouns, data.title, data.firstName, data.lastName, data.preferredName, data.department, data.departmentID, data.jobTitle, data.phonenumber, data.eMail, data.notes, id]);
|
||||
results.insertId = results.insertId.toString();
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
|
||||
//insert employee to databased
|
||||
export const insertEmployee = async (data, result) => {
|
||||
try {
|
||||
const results = await ownConn.query(`INSERT INTO customeremployees(customerID, customername, name, pronouns, title, firstName, lastName, preferredName, department, departmentID, jobTitle, phonenumber, eMail, notes) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [data.customerID, data.customername, data.name, data.pronouns, data.title, data.firstName, data.lastName, data.preferredName, data.department, data.departmentID, data.jobTitle, data.phonenumber, data.eMail, data.notes])
|
||||
results.insertId = results.insertId.toString();
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
|
||||
//get all selected employees by name
|
||||
export const getSelectedEmployeesByName = async (selected, result) => {
|
||||
try {
|
||||
let sql = `SELECT * FROM customeremployees WHERE LOWER(name) LIKE '%${selected.toLowerCase()}%' ORDER BY name ASC`;
|
||||
const results = await ownConn.execute(sql)
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
|
||||
//get all selected employees by department name
|
||||
export const getSelectedEmployeesByDepartmentName = async (selected, result) => {
|
||||
try {
|
||||
let sql = `SELECT * FROM customeremployees WHERE LOWER(department) LIKE '%${selected.toLowerCase()}%' ORDER BY department ASC`;
|
||||
const results = await ownConn.execute(sql)
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
|
||||
//get all selected employees by departmentID
|
||||
export const getSelectedEmployeesByDepartment = async (selected, result) => {
|
||||
try {
|
||||
let sql = `SELECT * FROM customeremployees WHERE departmentID = ? ORDER BY name ASC`;
|
||||
const results = await ownConn.execute(sql)
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
|
||||
// Delete employee to Database
|
||||
export const deleteEmployeeById = async (id, result) => {
|
||||
try {
|
||||
let sql = `DELETE FROM customeremployees WHERE primaryID = ?`;
|
||||
const results = await ownConn.query(sql, [id])
|
||||
results.insertId = results.insertId.toString();
|
||||
result(null, results);
|
||||
}
|
||||
catch (err) {
|
||||
// Manage Errors
|
||||
console.log("SQL error : ", err);
|
||||
result(err, null);
|
||||
}
|
||||
};
|
||||
@ -113,6 +113,27 @@ import {
|
||||
deleteCustomer,
|
||||
} from "../controller/customers.js";
|
||||
|
||||
import {
|
||||
showDepartmentById,
|
||||
showDepartmentByCustomerId,
|
||||
updateDepartment,
|
||||
createDepartment,
|
||||
showSelectedDepartmentsByName,
|
||||
deleteDepartment,
|
||||
showDepartmentByName
|
||||
} from "../controller/departments.js";
|
||||
|
||||
import {
|
||||
showEmployeeById,
|
||||
showEmployeeByCustomerId,
|
||||
showEmployeeByDepartmentId,
|
||||
updateEmployee,
|
||||
createEmployee,
|
||||
showSelectedEmployeesByName,
|
||||
showSelectedEmployeesByDepartmentName,
|
||||
deleteEmployee,
|
||||
} from "../controller/employees.js";
|
||||
|
||||
import {
|
||||
signUp,
|
||||
updatePasswordById,
|
||||
@ -370,6 +391,55 @@ router.post("/customers", createCustomer);
|
||||
|
||||
|
||||
|
||||
// routes with departments:
|
||||
//get single department by id
|
||||
router.get("/department/:id", showDepartmentById);
|
||||
|
||||
//get single department by name
|
||||
router.get("/departmentByName/:id", showSelectedDepartmentsByName);
|
||||
|
||||
//get departments by customerid
|
||||
router.get("/departmentByCustomerID/:id", showDepartmentByCustomerId);
|
||||
|
||||
// Update department
|
||||
router.put("/department", updateDepartment);
|
||||
|
||||
// Create New department
|
||||
router.post("/departments", createDepartment);
|
||||
|
||||
//get single department by name
|
||||
router.get("/departmentName/:id", showDepartmentByName);
|
||||
|
||||
// Delete department
|
||||
router.delete("/departments/:id", deleteDepartment);
|
||||
|
||||
|
||||
// routes with employees:
|
||||
//get single employee by id
|
||||
router.get("/employee/:id", showEmployeeById);
|
||||
|
||||
//get employees by name
|
||||
router.get("/employeeByName/:id", showSelectedEmployeesByName);
|
||||
|
||||
//get employees by department name
|
||||
router.get("/employeeByDepartmentName/:id", showSelectedEmployeesByDepartmentName);
|
||||
|
||||
//get employees by customerid
|
||||
router.get("/employeeByCustomerID/:id", showEmployeeByCustomerId);
|
||||
|
||||
//get employees by departmentid
|
||||
router.get("/employeeByDeprtmentID/:id", showEmployeeByDepartmentId);
|
||||
|
||||
// Update employee
|
||||
router.put("/employee", updateEmployee);
|
||||
|
||||
// Create New employee
|
||||
router.post("/employees", createEmployee);
|
||||
|
||||
// Delete employee
|
||||
router.delete("/employees/:id", deleteEmployee);
|
||||
|
||||
|
||||
// routes with config items:
|
||||
// get all config items
|
||||
router.get("/configItems", showConfigItems);
|
||||
|
||||
Reference in New Issue
Block a user