From 43e49f96f7dcb4443ea3a287bda5d99e2a090fa8 Mon Sep 17 00:00:00 2001 From: mahyargdz Date: Tue, 27 May 2025 17:14:14 +0330 Subject: [PATCH] update the agent code for admin --- pages/admin/agents/_agent.vue | 61 +++++++++++++- pages/admin/agents/index.vue | 7 +- .../controllers/representationController.js | 82 +++++++++++++++++-- server/routes/admin.js | 1 + 4 files changed, 139 insertions(+), 12 deletions(-) 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(