diff --git a/backend/controller/maintenanceVisitTodos.js b/backend/controller/maintenanceVisitTodos.js index 707348a..6eb6f94 100644 --- a/backend/controller/maintenanceVisitTodos.js +++ b/backend/controller/maintenanceVisitTodos.js @@ -5,6 +5,8 @@ import { getMaintenanceVisitTodosByAsset, updateMaintenanceVisitTodoById, deleteMaintenanceVisitTodosByPrimaryID, + deleteMaintenanceVisitTodosByTemplateID, + getMaintenanceVisitTodosByTemplate, } from "../models/maintenanceVisitsTodosModel.js"; //create new maintenance visit todo @@ -41,6 +43,17 @@ export const showMaintenanceVisitTodosByAsset = (req, res) => { }); }; +//get maintenance visit todos by assetname +export const showMaintenanceVisitTodosByTemplateId = (req, res) => { + getMaintenanceVisitTodosByTemplate(req.params.id, (err, results) => { + if (err) { + res.send(err); + } else { + res.json(results); + } + }); +}; + // Update maintenance visit todo export const updateMaintenanceVisitTodo = (req, res) => { const data = req.body; @@ -63,4 +76,16 @@ export const deleteMaintenanceVisitTodos = (req, res) => { res.json(results); } }); +}; + +// Delete maintenance visit todos by template id +export const deleteMaintenanceVisitTodosBytemplateId = (req, res) => { + const id = req.params.id; + deleteMaintenanceVisitTodosByTemplateID(id, (err, results) => { + if (err) { + res.send(err); + } else { + res.json(results); + } + }); }; \ No newline at end of file diff --git a/backend/controller/maintenanceVisits.js b/backend/controller/maintenanceVisits.js index d22243d..5344d32 100644 --- a/backend/controller/maintenanceVisits.js +++ b/backend/controller/maintenanceVisits.js @@ -9,7 +9,9 @@ import { insertMaintenanceVisit, getMaintenanceVisitByName, getMaintenanceVisitById, - updateMaintenanceVisitStateById, + updateMaintenanceVisitById, + getSelectedMaintenanceVisitsByUser, + getSelectedMaintenanceVisitsByTemplate, } from "../models/maintenanceVisitsModel.js"; //get all maintenance visits @@ -34,6 +36,28 @@ export const showSelectedMaintenanceVisitsByChecklistname = (req, res) => { }); }; +//get all selected maintenance visits by user +export const showSelectedMaintenanceVisitsByUser = (req, res) => { + getSelectedMaintenanceVisitsByUser(req.params.id, (err, results) => { + if (err) { + res.send(err); + } else { + res.json(results); + } + }); +}; + +//get all selected maintenance visits by template +export const showSelectedMaintenanceVisitsByTemplate = (req, res) => { + getSelectedMaintenanceVisitsByTemplate(req.params.id, (err, results) => { + if (err) { + res.send(err); + } else { + res.json(results); + } + }); +}; + //get all selected maintenance visits by customer export const showSelectedMaintenanceVisitsByCustomer = (req, res) => { getSelectedMaintenanceVisitsByCustomer(req.params.id, (err, results) => { @@ -114,9 +138,9 @@ export const showMaintenanceVisitById = (req, res) => { }; // Update maintenance visit -export const updateMaintenanceVisitState = (req, res) => { +export const updateMaintenanceVisit = (req, res) => { const data = req.body; - updateMaintenanceVisitStateById(data, (err, results) => { + updateMaintenanceVisitById(data, (err, results) => { if (err) { res.send(err); } else { diff --git a/backend/controller/productionOrderTodos.js b/backend/controller/productionOrderTodos.js index 3dc758c..950360a 100644 --- a/backend/controller/productionOrderTodos.js +++ b/backend/controller/productionOrderTodos.js @@ -5,6 +5,7 @@ import { getProductionOrderTodosByAsset, updateProductionOrderTodoById, deleteProductionOrderTodosChecklistID, + getProductionOrderTodosByTemplate, } from "../models/productionOrdersTodosModel.js"; //create new production order todo @@ -41,6 +42,18 @@ export const showProductionOrderTodosByAsset = (req, res) => { }); }; + +//get production order todos by template +export const showProductionOrderTodosByTemplate = (req, res) => { + getProductionOrderTodosByTemplate(req.params.id, (err, results) => { + if (err) { + res.send(err); + } else { + res.json(results); + } + }); +}; + // Update production order todo export const updateProductionOrderTodo = (req, res) => { const data = req.body; diff --git a/backend/controller/productionOrders.js b/backend/controller/productionOrders.js index d492904..91ee5d4 100644 --- a/backend/controller/productionOrders.js +++ b/backend/controller/productionOrders.js @@ -10,7 +10,9 @@ import { getProductionOrderByName, deleteProductionOrderById, getProductionOrderById, - updateProductionOrderStateById, + updateProductionOrderById, + getSelectedProductionOrdersByTemplate, + getSelectedProductionOrdersByUser, } from "../models/productionOrdersModel.js"; //get all production orders @@ -46,6 +48,28 @@ export const showSelectedProductionOrdersByCustomer = (req, res) => { }); }; +//get all selected production orders by user +export const showSelectedProductionOrdersByUser = (req, res) => { + getSelectedProductionOrdersByUser(req.params.id, (err, results) => { + if (err) { + res.send(err); + } else { + res.json(results); + } + }); +}; + +//get all selected production orders by template +export const showSelectedProductionOrdersByTemplate = (req, res) => { + getSelectedProductionOrdersByTemplate(req.params.id, (err, results) => { + if (err) { + res.send(err); + } else { + res.json(results); + } + }); +}; + //get all selected production orders by ticketnumber export const showSelectedProductionOrdersByTicketnumber = (req, res) => { getSelectedProductionOrdersByTicketnumber(req.params.id, (err, results) => { @@ -126,9 +150,9 @@ export const showProductionOrderById = (req, res) => { }; // Update production order -export const updateProductionOrderState = (req, res) => { +export const updateProductionOrder = (req, res) => { const data = req.body; - updateProductionOrderStateById(data, (err, results) => { + updateProductionOrderById(data, (err, results) => { if (err) { res.send(err); } else { diff --git a/backend/models/maintenanceVisitsModel.js b/backend/models/maintenanceVisitsModel.js index d699fc4..70153b4 100644 --- a/backend/models/maintenanceVisitsModel.js +++ b/backend/models/maintenanceVisitsModel.js @@ -28,6 +28,34 @@ export const getSelectedMaintenanceVisitsByChecklistname = async (selected, resu } }; +//get all selected maintenance visits by template +export const getSelectedMaintenanceVisitsByTemplate = async (selected, result) => { + try { + let sql = `SELECT * FROM maintenancevisits WHERE templateID = ? ORDER BY name ASC`; + const results = await ownConn.execute(sql, [selected]) + result(null, results); + } + catch (err) { + // Manage Errors + console.log("SQL error : ", err); + result(err, null); + } +}; + +//get all selected maintenance visits by user +export const getSelectedMaintenanceVisitsByUser = async (selected, result) => { + try { + let sql = `SELECT * FROM maintenancevisits WHERE LOWER(user) 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 maintenance visits by customer export const getSelectedMaintenanceVisitsByCustomer = async (selected, result) => { try { @@ -75,6 +103,7 @@ export const deleteMaintenanceVisitById = async (id, result) => { try { let sql = `DELETE FROM maintenancevisits WHERE primaryID = ?`; const results = await ownConn.query(sql, [id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -127,11 +156,11 @@ export const getMaintenanceVisitById = async (id, result) => { }; // Update maintenance visit state to Database -export const updateMaintenanceVisitStateById = async (data, result) => { +export const updateMaintenanceVisitById = async (data, result) => { try { const id = data.primaryID; - let sql = `UPDATE maintenancevisits SET state = ? WHERE primaryID = ?`; - const results = await ownConn.query(sql, [data.state, id]) + let sql = `UPDATE maintenancevisits SET primaryID = ?, name = ?, templateID = ?, maintenanceType = ?, state = ?, creationDate = ?, completionDate = ?, user = ?, customer = ?, customerID = ?, templateNotes = ?, type = ?, timeSpent = ?, notes = ? WHERE primaryID = ?`; + const results = await ownConn.query(sql, [data.primaryID, data.name, data.templateID, data.maintenanceType, data.state, data.creationDate, data.completionDate, data.user, data.customer, data.customerID, data.templateNotes, data.type, data.timeSpent, data.notes, id]) results.insertId = results.insertId.toString(); result(null, results); } diff --git a/backend/models/maintenanceVisitsTodosModel.js b/backend/models/maintenanceVisitsTodosModel.js index 1c81333..ea8ad4f 100644 --- a/backend/models/maintenanceVisitsTodosModel.js +++ b/backend/models/maintenanceVisitsTodosModel.js @@ -42,12 +42,26 @@ export const getMaintenanceVisitTodosByAsset = async (id, result) => { } }; +//get maintenance visit todo by template +export const getMaintenanceVisitTodosByTemplate = async (id, result) => { + try { + let sql = `SELECT * FROM maintenancevisittodos WHERE templateID = ? ORDER BY primaryID ASC`; + const results = await ownConn.execute(sql, [id]) + result(null, results); + } + catch (err) { + // Manage Errors + console.log("SQL error : ", err); + result(err, null); + } +}; + // Update maintenance visit todo to Database export const updateMaintenanceVisitTodoById = async (data, result) => { try { const id = data.primaryID; let sql = `UPDATE maintenancevisittodos SET step = ?, asset = ?, task = ?, comment = ?, done = ? WHERE primaryID = ?`; - const results = await ownConn.query(sql, [data.step, data.asset, data.task, data.comment, id]) + const results = await ownConn.query(sql, [data.step, data.asset, data.task, data.comment, data.done, id]) results.insertId = results.insertId.toString(); result(null, results); } @@ -63,6 +77,22 @@ export const deleteMaintenanceVisitTodosByPrimaryID = async (id, result) => { try { let sql = `DELETE FROM maintenancevisittodos 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); + } +}; + +// Delete maintenance visit todos by template to Database +export const deleteMaintenanceVisitTodosByTemplateID = async (id, result) => { + try { + let sql = `DELETE FROM maintenancevisittodos WHERE templateID = ?`; + const results = await ownConn.query(sql, [id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { diff --git a/backend/models/productionOrdersModel.js b/backend/models/productionOrdersModel.js index b727c8a..d19194d 100644 --- a/backend/models/productionOrdersModel.js +++ b/backend/models/productionOrdersModel.js @@ -3,7 +3,7 @@ import ownConn from "../dbConfig.js"; //get all production orders export const getProductionOrders = async (result) => { try { - let sql = `SELECT * FROM productionorders ORDER BY name ASC`; + let sql = `SELECT * FROM productionorders ORDER BY ticketNumber ASC`; const results = await ownConn.execute(sql) result(null, results); } @@ -17,7 +17,7 @@ export const getProductionOrders = async (result) => { //get all selected production orders by ticketnumber export const getSelectedProductionOrdersByTicketnumber = async (selected, result) => { try { - let sql = `SELECT * FROM productionorders WHERE ticketNumber LIKE '%${selected}%' ORDER BY ticketNumber ASC`; + let sql = `SELECT * FROM productionorders WHERE ticketNumber = ? ORDER BY name ASC`; const results = await ownConn.execute(sql) result(null, results); } @@ -42,6 +42,34 @@ export const getSelectedProductionOrdersByCustomer = async (selected, result) => } }; +//get all selected production orders by user +export const getSelectedProductionOrdersByUser = async (selected, result) => { + try { + let sql = `SELECT * FROM productionorders WHERE LOWER(user) 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 production orders by template +export const getSelectedProductionOrdersByTemplate = async (selected, result) => { + try { + let sql = `SELECT * FROM productionorders WHERE templateID = ? ORDER BY name ASC`; + const results = await ownConn.execute(sql, [selected]) + result(null, results); + } + catch (err) { + // Manage Errors + console.log("SQL error : ", err); + result(err, null); + } +}; + //get all selected production orders by state export const getSelectedProductionOrdersByState = async (selected, result) => { try { @@ -89,6 +117,7 @@ export const deleteProductionOrderById = async (id, result) => { try { let sql = `DELETE FROM productionorders WHERE ticketNumber = ?`; const results = await ownConn.query(sql, [id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -141,11 +170,11 @@ export const getProductionOrderById = async (id, result) => { }; // Update production order state to Database -export const updateProductionOrderStateById = async (data, result) => { +export const updateProductionOrderById = async (data, result) => { const id = data.ticketNumber; try { - let sql = `UPDATE productionorders SET state = ? WHERE ticketNumber = ?`; - const results = await ownConn.query(sql, [data.state, id]) + let sql = `UPDATE productionorders SET name = ?, templateID = ?, customer = ?, customerID = ?, asset = ?, state = ?, creationDate = ?, completionDate = ?, user = ?, templateDescription = ?, templateNotes = ?, timeSpent = ?, notes = ? WHERE ticketNumber = ?`; + const results = await ownConn.query(sql, [data.name, data.templateID, data.customer, data.customerID, data.asset, data.state, data.creationDate, data.completionDate, data.user, data.templateDescription, data.templateNotes, data.timeSpent, data.notes, id]) results.insertId = results.insertId.toString(); result(null, results); } diff --git a/backend/models/productionOrdersTodosModel.js b/backend/models/productionOrdersTodosModel.js index 790bc5c..faa4be1 100644 --- a/backend/models/productionOrdersTodosModel.js +++ b/backend/models/productionOrdersTodosModel.js @@ -4,6 +4,7 @@ import ownConn from "../dbConfig.js"; export const insertProductionOrderTodo = async (data, result) => { try { const results = await ownConn.query(`INSERT INTO productionordertodos(templateID, step, asset, task, comment, done) VALUES(?, ?, ?, ?, ?, ?)`, [data.templateID, data.step, data.asset, data.task, data.comment, data.done]); + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -27,7 +28,7 @@ export const getProductionOrderTodosById = async (id, result) => { } }; -//get single production order todo by asset +//get production order todo by asset export const getProductionOrderTodosByAsset = async (id, result) => { try { let sql = `SELECT * FROM productionordertodos WHERE asset = ? ORDER BY primaryID ASC`; @@ -41,12 +42,27 @@ export const getProductionOrderTodosByAsset = async (id, result) => { } }; +//get production order todo by template +export const getProductionOrderTodosByTemplate = async (id, result) => { + try { + let sql = `SELECT * FROM productionordertodos WHERE templateID = ? ORDER BY primaryID ASC`; + const results = await ownConn.execute(sql, [id]) + result(null, results); + } + catch (err) { + // Manage Errors + console.log("SQL error : ", err); + result(err, null); + } +}; + // Update production order todo to Database export const updateProductionOrderTodoById = async (data, result) => { try { const id = data.primaryID; let sql = `UPDATE productionordertodos SET step = ?, asset = ?, task = ?, comment = ?, done = ? WHERE primaryID = ?`; const results = await ownConn.query(sql, [data.step, data.asset, data.task, data.comment, data.done, id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { @@ -61,6 +77,7 @@ export const deleteProductionOrderTodosChecklistID = async (id, result) => { try { let sql = `DELETE FROM productionordertodos WHERE templateID = ?`; const results = await ownConn.query(sql, [id]) + results.insertId = results.insertId.toString(); result(null, results); } catch (err) { diff --git a/backend/routes/routes.js b/backend/routes/routes.js index 05fbf96..e180fb2 100644 --- a/backend/routes/routes.js +++ b/backend/routes/routes.js @@ -19,11 +19,13 @@ import { showSelectedMaintenanceVisitsByCustomer, showSelectedMaintenanceVisitsByState, showSelectedMaintenanceVisitsByDate, + showSelectedMaintenanceVisitsByTemplate, + showSelectedMaintenanceVisitsByUser, deleteMaintenanceVisit, createMaintenanceVisit, showMaintenanceVisitByName, showMaintenanceVisitById, - updateMaintenanceVisitState, + updateMaintenanceVisit, } from "../controller/maintenanceVisits.js" import { @@ -32,6 +34,8 @@ import { showMaintenanceVisitTodosByAsset, updateMaintenanceVisitTodo, deleteMaintenanceVisitTodos, + deleteMaintenanceVisitTodosBytemplateId, + showMaintenanceVisitTodosByTemplateId, } from "../controller/maintenanceVisitTodos.js" import { @@ -60,17 +64,20 @@ import { showSelectedProductionOrdersByTicketnumber, showSelectedProductionOrdersByDate, showSelectedProductionOrdersByState, + showSelectedProductionOrdersByTemplate, + showSelectedProductionOrdersByUser, deleteProductionOrder, createProductionOrder, showProductionOrderByName, showProductionOrderById, - updateProductionOrderState, + updateProductionOrder, } from "../controller/productionOrders.js"; import { createProductionOrderTodos, showProductionOrderTodosById, showProductionOrderTodosByAsset, + showProductionOrderTodosByTemplate, updateProductionOrderTodo, deleteProductionOrderTodos, } from "../controller/productionOrderTodos.js"; @@ -409,6 +416,12 @@ router.get("/selectedProductionOrdersByCustomer/:id", showSelectedProductionOrde //get all production orders by selected state router.get("/selectedProductionOrdersByState/:id", showSelectedProductionOrdersByState) +//get all production orders by selected template +router.get("/selectedProductionOrdersByTemplate/:id", showSelectedProductionOrdersByTemplate) + +//get all production orders by selected user +router.get("/selectedProductionOrdersByUser/:id", showSelectedProductionOrdersByUser) + //get all production orders by selected date router.get("/selectedProductionOrdersByDate/:id", showSelectedProductionOrdersByDate) @@ -424,9 +437,8 @@ router.get("/productionOrderByName/:id", showProductionOrderByName); //get single production order by ticketNumber router.get("/productionOrder/:id", showProductionOrderById); -// Update production order state -router.put("/productionOrderState", updateProductionOrderState); - +// Update production order +router.put("/productionOrder", updateProductionOrder); // routes with production order todos: @@ -439,10 +451,13 @@ router.get("/productionOrderTodos/:id", showProductionOrderTodosById); //get all production order todos by assetname router.get("/productionOrderTodosByAsset/:id", showProductionOrderTodosByAsset); +//get all production order todos by template id +router.get("/productionOrderTodosByTemplateID/:id", showProductionOrderTodosByTemplate); + // Update production order todo router.put("/productionOrderTodos", updateProductionOrderTodo); -// Delete production order todos +// Delete production order todo router.delete("/productionOrderTodos/:id", deleteProductionOrderTodos); @@ -460,6 +475,12 @@ router.get("/selectedMaintenanceVisitsByDate/:id", showSelectedMaintenanceVisits //get all maintenance visits by selected customer router.get("/selectedMaintenanceVisitsByCustomer/:id", showSelectedMaintenanceVisitsByCustomer) +//get all maintenance visits by selected user +router.get("/selectedMaintenanceVisitsByUser/:id", showSelectedMaintenanceVisitsByUser) + +//get all maintenance visits by selected template +router.get("/selectedMaintenanceVisitsByTemplate/:id", showSelectedMaintenanceVisitsByTemplate) + //get all maintenance visits by selected state router.get("/selectedMaintenanceVisitsByState/:id", showSelectedMaintenanceVisitsByState) @@ -475,8 +496,8 @@ router.get("/maintenanceVisitByName/:id", showMaintenanceVisitByName); //get single maintenance visit by primaryId router.get("/maintenanceVisit/:id", showMaintenanceVisitById); -// Update maintenance visit state -router.put("/maintenanceVisitState", updateMaintenanceVisitState); +// Update maintenance visit +router.put("/maintenanceVisit", updateMaintenanceVisit); @@ -490,12 +511,18 @@ router.get("/maintenanceVisitTodos/:id", showMaintenanceVisitTodosById); //get all maintenance visit todos by assetname router.get("/maintenanceVisitTodosByAsset/:id", showMaintenanceVisitTodosByAsset); +//get all maintenance visit todos by template id +router.get("/maintenanceVisitTodosByTemplateId/:id", showMaintenanceVisitTodosByTemplateId); + // Update maintenance visit todo router.put("/maintenanceVisitTodos", updateMaintenanceVisitTodo); // Delete maintenance visit todos router.delete("/maintenanceVisitTodos/:id", deleteMaintenanceVisitTodos); +// Delete maintenance visit todos by template id +router.delete("/maintenanceVisitTodosByTemplateID/:id", deleteMaintenanceVisitTodosBytemplateId); + // routes with issue slips: diff --git a/components/Dashboard.vue b/components/Dashboard.vue index 70afc58..182529d 100644 --- a/components/Dashboard.vue +++ b/components/Dashboard.vue @@ -2,14 +2,22 @@

