ali 3 rokov pred
rodič
commit
4362a5b2ec

+ 3 - 3
src/api/models/Classroom.js

@@ -15,8 +15,7 @@ export default class ClassroomAPI extends APIRepository {
       activitySheet: '/lma/registrations/activity_sheet',
       enrollByAdmin: (classroomId, userId) => '/lma/classrooms/' + classroomId + '/enrolll?user_id=' + userId,
       dropByAdmin: (classroomId) => '/lma/classrooms/' + classroomId + '/drop',
-      createInvoice: (id) => '/lma/classrooms/' + id + '/create_invoice',
-      createInvoiceByAdmin: (classroomId, userId) => '/lma/classrooms/' + classroomId + '/create_invoice?user_id=' + userId
+      createInvoice: (id) => '/lma/classrooms/' + id + '/create_invoice'
     }
     this.CacheList = {
       base: this.name + this.APIAdresses.base,
@@ -133,7 +132,8 @@ export default class ClassroomAPI extends APIRepository {
     return this.sendRequest({
       apiMethod: 'put',
       api: this.api,
-      request: this.APIAdresses.createInvoiceByAdmin(classroomId, userId),
+      request: this.APIAdresses.createInvoice(classroomId),
+      data: { owner: userId },
       resolveCallback: (response) => {
         return new Invoice(response.data)
       },

+ 22 - 0
src/pages/Admin/Classroom/show.vue

@@ -127,6 +127,14 @@
                        :loading="dropClassroomByAdminLoading"
                        class="q-mr-md"
                        @click="dropClassroomByAdmin(inputData.props.row)" />
+                <q-btn v-if="inputData.props.row.status !== 'DROPPED_BY_ADMIN'"
+                       size="md"
+                       color="primary"
+                       outline
+                       label="ایجاد صورتحساب"
+                       :loading="createInvoiceLoading"
+                       class="q-mr-md"
+                       @click="createInvoiceVorClassroom(inputData.props.row)" />
               </div>
             </template>
             <template v-else>
@@ -211,6 +219,7 @@ export default {
     const classroomId = this.$route.params.id
     return {
       mounted: false,
+      createInvoiceLoading: false,
       classroomEntityEditKey: Date.now(),
       tab: 'classroomInfo',
       api: null,
@@ -724,6 +733,19 @@ export default {
             this.dropClassroomByAdminLoading = false
           })
       })
+    },
+    createInvoiceVorClassroom (row) {
+      const classroomId = row.classroom
+      const userId = row.owner
+      this.createInvoiceLoading = true
+      APIGateway.classroom.createInvoiceByAdmin(classroomId, userId)
+        .then((invoice) => {
+          this.$router.push({ name: 'Admin.Invoice.Show', params: { id: invoice.id } })
+          this.createInvoiceLoading = false
+        })
+        .catch(() => {
+          this.createInvoiceLoading = false
+        })
     }
   }
 }