feat: add function submit

This commit is contained in:
Methapon Metanipat 2024-10-03 14:57:14 +07:00
parent 9c34172422
commit 84f5a06874
2 changed files with 36 additions and 4 deletions

View file

@ -7,7 +7,7 @@ import { QuotationPayload, EmployeeWorker } from 'src/stores/quotations/types';
// NOTE: Import stores
import { useQuotationStore } from 'stores/quotations';
const DEFAULT_DATA: QuotationPayload & { id?: string } = {
const DEFAULT_DATA: QuotationPayload = {
productServiceList: [],
urgent: false,
customerBranchId: '',
@ -32,7 +32,9 @@ export const useQuotationForm = defineStore('form-quotation', () => {
let resetFormData = structuredClone(DEFAULT_DATA);
const currentTreeData = ref();
const currentFormData = ref<QuotationPayload>(structuredClone(resetFormData));
const currentFormData = ref<QuotationPayload & { id?: string }>(
structuredClone(resetFormData),
);
const currentFormState = ref<{
mode: null | 'info' | 'create' | 'edit';
}>({
@ -77,7 +79,17 @@ export const useQuotationForm = defineStore('form-quotation', () => {
currentFormState.value.mode = mode;
}
function submitQuotation() {
async function submitQuotation() {
if (currentFormState.value.mode === 'create') {
// await quotationStore.createQuotation();
}
if (currentFormState.value.mode === 'edit' && currentFormData.value.id) {
// await quotationStore.editQuotation({
// id: currentFormData.value.id,
// ...currentFormData.value,
// });
}
currentFormState.value.mode = 'info';
}

View file

@ -41,7 +41,18 @@ export const useQuotationStore = defineStore('quotation-store', () => {
}
async function createQuotation(payload: QuotationPayload) {
const res = await api.post('/quotation', payload);
const res = await api.post('/quotation', {
...payload,
productServiceList: payload.productServiceList.map((v) => ({
vat: v.vat,
amount: v.amount,
pricePerUnit: v.pricePerUnit,
discount: v.discount,
productId: v.product.id,
workId: v.work?.id,
serviceId: v.service?.id,
})),
});
if (res.status < 400) {
return res.data;
}
@ -51,6 +62,15 @@ export const useQuotationStore = defineStore('quotation-store', () => {
async function editQuotation(payload: QuotationPayload & { id: string }) {
const res = await api.put(`/quotation/${payload.id}`, {
...payload,
productServiceList: payload.productServiceList.map((v) => ({
vat: v.vat,
amount: v.amount,
pricePerUnit: v.pricePerUnit,
discount: v.discount,
productId: v.product.id,
workId: v.work?.id,
serviceId: v.service?.id,
})),
id: undefined,
});
if (res.status < 400) {