My tasks

- - - + + + + + +
@@ -24,6 +32,7 @@ const store = useStore(); const modeChanged = computed(() => store.state.updateDarkMode); const modeChangedLocalstorage = computed(() => store.state.modeDashboard); const darkMode = ref(''); +const loggedInUsername = ref(''); const getSession = async () => { if (modeChangedLocalstorage.value) { @@ -37,6 +46,18 @@ const getSession = async () => { } } +const goToMVIList = () => { + store.commit('activateFilteredUserTerm'); + store.commit('activateFiltered'); + store.commit('changeToInstancelist'); +}; + +const goToPOIList = () => { + store.commit('activateFilteredUserTerm'); + store.commit('activateFiltered'); + store.commit('changeToInstancelist'); +}; + function getItem(item) { if (process.client) { return localStorage.getItem(item) @@ -105,7 +126,8 @@ export default { gap: 2.5rem; } -input { +input, +button { display: flex; flex-direction: row; align-items: center; @@ -120,6 +142,10 @@ input { font: 400 0.875rem/2rem Overpass, sans-serif; } +button:hover { + cursor: pointer; +} + .input-darkmode { color: #fff; background-color: #343434; diff --git a/components/TemplateSearch.vue b/components/TemplateSearch.vue index 8daa560..96452c7 100644 --- a/components/TemplateSearch.vue +++ b/components/TemplateSearch.vue @@ -1,7 +1,7 @@ @@ -10,10 +10,19 @@ import { ref, onMounted, watch } from 'vue'; import { useStore } from 'vuex'; import { computed } from 'vue'; +import Axios from '../axios.config.js'; +import clientsideConfig from '../../clientsideConfig.js'; +const route = useRoute() +const id = computed(() => route) const store = useStore(); const modeChanged = computed(() => store.state.updateDarkMode); +const template = ref({}); +const chosenMVTId = computed(() => store.state.chosenMVTId); +const chosenPOTId = computed(() => store.state.chosenPOTId); +const notAllInstancesIcon = computed(() => store.state.notAllInstancesIcon); + const darkMode = ref(''); const getSession = async () => { @@ -25,6 +34,31 @@ const getSession = async () => { } } +// get maintenance visit template from id +const getTById = async () => { + if (notAllInstancesIcon.value) { + if (id.value.fullPath == '/maintenanceVisits') { + try { + const response = await Axios.get( + `https://${clientsideConfig.url}:${clientsideConfig.port}/api/getMaintenanceVisitTemplate/${chosenMVTId.value}` + ); + template.value = response.data; + } catch (err) { + console.log(err.response.statusText); + } + } else if (id.value.fullPath == '/productionOrders') { + try { + const response = await Axios.get( + `https://${clientsideConfig.url}:${clientsideConfig.port}/api/getProductionOrderTemplate/${chosenPOTId.value}` + ); + template.value = response.data; + } catch (err) { + console.log(err.response.statusText); + } + } + } +} + function getItem(item) { if (process.client) { return localStorage.getItem(item) @@ -36,7 +70,8 @@ function getItem(item) { watch(modeChanged, getSession) onMounted(async () => { - await getSession(); + getSession(); + await getTById(); }); diff --git a/components/server/Accounting.vue b/components/server/Accounting.vue index 9225982..e84acc5 100644 --- a/components/server/Accounting.vue +++ b/components/server/Accounting.vue @@ -487,12 +487,14 @@ const addIssueSlip = async () => { const time = today.getHours() + ":" + today.getMinutes(); const dateTime = date + ' ' + time; let allFine = true; - newOIs.value.forEach(oi => { - if (oi.article.length === 0 && oi.amount.length === 0 && oi.price.length === 0 && oi.comment.length === 0) { - alert(`Please add data for all ordering info.`); - allFine = false - } - }) + if (newOIs.value.length != 0) { + newOIs.value.forEach(oi => { + if (oi.article.length === 0 && oi.amount.length === 0 && oi.price.length === 0 && oi.comment.length === 0) { + alert(`Please add data for all ordering info.`); + allFine = false + } + }) + } if (!allFine) { return } @@ -526,22 +528,24 @@ const addIssueSlip = async () => { egressBillDate: newEgressBillDate.value, egressBill: newEgressBill.value, }); - newOIs.value.forEach(async oi => { - try { - const res = await Axios.post(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/addOrderingInfo`, - { - issueSlipID: response.data, - article: oi.article, - amount: oi.amount, - price: oi.price, - comment: oi.comment, - }); - } catch (err) { - console.log(err); - } - store.commit('resetStore'); - store.commit('changeToIssueSliplist'); - }) + if (newOIs.value.length != 0) { + newOIs.value.forEach(async oi => { + try { + const res = await Axios.post(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/addOrderingInfo`, + { + issueSlipID: response.data, + article: oi.article, + amount: oi.amount, + price: oi.price, + comment: oi.comment, + }); + } catch (err) { + console.log(err); + } + }) + } + store.commit('resetStore'); + store.commit('changeToIssueSliplist'); } catch (err) { console.log(err.response.statusText); } diff --git a/components/server/Asset.vue b/components/server/Asset.vue index 21dfba7..9f17d2c 100644 --- a/components/server/Asset.vue +++ b/components/server/Asset.vue @@ -331,7 +331,14 @@ const updateNewCustomerID = async () => { const triggerBackendCallsWithDelay = async (fetchDataFunc) => { setTimeout(() => { fetchDataFunc(); - }, 1500); + }, 2000); +} + +// include delay to avoid 503 error +const triggerBackendCallsWithSmallDelay = async (fetchDataFunc) => { + setTimeout(() => { + fetchDataFunc(); + }, 500); } const getSession = async () => { @@ -356,7 +363,7 @@ watch(modeChanged, getSession) onMounted(async () => { await getSession(); - await getItemById(); + triggerBackendCallsWithSmallDelay(getItemById); triggerBackendCallsWithDelay(getConfigItems); triggerBackendCallsWithDelay(getCustomers); }); diff --git a/components/server/AssetSolutionList.vue b/components/server/AssetSolutionList.vue index ac783e2..4fc3118 100644 --- a/components/server/AssetSolutionList.vue +++ b/components/server/AssetSolutionList.vue @@ -159,7 +159,7 @@ watch(modeChanged, getSession) onMounted(async () => { await getSession(); - getItemById(); + await getItemById(); }); diff --git a/components/server/InstanceChecklist.vue b/components/server/InstanceChecklist.vue index 80b8986..07ca131 100644 --- a/components/server/InstanceChecklist.vue +++ b/components/server/InstanceChecklist.vue @@ -1,5 +1,5 @@ @@ -84,15 +280,13 @@ export default { \ No newline at end of file diff --git a/components/server/InstanceChecklistMVI.vue b/components/server/InstanceChecklistMVI.vue new file mode 100644 index 0000000..dd4a197 --- /dev/null +++ b/components/server/InstanceChecklistMVI.vue @@ -0,0 +1,532 @@ + + + + + + + + + \ No newline at end of file diff --git a/components/server/Issue.vue b/components/server/Issue.vue index 4687943..6958b26 100644 --- a/components/server/Issue.vue +++ b/components/server/Issue.vue @@ -106,6 +106,23 @@ const newState = ref(''); const newAmount = ref(''); const newProperties = ref(''); +const getSession = async () => { + const loggedInUserDarkModeBool = getItem('logged-in-user-darkMode'); + if (loggedInUserDarkModeBool == 1) { + darkMode.value = true; + } else { + darkMode.value = false; + } +} + +function getItem(item) { + if (process.client) { + return localStorage.getItem(item) + } else { + return undefined + } +} + //get all issue const getIssues = async () => { try { @@ -211,23 +228,6 @@ const triggerBackendCallsWithDelay = async (fetchDataFunc) => { watch(deleteBool, confirmDeleteIssue); watch(modeChanged, getSession) -const getSession = async () => { - const loggedInUserDarkModeBool = getItem('logged-in-user-darkMode'); - if (loggedInUserDarkModeBool == 1) { - darkMode.value = true; - } else { - darkMode.value = false; - } -} - -function getItem(item) { - if (process.client) { - return localStorage.getItem(item) - } else { - return undefined - } -} - onMounted(async () => { await getSession(); await getIssueById(); diff --git a/components/server/IssueSlip.vue b/components/server/IssueSlip.vue index 0d049e8..9dee195 100644 --- a/components/server/IssueSlip.vue +++ b/components/server/IssueSlip.vue @@ -19,8 +19,12 @@
Ticket No.:
-
{{ issueSlip.ticketNo }}
+ +
{{ issueSlip.ticketNo }}
+
User:
@@ -67,14 +71,15 @@
-
Ticket No.:
+
Production order:

-                        
+                        
                     
User:
@@ -131,6 +136,7 @@ const newCustomer = ref(''); const newUser = ref(''); const newNotes = ref(''); const newDeliveryAddress = ref(''); +const chosenTemplate = ref(''); // get issue slip from id const getIssueSlipById = async () => { @@ -146,13 +152,24 @@ const getIssueSlipById = async () => { } } +const goToChosenPOI = (id) => { + store.commit('setChosenPOI', id); + store.commit('changeToInstance'); +}; + // update issue slip fields in the store -const updateIS = () => { - const is = { +const updateIS = async (newPoiId = -1) => { + let is = {}; + if (!(newPoiId == '-1')) { + // Find the object with the selected Name + const selectedObject = productionOrders.value.find(obj => obj.name === newPoiId); + // Get the ticketNumber + newTicketNo.value = selectedObject ? selectedObject.ticketNumber : null; + } + is = { customerId: newCustomerID.value, customer: newCustomer.value, - // ticketNo: newTicketNo.value, - ticketNo: 1, + ticketNo: newTicketNo.value, notes: newNotes.value, user: newUser.value, deliveryAddress: newDeliveryAddress.value, @@ -218,15 +235,14 @@ const getCustomers = async () => { } } -//get all production orders +//get all productionOrder instances const getProductionOrders = async () => { - // try { - // const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getAllCustomers` - // ); - // customers.value = response.data; - // } catch (err) { - // console.log(err.response.statusText); - // } + try { + const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getAllProductionOrderInstances`); + productionOrders.value = response.data; + } catch (err) { + console.log(err.response.statusText); + } } const confirmDeleteIssueSlip = async () => { @@ -498,4 +514,16 @@ export default { padding: 0.4rem; border-radius: 0.3125rem; } + +#nuxt-link { + text-decoration: none; +} + +.nuxt-link-darkmode { + color: white; +} + +.nuxt-link-lightmode { + color: #000; +} \ No newline at end of file diff --git a/components/server/IssueTable.vue b/components/server/IssueTable.vue index 0ec64b5..1cc30e4 100644 --- a/components/server/IssueTable.vue +++ b/components/server/IssueTable.vue @@ -67,6 +67,23 @@ const issueSearchFilter = ref(''); const darkMode = ref(''); const issues = ref([]); +const getSession = async () => { + const loggedInUserDarkModeBool = getItem('logged-in-user-darkMode'); + if (loggedInUserDarkModeBool == 1) { + darkMode.value = true; + } else { + darkMode.value = false; + } +} + +function getItem(item) { + if (process.client) { + return localStorage.getItem(item) + } else { + return undefined + } +} + // update search term const updateSearchTerm = async () => { issueSearchFilter.value = ''; @@ -114,24 +131,6 @@ const searchIssue = async () => { watch(stateFilter, getIssues); watch(searchable, updateSearchTerm); - -const getSession = async () => { - const loggedInUserDarkModeBool = getItem('logged-in-user-darkMode'); - if (loggedInUserDarkModeBool == 1) { - darkMode.value = true; - } else { - darkMode.value = false; - } -} - -function getItem(item) { - if (process.client) { - return localStorage.getItem(item) - } else { - return undefined - } -} - watch(modeChanged, getSession) onMounted(async () => { diff --git a/components/server/MaintenanceVisitsInstance.vue b/components/server/MaintenanceVisitsInstance.vue index a69a21e..51af744 100644 --- a/components/server/MaintenanceVisitsInstance.vue +++ b/components/server/MaintenanceVisitsInstance.vue @@ -1,29 +1,38 @@