diff --git a/pages/admin/agents/_agent.vue b/pages/admin/agents/_agent.vue
index cd8048b..2e5bd7a 100644
--- a/pages/admin/agents/_agent.vue
+++ b/pages/admin/agents/_agent.vue
@@ -160,6 +160,24 @@
+
+
+
+ تغییر کد نمایندگی
+
+
+
+
+
+
+
+ ثبت کد جدید
+
+
+
+
+
+
@@ -414,13 +432,14 @@ export default {
data() {
return {
title: 'مشاهده درخواست نمایندگی',
- agent: null,
+ agent: {},
agentInbox: null,
agentBr: null,
agentOpr: null,
agentPr: null,
editFiles: '',
- validation: {}
+ validation: {},
+ newAgentCode: ''
}
},
head() {
@@ -480,6 +499,11 @@ export default {
this.$nuxt.refresh()
}
},
+ mounted() {
+ if (this.agent && this.agent.agent_code) {
+ this.newAgentCode = this.agent.agent_code
+ }
+ },
methods: {
goToUpdatePage() {
const title = 'هشدار'
@@ -615,6 +639,39 @@ export default {
},
toggleEditFiles(fieldName) {
this.editFiles === fieldName ? (this.editFiles = '') : (this.editFiles = fieldName)
+ },
+ async updateAgentCode() {
+ try {
+ const title = 'هشدار'
+ const msg = 'آیا از تغییر کد نمایندگی اطمینان دارید؟'
+
+ await this.$confirm(msg, title, {
+ confirmButtonText: 'ثبت کد جدید',
+ cancelButtonText: 'لغو',
+ type: 'warning'
+ })
+
+ await this.$axios
+ .put(`/api/admin/updateAgentCode/${this.agent._id}`, { newAgentCode: this.newAgentCode })
+ .then(res => {
+ this.$message({
+ type: 'success',
+ message: res.data.message
+ })
+ this.$nuxt.refresh()
+ })
+ .catch(err => {
+ this.$message({
+ type: 'error',
+ message: err.response.data.message
+ })
+ })
+ } catch (e) {
+ this.$message({
+ type: 'warning',
+ message: 'عملیات لغو شد'
+ })
+ }
}
}
}
diff --git a/pages/admin/agents/index.vue b/pages/admin/agents/index.vue
index c5302b6..3d70eb5 100644
--- a/pages/admin/agents/index.vue
+++ b/pages/admin/agents/index.vue
@@ -122,11 +122,11 @@
:class="validation.first_name ? 'err' : null"
/>
{
+ try {
+ const { user_id } = req
+ const representation_id = req.params?.id
+ const { newAgentCode } = req.body
+
+ if (!user_id || !representation_id) return res406(res, 'invalid user id')
+ if (!newAgentCode) return res406(res, 'کد نمایندگی جدید الزامی است')
+
+ // Check if the agent code already exists in another representation
+ const existingRepresentation = await Representation.findOne({
+ agent_code: newAgentCode,
+ _id: { $ne: representation_id }
+ })
+
+ if (existingRepresentation) {
+ return res406(res, 'این کد نمایندگی قبلا برای نماینده دیگری استفاده شده است')
+ }
+
+ const representation = await Representation.findById(representation_id)
+ if (!representation) return res404(res, 'نماینده مورد نظر یافت نشد')
+
+ representation.agent_code = newAgentCode
+ representation._updatedBy = user_id
+ await representation.save()
+
+ return res.json({ message: 'کد نمایندگی با موفقیت بروزرسانی شد' })
+ } catch (e) {
+ return res500(res, e)
+ }
+ }
+]
diff --git a/server/routes/admin.js b/server/routes/admin.js
index 4fa34bd..00e69dd 100644
--- a/server/routes/admin.js
+++ b/server/routes/admin.js
@@ -231,6 +231,7 @@ router.get('/agentPr/:agent_id', hasPermission('agents'), pieceRequestController
router.put('/updateAgent/:id', hasPermission('agentUpdate'), representationController.update_representation_by_admin)
router.post('/revokeAgent/:id', hasPermission('agentUpdate'), representationController.revoke_representation_by_admin)
router.get('/revokedAgents', representationController.get_revoked_agents_for_admin)
+router.put('/updateAgentCode/:id', hasPermission('agentUpdate'), representationController.update_agent_code)
// update files
router.post(