added pot todos functionality
This commit is contained in:
@ -18,8 +18,9 @@ export const getMasterProductionOrderTodoById = async (id, result) => {
|
|||||||
export const updateMasterProductionOrderTodoById = async (data, result) => {
|
export const updateMasterProductionOrderTodoById = async (data, result) => {
|
||||||
try {
|
try {
|
||||||
const id = data.primaryID;
|
const id = data.primaryID;
|
||||||
let sql = `UPDATE masterordertodos SET templateID = ?, asset = ? , task = ?, comment = ? WHERE primaryID = ?`;
|
let sql = `UPDATE masterordertodos SET templateID = ?, asset = ? , task = ?, comments = ? WHERE primaryID = ?`;
|
||||||
const results = await ownConn.query(sql, [data.templateID, data.asset, data.task, data.comment, id])
|
const results = await ownConn.query(sql, [data.templateID, data.asset, data.task, data.comments, id])
|
||||||
|
results.insertId = results.insertId.toString();
|
||||||
result(null, results);
|
result(null, results);
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
@ -35,6 +36,7 @@ export const deleteMasterProductionOrderTodoById = async (id, result) => {
|
|||||||
try {
|
try {
|
||||||
let sql = `DELETE FROM masterordertodos WHERE primaryID = ?`;
|
let sql = `DELETE FROM masterordertodos WHERE primaryID = ?`;
|
||||||
const results = await ownConn.query(sql, [id])
|
const results = await ownConn.query(sql, [id])
|
||||||
|
results.insertId = results.insertId.toString();
|
||||||
result(null, results);
|
result(null, results);
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
@ -49,6 +51,7 @@ export const deleteMasterProductionOrderTodoByTemplateId = async (id, result) =>
|
|||||||
try {
|
try {
|
||||||
let sql = `DELETE FROM masterordertodos WHERE templateID = ?`;
|
let sql = `DELETE FROM masterordertodos WHERE templateID = ?`;
|
||||||
const results = await ownConn.query(sql, [id])
|
const results = await ownConn.query(sql, [id])
|
||||||
|
results.insertId = results.insertId.toString();
|
||||||
result(null, results);
|
result(null, results);
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
@ -79,7 +82,8 @@ export const updateMasterProductionOrderTodos = async (data, result) => {
|
|||||||
//insert master production order todo to databased
|
//insert master production order todo to databased
|
||||||
export const insertMasterProductionOrderTodo = async (data, result) => {
|
export const insertMasterProductionOrderTodo = async (data, result) => {
|
||||||
try {
|
try {
|
||||||
const results = await ownConn.query(`INSERT INTO masterordertodos(templateID, rowID, asset, task, comment) VALUES(?, ?, ?, ?, ?)`, [data.templateID, data.rowID, data.asset, data.task, data.comment])
|
const results = await ownConn.query(`INSERT INTO masterordertodos(templateID, rowID, asset, task, comments) VALUES(?, ?, ?, ?, ?)`, [data.templateID, data.rowID, data.asset, data.task, data.comment])
|
||||||
|
results.insertId = results.insertId.toString();
|
||||||
result(null, results);
|
result(null, results);
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
|
|||||||
@ -264,8 +264,8 @@ router.put("/masterProductionOrderTodos", updateMasterProductionOrderTodo);
|
|||||||
// Delete master production order todo
|
// Delete master production order todo
|
||||||
router.delete("/masterProductionOrderTodos/:id", deleteMasterProductionOrderTodo);
|
router.delete("/masterProductionOrderTodos/:id", deleteMasterProductionOrderTodo);
|
||||||
|
|
||||||
// Delete master production order todo by customer id
|
// Delete master production order todo by template id
|
||||||
router.delete("/masterProductionOrderTodosByCustomerid/:id", deleteMasterProductionOrderTodoByTemplateIds);
|
router.delete("/masterProductionOrderTodosByTemplateid/:id", deleteMasterProductionOrderTodoByTemplateIds);
|
||||||
|
|
||||||
// Update all master production order todos
|
// Update all master production order todos
|
||||||
router.put("/allMasterProductionOrderTodos", updateAllProductionOrderTodos)
|
router.put("/allMasterProductionOrderTodos", updateAllProductionOrderTodos)
|
||||||
|
|||||||
@ -146,8 +146,12 @@ const confirmDeletePOT = async () => {
|
|||||||
store.commit('undoDelete');
|
store.commit('undoDelete');
|
||||||
store.commit('changeToTemplatelist');
|
store.commit('changeToTemplatelist');
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
// console.log(err.response.statusText);
|
console.log(err.response.statusText);
|
||||||
console.log(err);
|
}
|
||||||
|
try {
|
||||||
|
await Axios.delete(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/deleteTodosPOT/${chosenPOTId.value}`);
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err.response.statusText);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
store.commit('undoDelete');
|
store.commit('undoDelete');
|
||||||
@ -161,9 +165,7 @@ const getProductionOrderTemplates = async () => {
|
|||||||
const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getAllProductionOrderTemplates`);
|
const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getAllProductionOrderTemplates`);
|
||||||
productionOrderTemplates.value = response.data;
|
productionOrderTemplates.value = response.data;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
// console.log(err.response.statusText);
|
console.log(err.response.statusText);
|
||||||
console.log(err);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,6 +214,8 @@ const updateCustomerID = async () => {
|
|||||||
const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getCustomerByName/${pot.value.customer}`);
|
const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getCustomerByName/${pot.value.customer}`);
|
||||||
customer.value = response.data;
|
customer.value = response.data;
|
||||||
pot.value.customerID = customer.value.customerID;
|
pot.value.customerID = customer.value.customerID;
|
||||||
|
store.commit('toggleClientChanged');
|
||||||
|
store.commit('toggleClientId', pot.value.customerID);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err.response.statusText);
|
console.log(err.response.statusText);
|
||||||
}
|
}
|
||||||
@ -237,6 +241,8 @@ const updateNewCustomerID = async () => {
|
|||||||
try {
|
try {
|
||||||
const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getCustomerByName/${newCustomer.value}`);
|
const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getCustomerByName/${newCustomer.value}`);
|
||||||
newCustomerID.value = response.data.customerID;
|
newCustomerID.value = response.data.customerID;
|
||||||
|
store.commit('toggleClientChanged');
|
||||||
|
store.commit('toggleClientId', newCustomerID.value)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err.response.statusText);
|
console.log(err.response.statusText);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div :class="['data', darkMode ? 'div-darkmode' : 'div-lightmode']">
|
<section v-if="!addBool"
|
||||||
|
:class="['template-checklist-information', darkMode ? 'section-darkmode' : 'section-lightmode']">
|
||||||
<div :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode']">Checklist:</div>
|
<div :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode']">Checklist:</div>
|
||||||
<table class="data-table" id="template-checkklist">
|
<table class="data-table" id="template-checkklist">
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -15,21 +16,127 @@
|
|||||||
Task</th>
|
Task</th>
|
||||||
<th :class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode']">Comments</th>
|
<th :class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode']">Comments</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr :class="['table-row', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
<tr v-for="todo in potTodos" :key="todo.primaryID"
|
||||||
|
:class="['table-row', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
||||||
<td
|
<td
|
||||||
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
||||||
...</td>
|
{{ todo.rowID }}
|
||||||
|
</td>
|
||||||
|
<td v-if="!editable"
|
||||||
|
:class="['Asset', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Asset-darkmode' : 'Asset-lightmode']">
|
||||||
|
{{ todo.asset }}</td>
|
||||||
|
<td v-if="editable"
|
||||||
|
:class="['Asset', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Asset-darkmode' : 'Asset-lightmode']">
|
||||||
|
<select id="customersDropDownChosenCI" v-model="todo.asset" @change="updatePOTTodo(todo)"
|
||||||
|
:class="[darkMode ? 'select-darkmode' : 'select-lightmode']">
|
||||||
|
<option v-for="ci in configItemList" :key="ci.primaryID">
|
||||||
|
{{ ci.assetName }}
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
<td v-if="!editable"
|
||||||
|
:class="['Task', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
||||||
|
{{ todo.task }}</td>
|
||||||
|
<td v-if="editable"
|
||||||
|
:class="['Task', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
||||||
|
<input type="text" v-model="todo.task" @change="updatePOTTodo(todo)"
|
||||||
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
||||||
|
</td>
|
||||||
|
<td v-if="!editable" :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"> {{ todo.comments
|
||||||
|
}}</td>
|
||||||
|
<td v-if="editable" :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"> <input type="text"
|
||||||
|
v-model="todo.comments" @change="updatePOTTodo(todo)"
|
||||||
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> <button
|
||||||
|
:class="[darkMode ? 'deletePOTTodos-darkmode' : 'deletePOTTodos-lightmode']"
|
||||||
|
@click="deletePOTTodo(todo.primaryID)">-</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr v-if="editable && addRow" :class="['table-row', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
||||||
|
<td
|
||||||
|
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
||||||
|
{{ newStepTodo }}
|
||||||
|
</td>
|
||||||
<td
|
<td
|
||||||
:class="['Asset', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Asset-darkmode' : 'Asset-lightmode']">
|
:class="['Asset', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Asset-darkmode' : 'Asset-lightmode']">
|
||||||
...</td>
|
<select id="customersDropDownChosenCI" v-model="newAssetTodo"
|
||||||
|
:class="[darkMode ? 'select-darkmode' : 'select-lightmode']">
|
||||||
|
<option v-for="ci in configItemList" :key="ci.primaryID">
|
||||||
|
{{ ci.assetName }}
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
<td
|
<td
|
||||||
:class="['Task', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
:class="['Task', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
||||||
...</td>
|
<input type="text" v-model="newTaskTodo"
|
||||||
<td :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']">...</td>
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
||||||
|
</td>
|
||||||
|
<td :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"><input type="text"
|
||||||
|
v-model="newCommentsTodo"
|
||||||
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> <button
|
||||||
|
:class="[darkMode ? 'savePOTTodos-darkmode' : 'savePOTTodos-lightmode']"
|
||||||
|
@click="addPOTTodo()">Save</button> <button
|
||||||
|
:class="[darkMode ? 'deleteLastPOTTodos-darkmode' : 'deleteLastPOTTodos-lightmode']"
|
||||||
|
@click="deleteNewRow()">-</button>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</section>
|
||||||
|
<section v-if="editable && !addBool" id="editPOTTodos">
|
||||||
|
<button :class="[darkMode ? 'editPOTTodos-darkmode' : 'editPOTTodos-lightmode']"
|
||||||
|
@click="addChecklistRow()">+</button>
|
||||||
|
</section>
|
||||||
|
<section v-if="addBool"
|
||||||
|
:class="['template-checklist-information', darkMode ? 'section-darkmode' : 'section-lightmode']">
|
||||||
|
<div :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode']">Checklist:</div>
|
||||||
|
<table class="data-table" id="template-checkklist">
|
||||||
|
<tbody>
|
||||||
|
<tr :class="['table-row', darkMode ? 'tr-head-darkmode' : 'tr-head-lightmode']" id="table-head">
|
||||||
|
<th
|
||||||
|
:class="['Step', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
||||||
|
Step</th>
|
||||||
|
<th
|
||||||
|
:class="['Asset', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Asset-darkmode' : 'Asset-lightmode']">
|
||||||
|
Asset</th>
|
||||||
|
<th
|
||||||
|
:class="['Task', darkMode ? 'th-darkmode' : 'th-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
||||||
|
Task</th>
|
||||||
|
<th :class="['Comments', darkMode ? 'th-darkmode' : 'th-lightmode']">Comments</th>
|
||||||
|
</tr>
|
||||||
|
<tr v-for="(newT, index) in newTodos" :key="index"
|
||||||
|
:class="['table-row', darkMode ? 'tr-darkmode' : 'tr-lightmode']" id="row-1">
|
||||||
|
<td
|
||||||
|
:class="['Step', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Step-darkmode' : 'Step-lightmode']">
|
||||||
|
{{ newT.rowID }}
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
:class="['Asset', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Asset-darkmode' : 'Asset-lightmode']">
|
||||||
|
<select id="customersDropDownChosenCI" v-model="newT.asset"
|
||||||
|
:class="[darkMode ? 'select-darkmode' : 'select-lightmode']">
|
||||||
|
<option v-for="ci in configItemList" :key="ci.primaryID">
|
||||||
|
{{ ci.assetName }}
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
:class="['Task', darkMode ? 'td-darkmode' : 'td-lightmode', darkMode ? 'Task-darkmode' : 'Task-lightmode']">
|
||||||
|
<input type="text" v-model="newT.task"
|
||||||
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']">
|
||||||
|
</td>
|
||||||
|
<td :class="['Comments', darkMode ? 'td-darkmode' : 'td-lightmode']"> <input type="text"
|
||||||
|
v-model="newT.comments"
|
||||||
|
:class="['data', 'input', darkMode ? 'data-darkmode' : 'data-lightmode']"> <button
|
||||||
|
:class="[darkMode ? 'deletePOTTodos-darkmode' : 'deleteLastPOTTodos-lightmode']"
|
||||||
|
@click="deletePOTTodoFromNewTodos(index)">-</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
<section v-if="addBool" id="editPOTTodos">
|
||||||
|
<button :class="[darkMode ? 'editPOTTodos-darkmode' : 'editPOTTodos-lightmode']"
|
||||||
|
@click="addRowForNewPOT()">+</button>
|
||||||
|
</section>
|
||||||
<section v-if="addBool" id="saveNewPOT">
|
<section v-if="addBool" id="saveNewPOT">
|
||||||
<button :class="[darkMode ? 'saveNewPOT-darkmode' : 'saveNewPOT-lightmode']" @click="addPOT()">Safe</button>
|
<button :class="[darkMode ? 'saveNewPOT-darkmode' : 'saveNewPOT-lightmode']" @click="addPOT()">Safe</button>
|
||||||
</section>
|
</section>
|
||||||
@ -37,7 +144,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, onMounted } from 'vue';
|
import { ref, onMounted, watch } from 'vue';
|
||||||
import Axios from '../axios.config.js';
|
import Axios from '../axios.config.js';
|
||||||
import clientsideConfig from '../../clientsideConfig.js';
|
import clientsideConfig from '../../clientsideConfig.js';
|
||||||
import { useStore } from 'vuex';
|
import { useStore } from 'vuex';
|
||||||
@ -45,6 +152,7 @@ import { computed } from 'vue';
|
|||||||
|
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
const addBool = computed(() => store.state.new);
|
const addBool = computed(() => store.state.new);
|
||||||
|
const editable = computed(() => store.state.editable);
|
||||||
|
|
||||||
const newNamePOT = computed(() => store.state.newNamePOT);
|
const newNamePOT = computed(() => store.state.newNamePOT);
|
||||||
const newCustomerIDPOT = computed(() => store.state.newCustomerIDPOT);
|
const newCustomerIDPOT = computed(() => store.state.newCustomerIDPOT);
|
||||||
@ -53,9 +161,37 @@ const newLastViewPOT = computed(() => store.state.newLastViewPOT);
|
|||||||
const newUserPOT = computed(() => store.state.newUserPOT);
|
const newUserPOT = computed(() => store.state.newUserPOT);
|
||||||
const newDescriptionPOT = computed(() => store.state.newDescriptionPOT);
|
const newDescriptionPOT = computed(() => store.state.newDescriptionPOT);
|
||||||
const newNotesPOT = computed(() => store.state.newNotesPOT);
|
const newNotesPOT = computed(() => store.state.newNotesPOT);
|
||||||
|
const newStepTodo = computed(() => potTodos.value.length);
|
||||||
|
const chosenPOTId = computed(() => store.state.chosenPOTId);
|
||||||
|
const clientChanged = computed(() => store.state.clientChanged);
|
||||||
|
const changedClientId = computed(() => store.state.changedClientId);
|
||||||
|
|
||||||
const darkMode = ref(true)
|
const darkMode = ref(true)
|
||||||
|
const addRow = ref(false);
|
||||||
|
const configItemList = ref([]);
|
||||||
const productionOrderTemplates = ref([]);
|
const productionOrderTemplates = ref([]);
|
||||||
|
const potTodos = ref([])
|
||||||
|
const pot = ref({})
|
||||||
|
const newAssetTodo = ref('');
|
||||||
|
const newTaskTodo = ref('');
|
||||||
|
const newCommentsTodo = ref('');
|
||||||
|
const newTodos = reactive([]);
|
||||||
|
const newRowId = computed(() => newTodos.length)
|
||||||
|
|
||||||
|
// delete new todo row
|
||||||
|
const deleteNewRow = () => {
|
||||||
|
newAssetTodo.value = '';
|
||||||
|
newTaskTodo.value = '';
|
||||||
|
newCommentsTodo.value = '';
|
||||||
|
addRow.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const deletePOTTodoFromNewTodos = (index) => {
|
||||||
|
newTodos.splice(index, 1);
|
||||||
|
newTodos.forEach((todo, i) => {
|
||||||
|
todo.rowID = i
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// add new production order template
|
// add new production order template
|
||||||
const addPOT = async () => {
|
const addPOT = async () => {
|
||||||
@ -82,6 +218,16 @@ const addPOT = async () => {
|
|||||||
alert("Please choose a client!");
|
alert("Please choose a client!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
let allFine = true;
|
||||||
|
newTodos.forEach(todo => {
|
||||||
|
if (todo.asset.length === 0) {
|
||||||
|
alert(`Please choose a config item for all todos.`);
|
||||||
|
allFine = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (!allFine) {
|
||||||
|
return
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
const response = await Axios.post(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/addPOT`,
|
const response = await Axios.post(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/addPOT`,
|
||||||
{
|
{
|
||||||
@ -95,9 +241,99 @@ const addPOT = async () => {
|
|||||||
});
|
});
|
||||||
store.commit('resetStore');
|
store.commit('resetStore');
|
||||||
store.commit('changeToTemplatelist');
|
store.commit('changeToTemplatelist');
|
||||||
|
newTodos.forEach(async todo => {
|
||||||
|
try {
|
||||||
|
const res = await Axios.post(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/addTodoPOT`,
|
||||||
|
{
|
||||||
|
templateID: response.data,
|
||||||
|
rowID: todo.rowID,
|
||||||
|
asset: todo.asset,
|
||||||
|
task: todo.task,
|
||||||
|
comment: todo.comments,
|
||||||
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err.response.statusText);
|
console.log(err.response.statusText);
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err.response.statusText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// add new row of todo for the new pot
|
||||||
|
const addRowForNewPOT = async () => {
|
||||||
|
if (newCustomerPOT.value.length === 0) {
|
||||||
|
alert("Please choose a client first!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
await getConfigItemsFromClient();
|
||||||
|
newTodos.push({
|
||||||
|
templateID: chosenPOTId.value,
|
||||||
|
rowID: newRowId.value,
|
||||||
|
asset: '',
|
||||||
|
task: '',
|
||||||
|
comments: ''
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//update data
|
||||||
|
const updatePOTTodo = async (todo) => {
|
||||||
|
if (todo.asset.length === 0) {
|
||||||
|
alert(`Please add the missing config item in row ${todo.rowID}!`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
await Axios.put(
|
||||||
|
`https://${clientsideConfig.url}:${clientsideConfig.port}/api/updatePOTTodo`,
|
||||||
|
{
|
||||||
|
primaryID: todo.primaryID,
|
||||||
|
templateID: todo.templateID,
|
||||||
|
rowID: todo.rowID,
|
||||||
|
asset: todo.asset,
|
||||||
|
task: todo.task,
|
||||||
|
comments: todo.comments,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
await getPOTById();
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err.response.statusText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// add new production order template todo
|
||||||
|
const addPOTTodo = async () => {
|
||||||
|
// check if all input data is valid
|
||||||
|
if (newAssetTodo.value.length === 0) {
|
||||||
|
alert("Please choose an asset for the new todo!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
const response = await Axios.post(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/addTodoPOT`,
|
||||||
|
{
|
||||||
|
templateID: chosenPOTId.value,
|
||||||
|
rowID: newStepTodo.value,
|
||||||
|
asset: newAssetTodo.value,
|
||||||
|
task: newTaskTodo.value,
|
||||||
|
comment: newCommentsTodo.value,
|
||||||
|
});
|
||||||
|
addRow.value = false;
|
||||||
|
await getPOTTodosById();
|
||||||
|
newAssetTodo.value = '';
|
||||||
|
newTaskTodo.value = '';
|
||||||
|
newCommentsTodo.value = '';
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err.response.statusText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// add new row for the template checklist
|
||||||
|
const addChecklistRow = async () => {
|
||||||
|
await getConfigItemsFromClient();
|
||||||
|
if (addRow.value) {
|
||||||
|
alert('Please confirm the last added row first.')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
addRow.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
//get all production order templates
|
//get all production order templates
|
||||||
@ -117,9 +353,74 @@ const triggerBackendCallsWithDelay = async (fetchDataFunc) => {
|
|||||||
}, 1000);
|
}, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
// get production order template todos from id
|
||||||
triggerBackendCallsWithDelay(getProductionOrderTemplates);
|
const getPOTTodosById = async () => {
|
||||||
|
if (!addBool.value) {
|
||||||
|
try {
|
||||||
|
const response = await Axios.get(
|
||||||
|
`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getTodosProductionOrderTemplate/${chosenPOTId.value}`
|
||||||
|
);
|
||||||
|
potTodos.value = response.data;
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err.response.statusText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//get all config items from the selected client
|
||||||
|
const getConfigItemsFromClient = async () => {
|
||||||
|
if (!addBool.value) {
|
||||||
|
try {
|
||||||
|
const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getCIFromClient/${pot.value.customerID}`);
|
||||||
|
configItemList.value = response.data;
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err.response.statusText);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
const response = await Axios.get(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getCIFromClient/${changedClientId.value}`);
|
||||||
|
configItemList.value = response.data;
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err.response.statusText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (clientChanged.value) {
|
||||||
|
store.commit('toggleClientChanged');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// get production order template from id
|
||||||
|
const getPOTById = async () => {
|
||||||
|
if (!addBool.value) {
|
||||||
|
try {
|
||||||
|
const response = await Axios.get(
|
||||||
|
`https://${clientsideConfig.url}:${clientsideConfig.port}/api/getProductionOrderTemplate/${chosenPOTId.value}`
|
||||||
|
);
|
||||||
|
pot.value = response.data;
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err.response.statusText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await getConfigItemsFromClient();
|
||||||
|
}
|
||||||
|
|
||||||
|
const deletePOTTodo = async (id) => {
|
||||||
|
if (confirm("Do you really want to delete this production order template todo? It cannot be undone!")) {
|
||||||
|
try {
|
||||||
|
await Axios.delete(`https://${clientsideConfig.url}:${clientsideConfig.port}/api/deletePOTTodo/${id}`);
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err.response.statusText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await getPOTTodosById();
|
||||||
|
}
|
||||||
|
|
||||||
|
watch(clientChanged, getPOTById);
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getPOTTodosById();
|
||||||
|
getPOTById();
|
||||||
|
triggerBackendCallsWithDelay(getProductionOrderTemplates);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -133,25 +434,53 @@ export default {
|
|||||||
<style scoped>
|
<style scoped>
|
||||||
.data {
|
.data {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: row;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
justify-content: center;
|
padding: 0 0.625rem;
|
||||||
align-self: stretch;
|
border-radius: 0.3125rem;
|
||||||
width: 100%;
|
box-shadow: 0.0625rem 0.0625rem 0.25rem 0rem rgba(0, 0, 0, 0.25) inset;
|
||||||
padding: 1.25rem 1.875rem;
|
letter-spacing: 5%;
|
||||||
gap: 1.25rem;
|
font: 400 0.75rem/250% Overpass, sans-serif;
|
||||||
border-radius: 0.625rem;
|
|
||||||
box-shadow: 0.25rem 0.25rem 0.25rem 0rem rgba(0, 0, 0, 0.25);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.div-darkmode {
|
.section-darkmode {
|
||||||
background-color: #2c2c2c;
|
background-color: #2c2c2c;
|
||||||
}
|
}
|
||||||
|
|
||||||
.div-lightmode {
|
.section-lightmode {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.data-darkmode {
|
||||||
|
background-color: #212121;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.data-lightmode {
|
||||||
|
background-color: #EBEBEB;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select-darkmode {
|
||||||
|
border: none;
|
||||||
|
color: white;
|
||||||
|
background: #212121;
|
||||||
|
padding: 0.4rem;
|
||||||
|
border-radius: 0.3125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select-lightmode {
|
||||||
|
border: none;
|
||||||
|
color: black;
|
||||||
|
background: #EBEBEB;
|
||||||
|
padding: 0.4rem;
|
||||||
|
border-radius: 0.3125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
.data-table {
|
.data-table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 0 0.625rem;
|
padding: 0 0.625rem;
|
||||||
@ -209,6 +538,16 @@ th {
|
|||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.template-checklist-information {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 1.25rem 1.875rem;
|
||||||
|
border-radius: 0.625rem;
|
||||||
|
box-shadow: 0.25rem 0.25rem 0.25rem 0rem rgba(0, 0, 0, 0.25);
|
||||||
|
}
|
||||||
|
|
||||||
.Step {
|
.Step {
|
||||||
width: 8%;
|
width: 8%;
|
||||||
}
|
}
|
||||||
@ -247,6 +586,7 @@ th {
|
|||||||
|
|
||||||
.Comments {
|
.Comments {
|
||||||
width: 35%;
|
width: 35%;
|
||||||
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.label {
|
.label {
|
||||||
@ -268,6 +608,29 @@ th {
|
|||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.editPOTTodos-darkmode {
|
||||||
|
background: #2c2c2c;
|
||||||
|
color: #fff;
|
||||||
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
|
border: none;
|
||||||
|
padding: 0.825rem 0.7rem;
|
||||||
|
width: 4%;
|
||||||
|
border-radius: 0.625rem;
|
||||||
|
box-shadow: 0.25rem 0.25rem 0.25rem 0rem rgba(0, 0, 0, 0.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.savePOTTodos-darkmode {
|
||||||
|
background: #212121;
|
||||||
|
color: #fff;
|
||||||
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0.625rem;
|
||||||
|
margin-left: 10rem;
|
||||||
|
padding-left: 0.9rem;
|
||||||
|
padding-right: 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
.saveNewPOT-darkmode {
|
.saveNewPOT-darkmode {
|
||||||
background: #2c2c2c;
|
background: #2c2c2c;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@ -279,6 +642,73 @@ th {
|
|||||||
box-shadow: 0.25rem 0.25rem 0.25rem 0rem rgba(0, 0, 0, 0.25);
|
box-shadow: 0.25rem 0.25rem 0.25rem 0rem rgba(0, 0, 0, 0.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.deletePOTTodos-darkmode {
|
||||||
|
background: #212121;
|
||||||
|
color: #fff;
|
||||||
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0.625rem;
|
||||||
|
margin-left: 15.8rem;
|
||||||
|
padding-left: 0.9rem;
|
||||||
|
padding-right: 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.deleteLastPOTTodos-darkmode {
|
||||||
|
background: #212121;
|
||||||
|
color: #fff;
|
||||||
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0.625rem;
|
||||||
|
margin-left: 2rem;
|
||||||
|
padding-left: 0.9rem;
|
||||||
|
padding-right: 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.editPOTTodos-lightmode {
|
||||||
|
background: #EBEBEB;
|
||||||
|
color: #212121;
|
||||||
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
|
border: none;
|
||||||
|
margin-left: 15rem;
|
||||||
|
padding-left: 0.9rem;
|
||||||
|
padding-right: 0.9rem;
|
||||||
|
border-radius: 0.625rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.savePOTTodos-lightmode {
|
||||||
|
background: #EBEBEB;
|
||||||
|
color: #212121;
|
||||||
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0.625rem;
|
||||||
|
margin-left: 10rem;
|
||||||
|
padding-left: 0.9rem;
|
||||||
|
padding-right: 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.deletePOTTodos-lightmode {
|
||||||
|
background: #EBEBEB;
|
||||||
|
color: #212121;
|
||||||
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0.625rem;
|
||||||
|
margin-left: 15.8rem;
|
||||||
|
padding-left: 0.9rem;
|
||||||
|
padding-right: 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.deleteLastPOTTodos-lightmode {
|
||||||
|
background: #EBEBEB;
|
||||||
|
color: #212121;
|
||||||
|
font: 400 0.875rem/1.875rem Overpass, sans-serif;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0.625rem;
|
||||||
|
margin-left: 2rem;
|
||||||
|
padding-left: 0.9rem;
|
||||||
|
padding-right: 0.9rem;
|
||||||
|
}
|
||||||
|
|
||||||
.saveNewPOT-lightmode {
|
.saveNewPOT-lightmode {
|
||||||
background: #EBEBEB;
|
background: #EBEBEB;
|
||||||
color: #212121;
|
color: #212121;
|
||||||
@ -290,11 +720,21 @@ th {
|
|||||||
box-shadow: 0.25rem 0.25rem 0.25rem 0rem rgba(0, 0, 0, 0.25);
|
box-shadow: 0.25rem 0.25rem 0.25rem 0rem rgba(0, 0, 0, 0.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.deletePOTTodos-darkmode:hover,
|
||||||
|
.deleteLastPOTTodos-darkmode:hover,
|
||||||
|
|
||||||
|
.savePOTTodos-darkmode:hover,
|
||||||
|
.editPOTTodos-darkmode:hover,
|
||||||
.saveNewPOT-darkmode:hover {
|
.saveNewPOT-darkmode:hover {
|
||||||
background-color: #444444;
|
background-color: #444444;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.deletePOTTodos-lightmode:hover,
|
||||||
|
.deleteLastPOTTodos-lightmode:hover,
|
||||||
|
|
||||||
|
.savePOTTodos-lightmode:hover,
|
||||||
|
.editPOTTodos-lightmode:hover,
|
||||||
.saveNewPOT-lightmode:hover {
|
.saveNewPOT-lightmode:hover {
|
||||||
background-color: #ACACAC;
|
background-color: #ACACAC;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@ -303,4 +743,8 @@ th {
|
|||||||
#saveNewPOT {
|
#saveNewPOT {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#editPOTTodos {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<mxfile host="Electron" modified="2024-02-01T15:29:10.628Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.0.3 Chrome/114.0.5735.289 Electron/25.8.4 Safari/537.36" etag="R4sGFqNy6FSLZX5LoMO_" version="22.0.3" type="device" pages="2">
|
<mxfile host="Electron" modified="2024-02-14T10:28:35.536Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.0.3 Chrome/114.0.5735.289 Electron/25.8.4 Safari/537.36" etag="_zOGEdVgp7g5JHBy-mYE" version="22.0.3" type="device" pages="2">
|
||||||
<diagram name="Seite-1" id="VLuSDTVFFHJCdRpH-1WC">
|
<diagram name="Seite-1" id="VLuSDTVFFHJCdRpH-1WC">
|
||||||
<mxGraphModel dx="246" dy="2876" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
<mxGraphModel dx="393" dy="2849" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||||
<root>
|
<root>
|
||||||
<mxCell id="0" />
|
<mxCell id="0" />
|
||||||
<mxCell id="1" parent="0" />
|
<mxCell id="1" parent="0" />
|
||||||
@ -62,7 +62,7 @@
|
|||||||
<mxGeometry y="240" width="140" height="30" as="geometry" />
|
<mxGeometry y="240" width="140" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="DauqCNUrC7Z9yIe88X-r-29" value="changeDB" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#00CC00;" parent="1" vertex="1">
|
<mxCell id="DauqCNUrC7Z9yIe88X-r-29" value="changeDB" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#00CC00;" parent="1" vertex="1">
|
||||||
<mxGeometry x="75" y="-560" width="140" height="840" as="geometry" />
|
<mxGeometry x="75" y="-560" width="140" height="870" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="DauqCNUrC7Z9yIe88X-r-67" value="primaryID*" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
<mxCell id="DauqCNUrC7Z9yIe88X-r-67" value="primaryID*" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
||||||
<mxGeometry y="30" width="140" height="30" as="geometry" />
|
<mxGeometry y="30" width="140" height="30" as="geometry" />
|
||||||
@ -130,21 +130,24 @@
|
|||||||
<mxCell id="DauqCNUrC7Z9yIe88X-r-63" value="version" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
<mxCell id="DauqCNUrC7Z9yIe88X-r-63" value="version" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
||||||
<mxGeometry y="660" width="140" height="30" as="geometry" />
|
<mxGeometry y="660" width="140" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="qbUp6gtjYndA0fy5zK6_-1" value="networkBool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
<mxCell id="-qW6OXXOOqjT1X6LnSAE-1" value="license" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
||||||
<mxGeometry y="690" width="140" height="30" as="geometry" />
|
<mxGeometry y="690" width="140" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="DauqCNUrC7Z9yIe88X-r-53" value="IPv4" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
<mxCell id="qbUp6gtjYndA0fy5zK6_-1" value="networkBool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
||||||
<mxGeometry y="720" width="140" height="30" as="geometry" />
|
<mxGeometry y="720" width="140" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="DauqCNUrC7Z9yIe88X-r-56" value="IPv6" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
<mxCell id="DauqCNUrC7Z9yIe88X-r-53" value="IPv4" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
||||||
<mxGeometry y="750" width="140" height="30" as="geometry" />
|
<mxGeometry y="750" width="140" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="DauqCNUrC7Z9yIe88X-r-54" value="MAC" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
<mxCell id="DauqCNUrC7Z9yIe88X-r-56" value="IPv6" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
||||||
<mxGeometry y="780" width="140" height="30" as="geometry" />
|
<mxGeometry y="780" width="140" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="DauqCNUrC7Z9yIe88X-r-55" value="subnetmask" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
<mxCell id="DauqCNUrC7Z9yIe88X-r-54" value="MAC" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
||||||
<mxGeometry y="810" width="140" height="30" as="geometry" />
|
<mxGeometry y="810" width="140" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
|
<mxCell id="DauqCNUrC7Z9yIe88X-r-55" value="subnetmask" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="DauqCNUrC7Z9yIe88X-r-29" vertex="1">
|
||||||
|
<mxGeometry y="840" width="140" height="30" as="geometry" />
|
||||||
|
</mxCell>
|
||||||
<mxCell id="DauqCNUrC7Z9yIe88X-r-33" value="productionOrders" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#009900;" parent="1" vertex="1">
|
<mxCell id="DauqCNUrC7Z9yIe88X-r-33" value="productionOrders" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;fillColor=#009900;" parent="1" vertex="1">
|
||||||
<mxGeometry x="920" y="-85" width="140" height="450" as="geometry" />
|
<mxGeometry x="920" y="-85" width="140" height="450" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
|
|||||||
974
documentation/.$Datenbankmodell.drawio.dtmp
Normal file
974
documentation/.$Datenbankmodell.drawio.dtmp
Normal file
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
|||||||
<mxfile host="Electron" modified="2024-02-14T10:28:35.536Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.0.3 Chrome/114.0.5735.289 Electron/25.8.4 Safari/537.36" etag="_zOGEdVgp7g5JHBy-mYE" version="22.0.3" type="device" pages="2">
|
<mxfile host="Electron" modified="2024-02-27T19:18:30.556Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.0.3 Chrome/114.0.5735.289 Electron/25.8.4 Safari/537.36" etag="pTIMz7977P7LLgTl7RJZ" version="22.0.3" type="device" pages="2">
|
||||||
<diagram name="Seite-1" id="VLuSDTVFFHJCdRpH-1WC">
|
<diagram name="Seite-1" id="VLuSDTVFFHJCdRpH-1WC">
|
||||||
<mxGraphModel dx="393" dy="2849" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
<mxGraphModel dx="395" dy="2842" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||||
<root>
|
<root>
|
||||||
<mxCell id="0" />
|
<mxCell id="0" />
|
||||||
<mxCell id="1" parent="0" />
|
<mxCell id="1" parent="0" />
|
||||||
@ -580,7 +580,7 @@
|
|||||||
<mxCell id="WukdXvazNq34soQIU5Al-108" value="task" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="WukdXvazNq34soQIU5Al-103" vertex="1">
|
<mxCell id="WukdXvazNq34soQIU5Al-108" value="task" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="WukdXvazNq34soQIU5Al-103" vertex="1">
|
||||||
<mxGeometry y="150" width="140" height="30" as="geometry" />
|
<mxGeometry y="150" width="140" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="WukdXvazNq34soQIU5Al-109" value="comment" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="WukdXvazNq34soQIU5Al-103" vertex="1">
|
<mxCell id="WukdXvazNq34soQIU5Al-109" value="comments" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="WukdXvazNq34soQIU5Al-103" vertex="1">
|
||||||
<mxGeometry y="180" width="140" height="30" as="geometry" />
|
<mxGeometry y="180" width="140" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="WukdXvazNq34soQIU5Al-128" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="WukdXvazNq34soQIU5Al-126" target="DauqCNUrC7Z9yIe88X-r-22" edge="1">
|
<mxCell id="WukdXvazNq34soQIU5Al-128" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="WukdXvazNq34soQIU5Al-126" target="DauqCNUrC7Z9yIe88X-r-22" edge="1">
|
||||||
|
|||||||
@ -8,6 +8,8 @@ const store = createStore({
|
|||||||
searchable: false,
|
searchable: false,
|
||||||
deleteBool: false,
|
deleteBool: false,
|
||||||
new: false,
|
new: false,
|
||||||
|
clientChanged: false,
|
||||||
|
changedClientId: -1,
|
||||||
filteredByClient: '',
|
filteredByClient: '',
|
||||||
|
|
||||||
onAssetlist: true,
|
onAssetlist: true,
|
||||||
@ -76,6 +78,13 @@ const store = createStore({
|
|||||||
}
|
}
|
||||||
state.filteredByClient = ''
|
state.filteredByClient = ''
|
||||||
},
|
},
|
||||||
|
toggleClientChanged(state) {
|
||||||
|
state.clientChanged = !state.clientChanged
|
||||||
|
},
|
||||||
|
toggleClientId(state, id) {
|
||||||
|
state.changedClientId = id
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
// functions to change the asset pages
|
// functions to change the asset pages
|
||||||
changeToAssetlist(state) {
|
changeToAssetlist(state) {
|
||||||
@ -197,6 +206,8 @@ const store = createStore({
|
|||||||
state.chosenAssetId = -1
|
state.chosenAssetId = -1
|
||||||
state.filteredByClient = ''
|
state.filteredByClient = ''
|
||||||
state.new = false
|
state.new = false
|
||||||
|
state.clientChanged = false
|
||||||
|
state.changedClientId = -1
|
||||||
|
|
||||||
// reset the asset page variables
|
// reset the asset page variables
|
||||||
state.newAssetName = ''
|
state.newAssetName = ''
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { errorMsg } from "../middleware/productionOrderTemplates";
|
import { insertId, errorMsg } from "../middleware/productionOrderTemplates";
|
||||||
import { OutgoingMessage } from 'http';
|
import { OutgoingMessage } from 'http';
|
||||||
|
|
||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
@ -18,4 +18,5 @@ export default defineEventHandler(async (event) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setResponseStatus(event, 200)
|
setResponseStatus(event, 200)
|
||||||
|
return insertId
|
||||||
})
|
})
|
||||||
|
|||||||
21
server/api/addTodoPOT.ts
Normal file
21
server/api/addTodoPOT.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import { errorMsg } from "../middleware/productionOrderTemplates";
|
||||||
|
import { OutgoingMessage } from 'http';
|
||||||
|
|
||||||
|
export default defineEventHandler(async (event) => {
|
||||||
|
|
||||||
|
const headers: Record<string, Parameters<OutgoingMessage['setHeader']>[1]> = {
|
||||||
|
'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de',
|
||||||
|
'Access-Control-Allow-Headers': 'authorization, content-type',
|
||||||
|
'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE',
|
||||||
|
};
|
||||||
|
setResponseHeaders(event, headers)
|
||||||
|
|
||||||
|
if (!(errorMsg === '')) {
|
||||||
|
throw createError({
|
||||||
|
statusCode: 400,
|
||||||
|
statusMessage: errorMsg,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
setResponseStatus(event, 200)
|
||||||
|
})
|
||||||
22
server/api/deletePOTTodo/[id].ts
Normal file
22
server/api/deletePOTTodo/[id].ts
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import { errorMsg } from "../../middleware/productionOrderTemplates";
|
||||||
|
import { OutgoingMessage } from 'http';
|
||||||
|
|
||||||
|
export default defineEventHandler(async (event) => {
|
||||||
|
|
||||||
|
const headers: Record<string, Parameters<OutgoingMessage['setHeader']>[1]> = {
|
||||||
|
'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de',
|
||||||
|
'Access-Control-Allow-Headers': 'authorization, content-type',
|
||||||
|
'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE',
|
||||||
|
};
|
||||||
|
setResponseHeaders(event, headers)
|
||||||
|
|
||||||
|
if (!(errorMsg === '')) {
|
||||||
|
throw createError({
|
||||||
|
statusCode: 400,
|
||||||
|
statusMessage: errorMsg,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
setResponseStatus(event, 200)
|
||||||
|
return
|
||||||
|
})
|
||||||
22
server/api/deleteTodosPOT/[id].ts
Normal file
22
server/api/deleteTodosPOT/[id].ts
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import { errorMsg } from "../../middleware/productionOrderTemplates";
|
||||||
|
import { OutgoingMessage } from 'http';
|
||||||
|
|
||||||
|
export default defineEventHandler(async (event) => {
|
||||||
|
|
||||||
|
const headers: Record<string, Parameters<OutgoingMessage['setHeader']>[1]> = {
|
||||||
|
'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de',
|
||||||
|
'Access-Control-Allow-Headers': 'authorization, content-type',
|
||||||
|
'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE',
|
||||||
|
};
|
||||||
|
setResponseHeaders(event, headers)
|
||||||
|
|
||||||
|
if (!(errorMsg === '')) {
|
||||||
|
throw createError({
|
||||||
|
statusCode: 400,
|
||||||
|
statusMessage: errorMsg,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
setResponseStatus(event, 200)
|
||||||
|
return
|
||||||
|
})
|
||||||
22
server/api/getCIFromClient/[id].ts
Normal file
22
server/api/getCIFromClient/[id].ts
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import { configItemsFromClient, errorMsg } from "../../middleware/configItems";
|
||||||
|
import { OutgoingMessage } from 'http';
|
||||||
|
|
||||||
|
export default defineEventHandler(async (event) => {
|
||||||
|
|
||||||
|
const headers: Record<string, Parameters<OutgoingMessage['setHeader']>[1]> = {
|
||||||
|
'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de',
|
||||||
|
'Access-Control-Allow-Headers': 'authorization, content-type',
|
||||||
|
'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE',
|
||||||
|
};
|
||||||
|
setResponseHeaders(event, headers)
|
||||||
|
|
||||||
|
if (!(errorMsg === '')) {
|
||||||
|
throw createError({
|
||||||
|
statusCode: 400,
|
||||||
|
statusMessage: errorMsg,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
setResponseStatus(event, 200)
|
||||||
|
return configItemsFromClient
|
||||||
|
})
|
||||||
22
server/api/getTodosProductionOrderTemplate/[id].ts
Normal file
22
server/api/getTodosProductionOrderTemplate/[id].ts
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import { potTodosByTemplateId, errorMsg } from "../../middleware/productionOrderTemplates";
|
||||||
|
import { OutgoingMessage } from 'http';
|
||||||
|
|
||||||
|
export default defineEventHandler(async (event) => {
|
||||||
|
|
||||||
|
const headers: Record<string, Parameters<OutgoingMessage['setHeader']>[1]> = {
|
||||||
|
'Access-Control-Allow-Origin': 'https://tueitapp.tueit.de',
|
||||||
|
'Access-Control-Allow-Headers': 'authorization, content-type',
|
||||||
|
'Access-Control-Allow-Methods': 'OPTIONS,GET,HEAD,PUT,PATCH,POST,DELETE',
|
||||||
|
};
|
||||||
|
setResponseHeaders(event, headers)
|
||||||
|
|
||||||
|
if (!(errorMsg === '')) {
|
||||||
|
throw createError({
|
||||||
|
statusCode: 400,
|
||||||
|
statusMessage: errorMsg,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
setResponseStatus(event, 200)
|
||||||
|
return potTodosByTemplateId
|
||||||
|
})
|
||||||
13
server/api/updatePOTTodo.ts
Normal file
13
server/api/updatePOTTodo.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import { errorMsg } from "../middleware/productionOrderTemplates";
|
||||||
|
|
||||||
|
export default defineEventHandler(async (event) => {
|
||||||
|
|
||||||
|
if (!(errorMsg === '')) {
|
||||||
|
throw createError({
|
||||||
|
statusCode: 400,
|
||||||
|
statusMessage: errorMsg,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
setResponseStatus(event, 200)
|
||||||
|
})
|
||||||
@ -6,6 +6,7 @@ let configItems = [];
|
|||||||
let configItem = {};
|
let configItem = {};
|
||||||
let errorMsg = '';
|
let errorMsg = '';
|
||||||
let selectedConfigItemsByClient = [];
|
let selectedConfigItemsByClient = [];
|
||||||
|
let configItemsFromClient = [];
|
||||||
let selectedConfigItemsByAsset = [];
|
let selectedConfigItemsByAsset = [];
|
||||||
|
|
||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
@ -82,6 +83,38 @@ export default defineEventHandler(async (event) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event.path.startsWith("/api/getCIFromClient")) {
|
||||||
|
// get all config items from a client from backend
|
||||||
|
let itemId = null;
|
||||||
|
const path = event._path;
|
||||||
|
const pathSegments = path.split('/');
|
||||||
|
itemId = pathSegments[pathSegments.length - 1];
|
||||||
|
|
||||||
|
try {
|
||||||
|
let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/configItemByCustomerID/${itemId}`);
|
||||||
|
configItemsFromClient = res.data;
|
||||||
|
} catch (err) {
|
||||||
|
if (axios.isAxiosError(err)) {
|
||||||
|
const axiosError = err as AxiosError;
|
||||||
|
|
||||||
|
if (axiosError.response) {
|
||||||
|
// Axios error
|
||||||
|
console.error(axiosError.response.data.message);
|
||||||
|
errorMsg = axiosError.response.data.message;
|
||||||
|
} else if (axiosError.request) {
|
||||||
|
// If error was caused by the request
|
||||||
|
console.error(axiosError.request);
|
||||||
|
} else {
|
||||||
|
// Other errors
|
||||||
|
console.error('Error', axiosError.message);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// No AxiosError
|
||||||
|
console.error('Error', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (event.path.startsWith("/api/updateConfigItem")) {
|
if (event.path.startsWith("/api/updateConfigItem")) {
|
||||||
const body = await readBody(event)
|
const body = await readBody(event)
|
||||||
// update the config item in the backend
|
// update the config item in the backend
|
||||||
@ -235,4 +268,4 @@ export default defineEventHandler(async (event) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
export { configItems, configItem, selectedConfigItemsByClient, selectedConfigItemsByAsset, errorMsg };
|
export { configItems, configItem, selectedConfigItemsByClient, selectedConfigItemsByAsset, configItemsFromClient, errorMsg };
|
||||||
@ -5,7 +5,9 @@ import https from 'https';
|
|||||||
let productionOrderTemplates = [];
|
let productionOrderTemplates = [];
|
||||||
let selectedPOTsByClient = [];
|
let selectedPOTsByClient = [];
|
||||||
let selectedPOTsByPOT = [];
|
let selectedPOTsByPOT = [];
|
||||||
|
let potTodosByTemplateId = [];
|
||||||
let pot = [];
|
let pot = [];
|
||||||
|
let insertId = -1;
|
||||||
let errorMsg = '';
|
let errorMsg = '';
|
||||||
|
|
||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
@ -51,9 +53,10 @@ export default defineEventHandler(async (event) => {
|
|||||||
|
|
||||||
if (event.path.startsWith("/api/addPOT")) {
|
if (event.path.startsWith("/api/addPOT")) {
|
||||||
const body = await readBody(event)
|
const body = await readBody(event)
|
||||||
// add the config item in the backend
|
// add the pot in the backend
|
||||||
try {
|
try {
|
||||||
let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/masterProductionOrders`, body);
|
let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/masterProductionOrders`, body);
|
||||||
|
insertId = res.data.insertId
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (axios.isAxiosError(err)) {
|
if (axios.isAxiosError(err)) {
|
||||||
const axiosError = err as AxiosError;
|
const axiosError = err as AxiosError;
|
||||||
@ -232,6 +235,158 @@ export default defineEventHandler(async (event) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event.path.startsWith("/api/getTodosProductionOrderTemplate")) {
|
||||||
|
// get production order template todos object from backend
|
||||||
|
let itemId = null;
|
||||||
|
const path = event._path;
|
||||||
|
const pathSegments = path.split('/');
|
||||||
|
itemId = pathSegments[pathSegments.length - 1];
|
||||||
|
|
||||||
|
try {
|
||||||
|
let res = await axiosInstance.get(`https://${serversideConfig.url}:${serversideConfig.port}/masterProductionOrderTodos/${itemId}`);
|
||||||
|
potTodosByTemplateId = res.data;
|
||||||
|
} catch (err) {
|
||||||
|
if (axios.isAxiosError(err)) {
|
||||||
|
const axiosError = err as AxiosError;
|
||||||
|
|
||||||
|
if (axiosError.response) {
|
||||||
|
// Axios error
|
||||||
|
console.error(axiosError.response.data.message);
|
||||||
|
errorMsg = axiosError.response.data.message;
|
||||||
|
} else if (axiosError.request) {
|
||||||
|
// If error was caused by the request
|
||||||
|
console.error(axiosError.request);
|
||||||
|
} else {
|
||||||
|
// Other errors
|
||||||
|
console.error('Error', axiosError.message);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// No AxiosError
|
||||||
|
console.error('Error', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.path.startsWith("/api/addTodoPOT")) {
|
||||||
|
const body = await readBody(event)
|
||||||
|
// add the pot todo in the backend
|
||||||
|
try {
|
||||||
|
let res = await axiosInstance.post(`https://${serversideConfig.url}:${serversideConfig.port}/masterProductionOrderTodos`, body);
|
||||||
|
} catch (err) {
|
||||||
|
if (axios.isAxiosError(err)) {
|
||||||
|
const axiosError = err as AxiosError;
|
||||||
|
|
||||||
|
if (axiosError.response) {
|
||||||
|
// Axios error
|
||||||
|
console.error(axiosError.response.data.message);
|
||||||
|
errorMsg = axiosError.response.data.message;
|
||||||
|
} else if (axiosError.request) {
|
||||||
|
console.log(err)
|
||||||
|
// If error was caused by the request
|
||||||
|
console.error(axiosError.request);
|
||||||
|
} else {
|
||||||
|
// Other errors
|
||||||
|
console.error('Error', axiosError.message);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// No AxiosError
|
||||||
|
console.error('Error', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.path.startsWith("/api/updatePOTTodo")) {
|
||||||
|
const body = await readBody(event)
|
||||||
|
// update the production order template todo in the backend
|
||||||
|
try {
|
||||||
|
let res = await axiosInstance.put(`https://${serversideConfig.url}:${serversideConfig.port}/masterProductionOrderTodos`, body);
|
||||||
|
} catch (err) {
|
||||||
|
if (axios.isAxiosError(err)) {
|
||||||
|
const axiosError = err as AxiosError;
|
||||||
|
|
||||||
|
if (axiosError.response) {
|
||||||
|
// Axios error
|
||||||
|
console.error(axiosError.response.data.message);
|
||||||
|
errorMsg = axiosError.response.data.message;
|
||||||
|
} else if (axiosError.request) {
|
||||||
|
console.log(err)
|
||||||
|
// If error was caused by the request
|
||||||
|
console.error(axiosError.request);
|
||||||
|
} else {
|
||||||
|
// Other errors
|
||||||
|
console.error('Error', axiosError.message);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// No AxiosError
|
||||||
|
console.error('Error', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.path.startsWith("/api/deleteTodosPOT")) {
|
||||||
|
let potId = null;
|
||||||
|
const path = event._path;
|
||||||
|
const pathSegments = path.split('/');
|
||||||
|
potId = pathSegments[pathSegments.length - 1];
|
||||||
|
|
||||||
|
// delete the pot in the backend
|
||||||
|
try {
|
||||||
|
let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/masterProductionOrderTodosByTemplateid/${potId}`);
|
||||||
|
} catch (err) {
|
||||||
|
if (axios.isAxiosError(err)) {
|
||||||
|
const axiosError = err as AxiosError;
|
||||||
|
|
||||||
|
if (axiosError.response) {
|
||||||
|
// Axios error
|
||||||
|
console.error(axiosError.response.data.message);
|
||||||
|
errorMsg = axiosError.response.data.message;
|
||||||
|
} else if (axiosError.request) {
|
||||||
|
console.log(err)
|
||||||
|
// If error was caused by the request
|
||||||
|
console.error(axiosError.request);
|
||||||
|
} else {
|
||||||
|
// Other errors
|
||||||
|
console.error('Error', axiosError.message);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// No AxiosError
|
||||||
|
console.error('Error', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.path.startsWith("/api/deletePOTTodo")) {
|
||||||
|
let potId = null;
|
||||||
|
const path = event._path;
|
||||||
|
const pathSegments = path.split('/');
|
||||||
|
potId = pathSegments[pathSegments.length - 1];
|
||||||
|
|
||||||
|
// delete the pot in the backend
|
||||||
|
try {
|
||||||
|
let res = await axiosInstance.delete(`https://${serversideConfig.url}:${serversideConfig.port}/masterProductionOrderTodos/${potId}`);
|
||||||
|
} catch (err) {
|
||||||
|
if (axios.isAxiosError(err)) {
|
||||||
|
const axiosError = err as AxiosError;
|
||||||
|
|
||||||
|
if (axiosError.response) {
|
||||||
|
// Axios error
|
||||||
|
console.error(axiosError.response.data.message);
|
||||||
|
errorMsg = axiosError.response.data.message;
|
||||||
|
} else if (axiosError.request) {
|
||||||
|
console.log(err)
|
||||||
|
// If error was caused by the request
|
||||||
|
console.error(axiosError.request);
|
||||||
|
} else {
|
||||||
|
// Other errors
|
||||||
|
console.error('Error', axiosError.message);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// No AxiosError
|
||||||
|
console.error('Error', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
export { productionOrderTemplates, selectedPOTsByClient, selectedPOTsByPOT, pot, errorMsg };
|
export { productionOrderTemplates, selectedPOTsByClient, selectedPOTsByPOT, pot, potTodosByTemplateId, insertId, errorMsg };
|
||||||
Reference in New Issue
Block a user