+
-
- {
- currentIndexDropdownList = i;
- browse();
- }
- "
- >
-
- {{ $t(v.label) }}
-
-
-
-
+ :label="$t('general.uploadFile')"
+ @click="
+ () => {
+ currentIndex = obj.length;
+ browse();
+ }
+ "
+ >
-
-
currentFile.value?.url));
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ $t(currentMode) }}
-
-
-
-
-
-
-
diff --git a/src/components/upload-file/UploadFileGroup.vue b/src/components/upload-file/UploadFileGroup.vue
new file mode 100644
index 00000000..2ea976e6
--- /dev/null
+++ b/src/components/upload-file/UploadFileGroup.vue
@@ -0,0 +1,387 @@
+
+
+
+
+
+
+
+
+ {
+ isEdit = true;
+ selectedMenu = menu?.[i];
+ currentIndex = obj.length;
+
+ browse();
+ }
+ "
+ >
+
+ {{ $t(v.label) }}
+
+
+
+
+
+
+
+
+ {
+ selectedMenu = v;
+ if (autoSave) {
+ fileList();
+ }
+ }
+ "
+ >
+
+ {{ $t(v.label) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/upload-file/index.ts b/src/components/upload-file/index.ts
index dc6ce189..abb06afb 100644
--- a/src/components/upload-file/index.ts
+++ b/src/components/upload-file/index.ts
@@ -1,2 +1,7 @@
export { default as UploadFile } from './UploadFile.vue';
+export { default as UploadFileGroup } from './UploadFileGroup.vue';
export { default as FormCitizen } from './FormCitizen.vue';
+export { default as FormTm6 } from './FormTm6.vue';
+export { default as CorpFormBusinessRegistration } from './CorpFormBusinessRegistration.vue';
+export { default as PersFormBusinessRegistration } from './PersFormBusinessRegistration.vue';
+export { default as noticeJobEmployment } from './noticeJobEmployment.vue';
diff --git a/src/components/upload-file/noticeJobEmployment.vue b/src/components/upload-file/noticeJobEmployment.vue
new file mode 100644
index 00000000..e2c1eca6
--- /dev/null
+++ b/src/components/upload-file/noticeJobEmployment.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/css/app.scss b/src/css/app.scss
index 6b9f7e27..d0ea4d2c 100644
--- a/src/css/app.scss
+++ b/src/css/app.scss
@@ -19,8 +19,8 @@ html {
--surface-tab: var(--gray-2);
- --text-mute: var(--stone-5-hsl);
- --text-mute-2: var(--stone-7-hsl);
+ --text-mute: var(--stone-7-hsl);
+ --text-mute-2: var(--stone-8-hsl);
--info-fg: 0 0% 100%;
--info-bg: var(--blue-6-hsl);
diff --git a/src/css/quasar.variables.scss b/src/css/quasar.variables.scss
index d2269435..5ffe90d4 100644
--- a/src/css/quasar.variables.scss
+++ b/src/css/quasar.variables.scss
@@ -15,6 +15,7 @@ $info: var(--blue-6);
$warning: #ffc224;
$disabled: var(--stone-4);
+$input-border: var(--gray-2);
$separator-color: var(--border-color);
$separator-dark-color: var(--border-color);
@@ -94,6 +95,21 @@ div.fullscreen.q-drawer__backdrop {
color: $disabled;
}
+.input-border,
+.input-border *,
+[input-border],
+[input-border] * :not(:deep(.q-checkbox)) {
+ color: hsl(var(--text-mute)) !important;
+}
+
+.bg-input-border {
+ background: $input-border;
+}
+
+.text-input-border {
+ color: $input-border;
+}
+
.q-field--outlined.q-field--readonly .q-field__control:before {
border-color: transparent;
}
@@ -133,3 +149,11 @@ div.fullscreen.q-drawer__backdrop {
.q-tree__node-header:before {
top: -32px !important;
}
+
+.q-tree.q-tree--standard.text-transparent {
+ color: hsl(var(--text-mute)) !important;
+}
+
+.q-field__control {
+ align-items: center;
+}
diff --git a/src/i18n/eng/index.ts b/src/i18n/eng/index.ts
index b0dce118..49b3ba09 100644
--- a/src/i18n/eng/index.ts
+++ b/src/i18n/eng/index.ts
@@ -44,17 +44,42 @@ export default {
recordPerPage: 'Records per page',
recordsPage: 'Showing {resultcurrentPage} out of {total} records',
day: 'Days',
- select: 'Select',
+ select: 'Select {msg}',
selectAll: 'Select All',
additional: 'Additional',
editImage: 'Edit Image',
- upload: 'Upload',
+ upload: 'Upload{msg}',
baseOnDevice: 'Base on Device',
clickToCreate: 'Click to create',
age: 'Age',
nationality: 'Nationalality',
times: 'No. {number}',
uploadFile: 'Upload File',
+ typeBranch: 'Branch Type',
+ branchStatus: 'Branch Status',
+ success: 'Success',
+ taxNo: 'Legal Person',
+ contactName: 'Contact Name',
+ image: 'Image of ',
+ apply: 'Apply',
+ licenseNumber: 'License number',
+ dateOfIssue: 'Date of issue',
+ expirationDate: 'Expiration date',
+ document: 'Document',
+ uploadDate: 'Upload Date',
+ information: '{msg} Information',
+ itemNo: '{msg} No.',
+ example: 'Example',
+ view: 'View {msg}',
+ attachment: 'Attachment',
+ about: 'About',
+ total: 'Total',
+ discount: 'Discount',
+ totalAfterDiscount: 'Total after discount',
+ totalVatExcluded: 'Tax exemption amount',
+ totalVatIncluded: 'Taxable amount',
+ vat: 'VAT {msg}',
+ totalAmount: 'Total amount',
},
menu: {
@@ -102,6 +127,27 @@ export default {
},
form: {
+ tm6: {
+ transportation: 'Flight/Vehicle',
+ travelDate: 'Date of Entry',
+ entryCheckpoint: 'Point of Entry',
+ entryCardNumber: 'Entry Card Number',
+ },
+ businessRegistration: {
+ registrationNumber: 'Registration Number',
+ requestAt: 'Request At',
+ businessRegistration: 'Business Registration',
+ businessType: 'Business Type',
+ businessName: 'Name Used for Business',
+ romanCharacters: 'Roman Characters',
+ },
+ noticeJobEmployment: {
+ permitNumber: 'Work Permit Number',
+ jobDescription: 'Job Description',
+ workplace: 'Workplace',
+ dateOfHire: 'Date of Hire',
+ },
+
title: {
info: '{name}',
create: 'Create {name}',
@@ -116,8 +162,13 @@ export default {
telephone: 'Telephone',
gender: 'Gender',
address: 'Address {suffix}',
+ addressNo: 'Address No.',
+ moo: 'Moo',
+ soi: 'Soi',
+ road: 'Road',
province: 'Province',
district: 'District',
+ fullAddress: 'Full Address',
subDistrict: 'Sub-district',
zipCode: 'Zip Code',
prefixName: 'Prefix',
@@ -135,7 +186,10 @@ export default {
please: 'Please enter {msg} correct information.',
invalid: 'Invalid value.',
invalidCustomeMessage: 'Invalid value. {msg}',
+ letterOnly: 'Only letters are allowed',
letterAndNumOnly: 'Only letters and number are allowed',
+ numOnly: 'Only number are allowed',
+ requireLength: 'Please enter {msg} character',
},
warning: {
title: 'Warning {msg}',
@@ -162,14 +216,19 @@ export default {
branch: {
office: 'Office',
+ allBranch: 'All Branch',
card: {
+ office: 'Office',
orderNumber: 'No.',
branchLabelName: 'Name',
branchLabelAddress: 'Address',
branchLabelTel: 'Telephone',
branchLabelType: 'Type',
+ branchVirtual: 'Service Point',
branchLabel: 'Branch',
branchHQLabel: 'Headoffice',
+ taxNo: 'Legal Person',
+ contactName: 'Contact Name',
},
page: {
captionManage: 'Manage',
@@ -247,6 +306,9 @@ export default {
checkpoint: 'Checkpoint',
checkpointEN: 'Checkpoint (EN)',
attachment: 'Attachment Document',
+ citizenId: 'Citizen ID',
+ citizenIssue: 'Citizen Issue',
+ citizenExpire: 'Citizen Expire',
},
},
customer: {
@@ -283,8 +345,8 @@ export default {
issueDate: 'Issue Date',
passportExpiryDate: 'Passport Expiry Date',
- firstName: 'First Name in Thai',
- lastName: 'Last Name in Thai',
+ firstName: 'First Name ',
+ lastName: 'Last Name ',
firstNameEN: 'First Name in English',
lastNameEN: 'Last Name in English',
@@ -318,6 +380,7 @@ export default {
},
headQuarters: {
title: 'Headoffice',
+ telephoneNo: 'Headoffice Telephone',
},
businessType: 'Business Type',
businessTypeEN: 'Business Type (EN)',
@@ -327,17 +390,24 @@ export default {
payDay: 'Pay Day',
payRate: 'Pay Rate',
salesPerson: 'Sales Person',
+ employerName: 'Employer Name',
+ employmentOffice: 'Employment Office',
+ homeCode: 'Address Identification (11 characters)',
+ agent: 'Agent',
},
table: {
orderNumber: 'No.',
fullname: 'Full Name',
+ titleName: 'Name',
businessTypePure: 'Business Type',
+ jobPosition: 'Job Position',
address: 'Address',
workPlace: 'Workplace',
contactName: 'Contact Name',
contactPhone: 'Contact Phone',
totalEmployee: 'Total Employee',
+ officeTel: 'Headoffice Telephone',
},
},
@@ -437,6 +507,8 @@ export default {
business: 'Business',
contact: 'Contact',
attachment: 'Upload Document',
+ remark: 'remark',
+ authorized: 'Authorized',
},
form: {
title: 'Branch',
@@ -471,42 +543,82 @@ export default {
name: 'Products and Services Types Name',
},
service: {
- title: 'Services',
+ title: 'Type',
totalWork: 'Total Work',
- code: 'Services Code',
- name: 'Services Name',
+ code: 'Type Code',
+ name: 'Type Name',
work: 'Work',
workName: 'Work Name',
showTotalPrice: 'Show Total Price',
- addTitle: 'Add Services',
+ addTitle: 'Add Type',
registeredBranch: 'Registered Branch',
- information: 'Services Information',
+ information: 'Type Information',
workInformation: 'Work Information',
- serviceProperties: 'Services Properties',
+ serviceProperties: 'Type Properties',
propertiesName: 'Properties Name',
properties: 'Properties',
noProperties: 'No Properties',
propertiesInWork: 'Properties in work',
- productInWork: 'Products in work',
- totalProductWork: 'Total products of work',
+ productInWork: 'Products and Services in work',
+ totalProductWork: 'Total products and services of work',
list: 'Item',
addWork: 'Add Work',
workAlreadyExist: 'Work already exist',
},
product: {
- title: 'Products',
- code: 'Products Code',
- name: 'Products Name',
+ title: 'Products and Services',
+ code: 'Products and Services Code',
+ name: 'Products and Services Name',
registeredBranch: 'Registered Branch',
- noProduct: 'No Products',
- allProduct: 'All Products',
- addTitle: 'Add Products',
+ noProduct: 'No Products and Services',
+ allProduct: 'All Products and Services',
+ addTitle: 'Add Products and Services',
processingTime: 'Processing Time',
processingTimeDay: 'Processing Time (Days)',
priceInformation: 'Price Information',
salePrice: 'Sale Price',
agentPrice: 'Agent Price',
processingPrice: 'Processing Price',
+ expenseType: 'Expense Type',
+ vatIncluded: 'Include VAT',
+ vatExcluded: 'Exclude VAT',
+ vat: 'VAT',
+ },
+ },
+
+ quotation: {
+ title: 'Quotation',
+ customerName: 'Customer Name',
+ actor: 'Actor',
+ totalPrice: 'Total (Baht)',
+ receipt: 'Receipt/Tax Invoice',
+ branch: 'Branch that issues the quotation',
+ customer: 'Customer',
+ newCustomer: 'New Customer',
+ employeeList: 'Employee List',
+ employee: 'Employee',
+ workName: 'Work Name',
+ contactName: 'Contact Name',
+ documentReceivePoint: 'Document Drop-Off Point"',
+ dueDate: 'Quotation Due Date',
+
+ paymentCondition: 'Payment Terms',
+ payType: 'Payment Methods',
+ bank: 'Select Payment Account',
+ paySplitCount: 'Number of Installments',
+ payTotal: 'Total {msg}',
+
+ summary: 'Total Summary',
+ periodNo: 'Installment No."',
+ amount: 'Amount',
+ payDueDate: 'Pay Due Date',
+ callDueDate: 'Call Due Date',
+ type: {
+ all: 'All',
+ fullAmountCash: 'Full Amount Cash',
+ installmentsCash: 'Installments Cash',
+ fullAmountBill: 'Full Amount Bill',
+ installmentsBill: 'Installments Bill',
},
},
@@ -519,6 +631,7 @@ export default {
confirmLogout: 'Confirm Logout',
},
message: {
+ beingUse: '"{msg}" is being used.',
incompleteDataEntry: 'Incomplete data entry on {tap} page',
confirmChangeStatusOn: 'Do you want to open?',
confirmChangeStatusOff: 'Do you want to close?',
@@ -594,6 +707,7 @@ export default {
validateError: 'Validate Error',
codeMisMatch: 'Code Mismatch',
userExists: 'User already exits.',
+ crossCompanyNotPermit: 'Cannot move between different headoffice',
},
},
};
diff --git a/src/i18n/tha/index.ts b/src/i18n/tha/index.ts
index dce5417a..78df3170 100644
--- a/src/i18n/tha/index.ts
+++ b/src/i18n/tha/index.ts
@@ -44,17 +44,42 @@ export default {
recordPerPage: 'แสดงทีละ',
recordsPage: 'แสดง {resultcurrentPage} รายการจาก {total} รายการ',
day: 'วัน',
- select: 'เลือก',
+ select: 'เลือก{msg}',
selectAll: 'เลือกทั้งหมด',
additional: 'เพิ่มเติม',
editImage: 'แก้ไขรูป',
- upload: 'อัปโหลด',
+ upload: 'อัปโหลด{msg}',
baseOnDevice: 'สีตามอุปกรณ์',
clickToCreate: 'กดเพื่อสร้าง',
age: 'อายุ',
nationality: 'สัญชาติ',
times: 'ครั้งที่ {number}',
- uploadFile: 'อัปโหลดไฟล์',
+ uploadFile: 'อัปโหลดเอกสาร',
+ typeBranch: 'ประเภทสาขา',
+ branchStatus: 'สถานะสาขา',
+ success: 'สำเร็จ',
+ taxNo: 'ทะเบียนนิติบุคคล',
+ contactName: 'ติดต่อ',
+ image: 'รูปภาพ',
+ apply: 'นำไปใช้',
+ licenseNumber: 'เลขที่ใบอนุญาต',
+ dateOfIssue: 'วันที่อนุญาต',
+ expirationDate: 'วันที่หมดอายุ',
+ document: 'ชื่อเอกสาร',
+ uploadDate: 'วันที่อัปโหลด',
+ information: 'ข้อมูล{msg}',
+ itemNo: 'เลขที่{msg}',
+ example: 'ตัวอย่าง',
+ view: 'ดู{msg}',
+ attachment: 'เอกสาร',
+ about: 'เกี่ยวกับ',
+ total: 'ยอดรวม',
+ discount: 'ส่วนลด',
+ totalAfterDiscount: 'จำนวนเงินหลังหักส่วนลด',
+ totalVatExcluded: 'จำนวนเงินยกเว้นภาษี',
+ totalVatIncluded: 'จำนวนเงินที่คำนวณภาษี',
+ vat: 'ภาษีมูลค่าเพิ่ม {msg}',
+ totalAmount: 'จำนวนเงินรวมทั้งสิ้น',
},
menu: {
@@ -102,6 +127,26 @@ export default {
},
form: {
+ tm6: {
+ transportation: 'เที่ยวบิน/พาหนะ',
+ travelDate: 'วันที่เดินทางเข้ามา',
+ entryCheckpoint: 'จุดผ่านแดนที่เข้าประเทศ',
+ entryCardNumber: 'หมายเลขบัตรขาเข้า',
+ },
+ businessRegistration: {
+ registrationNumber: 'ทะเบียนเลขที่',
+ requestAt: 'คำขอที่',
+ businessRegistration: 'จดทะเบียนพาณิชย์',
+ businessType: 'ชนิดพาณิชย์',
+ businessName: 'ชื่อที่ใช้ในการประกอบพาณิชย์',
+ romanCharacters: 'อักษรโรมัน',
+ },
+ noticeJobEmployment: {
+ permitNumber: 'หมายเลขใบอนุญาตทำงาน ',
+ jobDescription: 'ลักษณะงาน',
+ workplace: 'สถานที่ทำงาน',
+ dateOfHire: 'วันที่จ้าง',
+ },
title: {
info: '{name}',
create: 'สร้าง {name}',
@@ -116,14 +161,19 @@ export default {
gender: 'เพศ',
telephone: 'เบอร์โทรศัพท์',
address: 'ที่อยู่ {suffix}',
+ addressNo: 'บ้านเลขที่',
+ moo: 'หมู่',
+ soi: 'ซอย',
+ road: 'ถนน',
province: 'จังหวัด',
district: 'อำเภอ',
+ fullAddress: 'ที่อยู่เต็ม',
subDistrict: 'ตำบล',
zipCode: 'รหัสไปรษณีย์',
prefixName: 'คํานําหน้า',
- firstName: 'ชื่อ ภาษาไทย',
+ firstName: 'ชื่อ ',
firstNameEN: 'ชื่อ ภาษาอังกฤษ',
- lastName: 'นามสกุล ภาษาไทย',
+ lastName: 'นามสกุล ',
lastNameEN: 'นามสกุล ภาษาอังกฤษ',
middleName: 'ชื่อกลาง',
middleNameEN: 'ชื่อกลาง ภาษาอังกฤษ',
@@ -135,7 +185,10 @@ export default {
please: 'โปรดใส่ข้อมูล{msg}ให้ถูกต้อง',
invalid: 'ข้อมูลไม่ถูกต้อง',
invalidCustomeMessage: 'ข้อมูลไม่ถูกต้อง {msg}',
- letterAndNumOnly: 'โปรดใช้เฉพาะภาษาอังกฤษและตัวเลขเท่านั้น',
+ letterOnly: 'โปรดใช้เฉพาะตัวอักษรภาษาอังกฤษเท่านั้น',
+ letterAndNumOnly: 'โปรดใช้เฉพาะตัวอักษรภาษาอังกฤษและตัวเลขเท่านั้น',
+ numOnly: 'โปรดใช้เฉพาะตัวเลขเท่านั้น',
+ requireLength: 'กรุณากรอกให้ครบ {msg} หลัก',
},
warning: {
title: 'แจ้งเตือน {msg}',
@@ -162,14 +215,19 @@ export default {
branch: {
office: 'สำนักงาน',
+ allBranch: 'สาขาทั้งหมด',
card: {
- orderNumber: 'เลขที่',
+ orderNumber: 'ลำดับที่',
branchLabelName: 'ชื่อ',
+ office: 'สำนักงาน',
branchLabelAddress: 'ที่อยู่',
- branchLabelTel: 'เบอร์โทรศัพท์',
+ branchLabelTel: 'เบอร์โทรสำนักงาน',
branchLabelType: 'ประเภท',
branchLabel: 'สาขา',
+ branchVirtual: 'จุดรับบริการ',
branchHQLabel: 'สำนักงานใหญ่',
+ taxNo: 'ทะเบียนนิติบุคคล',
+ contactName: 'ติดต่อ',
},
page: {
captionManage: 'จัดการ',
@@ -230,8 +288,8 @@ export default {
userType: 'ประเภทผู้ใช้งาน',
userRole: 'สิทธิ์ผู้ใช้งาน',
prefixName: 'คํานําหน้า',
- firstName: 'ชื่อ ภาษาไทย',
- lastName: 'นามสกุล ภาษาไทย',
+ firstName: 'ชื่อ ',
+ lastName: 'นามสกุล ',
firstNameEN: 'ชื่อ ภาษาอังกฤษ',
lastNameEN: 'นามสกุล ภาษาอังกฤษ',
middleName: 'ชื่อกลาง',
@@ -247,6 +305,9 @@ export default {
checkpoint: 'ด่าน',
checkpointEN: 'ด่าน ภาษาอังกฤษ',
attachment: 'เอกสารประจำตัว',
+ citizenId: 'เลขที่บัตรประชาชน',
+ citizenIssue: 'วันที่ออกบัตร',
+ citizenExpire: 'วันที่หมดอายุ',
},
},
customer: {
@@ -283,8 +344,8 @@ export default {
issueDate: 'วันที่ออกหนังสือ',
passportExpiryDate: 'วันหiมดอายุหนังสือเดินทาง',
- firstName: 'ชื่อ ภาษาไทย',
- lastName: 'นามสกุล ภาษาไทย',
+ firstName: 'ชื่อ ',
+ lastName: 'นามสกุล ',
firstNameEN: 'ชื่อ ภาษาอังกฤษ',
lastNameEN: 'นามสกุล ภาษาอังกฤษ',
@@ -318,26 +379,34 @@ export default {
},
headQuarters: {
title: 'สำนักงานใหญ่',
+ telephoneNo: 'เบอร์โทรศัพท์สำนักงาน',
},
- businessType: 'ประเภทธุรกิจ',
- businessTypeEN: 'ประเภทธุรกิจ (ภาษาอังกฤษ)',
+ businessType: 'ประเภทกิจการ',
+ businessTypeEN: 'ประเภทกิจการ (ภาษาอังกฤษ)',
jobPosition: 'ตำแหน่งงาน',
jobPositionEN: 'ตำแหน่งงาน (ภาษาอังกฤษ)',
jobDescription: 'รายละเอียดงาน',
payDay: 'วันจ่ายเงินเดือน',
- payRate: 'อัตราค่าจ้าง',
+ payRate: 'อัตราค่าจ้าง/วัน',
salesPerson: 'เจ้าหน้าที่ขาย',
+ employerName: 'ชื่อนายจ้าง',
+ employmentOffice: 'สำนักงานจัดหางาน',
+ homeCode: 'รหัสประจำบ้าน (11 หลัก)',
+ agent: 'ตัวแทน',
},
table: {
orderNumber: 'ลําดับ',
fullname: 'ชื่อ-นามสกุล',
+ titleName: 'ชื่อ บริษัท/นิติบุคคล',
businessTypePure: 'ประเภทกิจการ',
+ jobPosition: 'ตำแหน่งงาน',
address: 'ที่อยู่',
workPlace: 'สถานที่ทํางาน',
contactName: 'ชื่อผู้ติดต่อ',
contactPhone: 'โทรศัพท์ผู้ติดต่อ',
totalEmployee: 'ลูกจ้างทั้งหมด',
+ officeTel: 'เบอร์โทรสำนักงาน',
},
},
@@ -349,7 +418,7 @@ export default {
passport: 'หนังสือเดินทาง',
visa: 'วีซ่า',
healthCheck: 'ตรวจสุขภาพ',
- workHistory: 'ประวัติการทำง่าน',
+ workHistory: 'ประวัติการทำงาน',
other: 'อื่นๆ',
family: 'ครอบครัว',
},
@@ -431,10 +500,12 @@ export default {
customerBranch: {
tab: {
main: 'เกี่ยวกับ',
- address: 'ที่อยู่',
- business: 'ธุรกิจ',
- contact: 'ติดต่อ',
- attachment: 'อัปโหลดเอกสาร',
+ address: 'ที่อยู่นายจ้าง',
+ business: 'ข้อมูลธุรกิจ',
+ contact: 'ข้อมูลติดต่อ',
+ attachment: 'เอกสาร',
+ remark: 'หมายเหตุ',
+ authorized: 'ผู้มีอำนาจลงนาม',
},
form: {
title: 'สาขา',
@@ -469,42 +540,82 @@ export default {
name: 'ชื่อสินค้าและบริการ',
},
service: {
- title: 'บริการ',
+ title: 'ประเภท',
totalWork: 'งานทั้งหมด',
- code: 'รหัสบริการ',
- name: 'ชื่อบริการ',
+ code: 'รหัสประเภท',
+ name: 'ชื่อประเภท',
work: 'งาน',
workName: 'ชื่องาน',
showTotalPrice: 'แสดงราคารวม',
- addTitle: 'เพิ่มบริการ',
+ addTitle: 'เพิ่มประเภท',
registeredBranch: 'สาขาที่ลงทะเบียน',
- information: 'ข้อมูลบริการ',
+ information: 'ข้อมูลประเภท',
workInformation: 'ข้อมูลงาน',
- serviceProperties: 'คุณสมบัติของบริการ',
+ serviceProperties: 'คุณสมบัติของประเภท',
propertiesName: 'ชื่อคุณสมบัติ',
properties: 'คุณสมบัติ',
noProperties: 'ยังไม่มีคุณสมบัติ',
propertiesInWork: 'คุณสมบัติภายในงาน',
- productInWork: 'สินค้าภายในงาน',
- totalProductWork: 'รวมสินค้างาน',
+ productInWork: 'สินค้าและบริการภายในงาน',
+ totalProductWork: 'รวมสินค้าและบริการงาน',
list: 'รายการ',
addWork: 'เพิ่มงาน',
workAlreadyExist: 'งานนี้มีอยู่แล้ว',
},
product: {
- title: 'สินค้า',
- code: 'รหัสสินค้า',
- name: 'ชื่อสินค้า',
+ title: 'สินค้าและบริการ',
+ code: 'รหัสสินค้าและบริการ',
+ name: 'ชื่อสินค้าและบริการ',
registeredBranch: 'สาขาที่ลงทะเบียน',
- noProduct: 'ยังไม่มีสินค้า',
- allProduct: 'สินค้าทั้งหมด',
- addTitle: 'เพิ่มสินค้า',
+ noProduct: 'ยังไม่มีสินค้าและบริการ',
+ allProduct: 'สินค้าและบริการทั้งหมด',
+ addTitle: 'เพิ่มสินค้าและบริการ',
processingTime: 'ระยะเวลาดำเนินการ',
processingTimeDay: 'ระยะเวลาดำเนินการ (วัน)',
priceInformation: 'ข้อมูลราคา',
salePrice: 'ราคาขาย',
agentPrice: 'ราคาตัวแทน',
processingPrice: 'ราคาดำเนินการ',
+ expenseType: 'ประเภทค่าใช้จ่าย',
+ vatIncluded: 'รวม VAT',
+ vatExcluded: 'ไม่รวม VAT',
+ vat: 'คำนวณ VAT',
+ },
+ },
+
+ quotation: {
+ title: 'ใบเสนอราคา',
+ customerName: 'ชื่อลูกค้า',
+ actor: 'ผู้ที่ทำรายงาน',
+ totalPrice: 'ยอดรวมสุทธิ(บาท)',
+ receipt: 'ใบเสร็จ/กำกับภาษี',
+ branch: 'สาขาที่ออกใบเสนอราคา',
+ customer: 'ลูกค้า',
+ newCustomer: 'ลูกค้าใหม่',
+ employeeList: 'รายชื่อแรงงาน',
+ employee: 'แรงงาน',
+ workName: 'ชื่องาน',
+ contactName: 'ชื่อผู้ติดต่อ',
+ documentReceivePoint: 'จุดรับเอกสาร',
+ dueDate: 'วันครบกำหนดใบเสนอราคา',
+
+ paymentCondition: 'เงื่อนไขการชำระเงิน',
+ payType: 'วิธีการชำระเงิน',
+ bank: 'เลือกบัญชีชำระเงิน',
+ paySplitCount: 'จำนวนงวด',
+ payTotal: 'ยอดชำระ {msg}',
+
+ summary: 'สรุปยอดทั้งหมด',
+ periodNo: 'งวดที่',
+ amount: 'จำนวนเงิน',
+ payDueDate: 'วันที่กำหนดจ่าย',
+ callDueDate: 'วันที่ครบกำหนดเรียก',
+ type: {
+ all: 'ทั้งหมด',
+ fullAmountCash: 'เงินสดเต็มจำนวน',
+ installmentsCash: 'เงินสดแบ่งจ่าย',
+ fullAmountBill: 'ใบเรียกเก็บเงินเต็มจำนวน',
+ installmentsBill: 'ใบเรียกเก็บเงินแบ่งจ่าย',
},
},
@@ -517,6 +628,7 @@ export default {
confirmLogout: 'ยืนยันการออกจากระบบ',
},
message: {
+ beingUse: '"{msg}" มีการใช้งานอยู่',
incompleteDataEntry: 'กรอกข้อมูลไม่ครบในหน้า {tap}',
confirmChangeStatusOn: 'คุณต้องการเปิดใช่หรือไม่',
confirmChangeStatusOff: 'คุณต้องการปิดใช่หรือไม่',
@@ -535,16 +647,16 @@ export default {
cancel: 'ยกเลิก',
},
backend: {
- productGroupNotFound: 'ไม่พบกลุ่มสินค้า',
- productGroupInUsed: 'กลุ่มสินค้าที่ใช้งานอยู่',
- productNotFound: 'ไม่พบสินค้า',
- productInUsed: 'สินค้าใช้งานอยู่',
- productTypeNotFound: 'ไม่พบประเภทสินค้า',
- productGroupAssociatedBadReq: 'ไม่พบกลุ่มสินค้าที่เกี่ยวข้อง',
- productTypeInUsed: 'ประเภทสินค้าใช้งานอยู่',
- productGroupBadReq: 'ไม่พบกลุ่มสินค้า',
+ productGroupNotFound: 'ไม่พบกลุ่มสินค้าและบริการ',
+ productGroupInUsed: 'กลุ่มสินค้าและบริการที่ใช้งานอยู่',
+ productNotFound: 'ไม่พบสินค้าและบริการ',
+ productInUsed: 'สินค้าและบริการใช้งานอยู่',
+ productTypeNotFound: 'ไม่พบประเภทสินค้าและบริการ',
+ productGroupAssociatedBadReq: 'ไม่พบกลุ่มสินค้าและบริการที่เกี่ยวข้อง',
+ productTypeInUsed: 'ประเภทสินค้าและบริการใช้งานอยู่',
+ productGroupBadReq: 'ไม่พบกลุ่มสินค้าและบริการ',
serviceNotFound: 'ไม่พบบริการ',
- someProductBadReq: 'ไม่พบสินค้าบางส่วน',
+ someProductBadReq: 'ไม่พบสินค้าและบริการบางส่วน',
serviceInUsed: 'บริการใช้งานอยู่',
workNotFound: 'ไม่พบงาน',
workInUsed: 'งานที่ใช้งานอยู่',
@@ -589,6 +701,7 @@ export default {
validateError: 'เกิดข้อผิดพลาดจากการตรวจสอบ',
codeMisMatch: 'รหัสไม่ตรงกัน',
userExists: 'ชื่อผู้ใช้นี้มีอยู่ในระบบอยู่แล้ว',
+ crossCompanyNotPermit: 'ไม่สามารถดำเนินการระหว่างสำนักงานใหญ่อื่นได้',
},
},
};
diff --git a/src/layouts/DrawerComponent.vue b/src/layouts/DrawerComponent.vue
index a2a95a70..3291f294 100644
--- a/src/layouts/DrawerComponent.vue
+++ b/src/layouts/DrawerComponent.vue
@@ -42,7 +42,8 @@ onMounted(async () => {
role.value.includes('branch_admin') ||
role.value.includes('head_of_admin') ||
role.value.includes('system') ||
- role.value.includes('owner')
+ role.value.includes('owner') ||
+ role.value.includes('head_of_account')
? false
: true,
},
@@ -79,8 +80,8 @@ onMounted(async () => {
{
label: 'menu.quotation',
icon: 'mdi-file-document',
- route: '',
- disabled: true,
+ route: '/quotation',
+ disabled: false,
},
{
label: 'menu.requestList',
@@ -181,10 +182,11 @@ function branchSetting() {}