diff --git a/backend/models/maintenanceVisitsModel.js b/backend/models/maintenanceVisitsModel.js index cea93f5..70153b4 100644 --- a/backend/models/maintenanceVisitsModel.js +++ b/backend/models/maintenanceVisitsModel.js @@ -32,7 +32,7 @@ export const getSelectedMaintenanceVisitsByChecklistname = async (selected, resu export const getSelectedMaintenanceVisitsByTemplate = async (selected, result) => { try { let sql = `SELECT * FROM maintenancevisits WHERE templateID = ? ORDER BY name ASC`; - const results = await ownConn.execute(sql, [id]) + const results = await ownConn.execute(sql, [selected]) result(null, results); } catch (err) { diff --git a/backend/models/maintenanceVisitsTodosModel.js b/backend/models/maintenanceVisitsTodosModel.js index 2b27975..ea8ad4f 100644 --- a/backend/models/maintenanceVisitsTodosModel.js +++ b/backend/models/maintenanceVisitsTodosModel.js @@ -61,7 +61,7 @@ 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); } 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/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/InstanceChecklist.vue b/components/server/InstanceChecklist.vue index 8560bde..07ca131 100644 --- a/components/server/InstanceChecklist.vue +++ b/components/server/InstanceChecklist.vue @@ -14,12 +14,12 @@ :class="['Task', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']"> Task + :class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode && !addBool ? 'Comments-darkmode' : '', !darkMode && !addBool ? 'Comments-lightmode' : '']"> Comments Done + :class="['table-row-data', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1"> {{ todo.rowID }} @@ -29,12 +29,10 @@ {{ todo.task }} - - {{ todo.comments }} - + + { notes: newNotesPOI.value, }); store.commit('resetStore'); + store.commit('deactivateSearch'); store.commit('changeToInstancelist'); store.commit('seeAllIcon'); poiTodos.value.forEach(async todo => { @@ -328,6 +327,14 @@ export default { gap: 0.625rem; } +.table-row-data { + display: flex; + flex-direction: row; + align-items: center; + padding: 0.625rem; + gap: 0.625rem; +} + .saveNewPOI-darkmode { background: #2c2c2c; color: #fff; @@ -391,6 +398,10 @@ td { font: 400 0.875rem/1.875rem Overpass, sans-serif; } +td { + height: 5rem; +} + th { font: 700 0.875rem/1.875rem Overpass, sans-serif; } @@ -501,4 +512,10 @@ th { .label-lightmode { color: #000; } + +textarea { + resize: none; + width: 20rem; + height: 5rem; +} \ No newline at end of file diff --git a/components/server/InstanceChecklistMVI.vue b/components/server/InstanceChecklistMVI.vue index 7954105..dd4a197 100644 --- a/components/server/InstanceChecklistMVI.vue +++ b/components/server/InstanceChecklistMVI.vue @@ -14,12 +14,12 @@ :class="['Task', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']"> Task + :class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode && !addBool ? 'Comments-darkmode' : '', !darkMode && !addBool ? 'Comments-lightmode' : '']"> Comments Done + :class="['table-row-data', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1"> {{ todo.rowID }} @@ -29,12 +29,11 @@ {{ todo.task }} - - {{ todo.comments }} - + + store.state.newCustomerMVI); const newTemplateNotesMVI = computed(() => store.state.newTemplateNotesMVI); const newTypeMVI = computed(() => store.state.newTypeMVI); const newTimeSpentMVI = computed(() => store.state.newTimeSpentMVI); -const newNotesMVI = computed(() => store.state.newNotes); +const newNotesMVI = computed(() => store.state.newNotesMVI); const editable = computed(() => store.state.editable); const darkMode = ref(''); @@ -97,7 +96,12 @@ const getMVITodosById = async () => { const response = await Axios.get( `https://${clientsideConfig.url}:${clientsideConfig.port}/api/getTodosMaintenanceVisitTemplate/${chosenMVTId.value}` ); - mviTodos.value = response.data; + const mviTodosComment = response.data; + // change the commets to comments + mviTodos.value = mviTodosComment.map(obj => { + const { commets: comments, ...rest } = obj; + return { ...rest, comments }; + }); store.commit('updateMaintenanceVisitInstanceTemplateID', chosenMVTId.value) } catch (err) { console.log(err.response.statusText); @@ -107,7 +111,12 @@ const getMVITodosById = async () => { const response = await Axios.get( `https://${clientsideConfig.url}:${clientsideConfig.port}/api/getTodosMaintenanceVisitTemplate/${newTemplateIDMVI.value}` ); - mviTodos.value = response.data; + const mviTodosComment = response.data; + // change the commets to comments + mviTodos.value = mviTodosComment.map(obj => { + const { commets: comments, ...rest } = obj; + return { ...rest, comments }; + }); } catch (err) { console.log(err.response.statusText); } @@ -117,7 +126,7 @@ const getMVITodosById = async () => { `https://${clientsideConfig.url}:${clientsideConfig.port}/api/getTodosMaintenanceVisitInstance/${chosenMVIId.value}` ); const mviTodosComment = response.data; - // change the comment und step field name to comments and rowID + // change the comment and step field name to comments and rowID mviTodos.value = mviTodosComment.map(obj => { const { step: rowID, comment: comments, ...rest } = obj; return { ...rest, rowID, comments }; @@ -231,6 +240,7 @@ const addMVI = async () => { notes: newNotesMVI.value, }); store.commit('resetStore'); + store.commit('deactivateSearch'); store.commit('changeToInstancelist'); store.commit('seeAllIcon'); mviTodos.value.forEach(async todo => { @@ -328,6 +338,14 @@ export default { gap: 0.625rem; } +.table-row-data { + display: flex; + flex-direction: row; + align-items: center; + padding: 0.625rem; + gap: 0.625rem; +} + .saveNewMVI-darkmode { background: #2c2c2c; color: #fff; @@ -391,6 +409,10 @@ td { font: 400 0.875rem/1.875rem Overpass, sans-serif; } +td { + height: 5rem; +} + th { font: 700 0.875rem/1.875rem Overpass, sans-serif; } @@ -501,4 +523,10 @@ th { .label-lightmode { color: #000; } + +textarea { + resize: none; + width: 20rem; + height: 5rem; +} \ No newline at end of file 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/MaintenanceVisitsInstance.vue b/components/server/MaintenanceVisitsInstance.vue index a2ba2bb..51af744 100644 --- a/components/server/MaintenanceVisitsInstance.vue +++ b/components/server/MaintenanceVisitsInstance.vue @@ -308,6 +308,7 @@ const confirmDeleteMVI = async () => { } store.commit('undoDelete'); store.commit('resetStore'); + store.commit('deactivateSearch'); store.commit('changeToInstancelist'); store.commit('seeAllIcon'); } else { @@ -472,6 +473,7 @@ onMounted(async () => { getSession(); await getMVIById(); await getMVTById(); + triggerBackendCallsWithDelay(getUsers); triggerBackendCallsWithDelay(getCustomers); }); @@ -685,4 +687,8 @@ export default { padding: 0.625rem 1.875rem 0.625rem 1.25rem; padding-top: 0rem; } + +.templateNotes { + padding-left: 1.8rem; +} \ No newline at end of file diff --git a/components/server/MaintenanceVisitsInstanceTable.vue b/components/server/MaintenanceVisitsInstanceTable.vue index 6afb68e..d259e49 100644 --- a/components/server/MaintenanceVisitsInstanceTable.vue +++ b/components/server/MaintenanceVisitsInstanceTable.vue @@ -1,7 +1,7 @@