Blame view

src/pages/Account/paymentHistory.vue 9.11 KB
687e0b929   Neeraj Sharma   add user,attenden...
1
  <template>
68d742034   Neeraj Sharma   implement new des...
2
    <v-container fluid class="body-color">
acb6c9e2b   Shikha Mishra   issues solved rel...
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
      <!-- ****** Edit  Payment History  ****** -->
      <v-dialog v-model="editPaymentDialog" max-width="400px">
        <v-card flat class="card-style pa-2" dark>
          <v-layout>
            <v-flex xs12>
              <label class="title text-xs-center">Edit Payment History</label>
              <v-icon size="24" class="right" @click="editPaymentDialog = false">cancel</v-icon>
            </v-flex>
          </v-layout>
          <v-form ref="form">
            <v-container fluid>
              <v-flex xs12 sm12>
                <v-layout>
                  <v-flex xs3 class="pt-4 subheading">
                    <label class="right">Amount:</label>
                  </v-flex>
                  <v-flex xs8 sm7 class="ml-3">
                    <v-text-field
109a6218c   Neeraj Sharma   solve issue/bugs ...
21
                      v-model="editedItem.paidAmount"
acb6c9e2b   Shikha Mishra   issues solved rel...
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
                      placeholder="please fill this field"
                    ></v-text-field>
                  </v-flex>
                </v-layout>
              </v-flex>
              <v-flex xs12 sm12>
                <v-layout>
                  <v-flex xs3 class="pt-4 subheading">
                    <label class="right">Method:</label>
                  </v-flex>
                  <v-flex xs8 sm7 class="ml-3">
                    <v-select
                      :items="paymentMethod"
                      v-model="editedItem.paymentMethod"
                      label="please fill this field"
                      required
                    ></v-select>
                  </v-flex>
                </v-layout>
              </v-flex>
              <v-layout>
                <v-flex xs12>
                  <v-layout>
                    <v-spacer></v-spacer>
                    <v-btn round dark @click="save" class="add-button">Update Payment History</v-btn>
                    <v-spacer></v-spacer>
                  </v-layout>
                </v-flex>
              </v-layout>
            </v-container>
          </v-form>
        </v-card>
      </v-dialog>
  
      <!-- ****** PAYMENT HISTORY TABLE ****** -->
68d742034   Neeraj Sharma   implement new des...
57
58
59
60
61
      <v-toolbar color="transparent" flat>
        <v-spacer></v-spacer>
        <v-card-title class="body-1" v-show="show">
          <v-btn icon large flat @click="displaySearch">
            <v-avatar size="27">
aa310d61a   Shikha Mishra   added functionali...
62
              <img src="/static/icon/search.png" alt="icon" />
68d742034   Neeraj Sharma   implement new des...
63
64
65
            </v-avatar>
          </v-btn>
        </v-card-title>
612b79bb4   Amber Dev   made serch auto f...
66
        <v-flex xs8 sm8 md3 lg2 v-if="showSearch">
687e0b929   Neeraj Sharma   add user,attenden...
67
          <v-layout>
612b79bb4   Amber Dev   made serch auto f...
68
            <v-text-field autofocus v-model="search" label="Search" prepend-inner-icon="search" color="primary"></v-text-field>
68d742034   Neeraj Sharma   implement new des...
69
            <v-icon @click="closeSearch" color="error">close</v-icon>
687e0b929   Neeraj Sharma   add user,attenden...
70
          </v-layout>
68d742034   Neeraj Sharma   implement new des...
71
72
        </v-flex>
      </v-toolbar>
687e0b929   Neeraj Sharma   add user,attenden...
73
74
75
76
77
78
79
      <v-data-table
        :headers="headers"
        :items="paymentHistory"
        :pagination.sync="pagination"
        :search="search"
      >
        <template slot="items" slot-scope="props">
68d742034   Neeraj Sharma   implement new des...
80
          <tr class="tr">
acb6c9e2b   Shikha Mishra   issues solved rel...
81
82
            <td class="td td-row">{{ props.index + 1 }}</td>
            <td class="td td-row text-xs-center">{{ props.item.studentId.name }}</td>
68d742034   Neeraj Sharma   implement new des...
83
            <td class="td td-row text-xs-center">{{ props.item.classId.classNum }}</td>
acb6c9e2b   Shikha Mishra   issues solved rel...
84
            <td class="td td-row text-xs-center">{{ props.item.feeType.feeTypeName }}</td>
68d742034   Neeraj Sharma   implement new des...
85
            <td class="td td-row text-xs-center">{{ props.item.paymentMethod }}</td>
0e46192a0   Shikha Mishra   change data of pa...
86
            <td class="td td-row text-xs-center">{{ props.item.feeType.paidAmount }}</td>
68d742034   Neeraj Sharma   implement new des...
87
            <td class="td td-row text-xs-center">{{ dates(props.item.date) }}</td>
acb6c9e2b   Shikha Mishra   issues solved rel...
88
89
90
91
92
            <td class="td td-row text-xs-center">
              <span>
                <v-tooltip top>
                  <img
                    slot="activator"
109a6218c   Neeraj Sharma   solve issue/bugs ...
93
94
                    style="cursor:pointer; width:20px; height:18px;"
                    class="mr-3"
acb6c9e2b   Shikha Mishra   issues solved rel...
95
                    @click="editItem(props.item)"
109a6218c   Neeraj Sharma   solve issue/bugs ...
96
                    src="/static/icon/edit.png"
acb6c9e2b   Shikha Mishra   issues solved rel...
97
98
99
100
101
102
                  />
                  <span>Edit</span>
                </v-tooltip>
                <v-tooltip top>
                  <img
                    slot="activator"
109a6218c   Neeraj Sharma   solve issue/bugs ...
103
104
                    style="cursor:pointer;width:20px; height:20px;"
                    class="mr-3"
acb6c9e2b   Shikha Mishra   issues solved rel...
105
                    @click="deleteItem(props.item)"
109a6218c   Neeraj Sharma   solve issue/bugs ...
106
                    src="/static/icon/delete.png"
acb6c9e2b   Shikha Mishra   issues solved rel...
107
108
109
110
111
                  />
                  <span>Delete</span>
                </v-tooltip>
              </span>
            </td>
68d742034   Neeraj Sharma   implement new des...
112
          </tr>
687e0b929   Neeraj Sharma   add user,attenden...
113
114
115
116
117
118
119
120
121
122
123
        </template>
        <v-alert
          slot="no-results"
          :value="true"
          color="error"
          icon="warning"
        >Your search for "{{ search }}" found no results.</v-alert>
      </v-data-table>
      <div class="loader" v-if="showLoader">
        <v-progress-circular indeterminate color="white"></v-progress-circular>
      </div>
59793b95a   Neeraj Sharma   complete design a...
124
125
126
127
128
129
130
131
      <v-snackbar
        :timeout="timeout"
        :top="y === 'top'"
        :right="x === 'right'"
        :vertical="mode === 'vertical'"
        v-model="snackbar"
        :color="color"
      >{{ text }}</v-snackbar>
68d742034   Neeraj Sharma   implement new des...
132
    </v-container>
687e0b929   Neeraj Sharma   add user,attenden...
133
134
135
136
137
138
139
140
  </template>
  
  <script>
  import http from "@/Services/http.js";
  import moment from "moment";
  
  export default {
    data: () => ({
acb6c9e2b   Shikha Mishra   issues solved rel...
141
      snackbar: false,
687e0b929   Neeraj Sharma   add user,attenden...
142
143
      showLoader: false,
      search: "",
68d742034   Neeraj Sharma   implement new des...
144
145
      show: true,
      showSearch: false,
687e0b929   Neeraj Sharma   add user,attenden...
146
      pagination: {
68d742034   Neeraj Sharma   implement new des...
147
        rowsPerPage: 10
687e0b929   Neeraj Sharma   add user,attenden...
148
      },
acb6c9e2b   Shikha Mishra   issues solved rel...
149
      paymentMethod: ["Cash", "Cheque"],
687e0b929   Neeraj Sharma   add user,attenden...
150
151
152
      headers: [
        {
          text: "No",
68d742034   Neeraj Sharma   implement new des...
153
          align: "",
687e0b929   Neeraj Sharma   add user,attenden...
154
155
156
          sortable: false,
          value: "No"
        },
acb6c9e2b   Shikha Mishra   issues solved rel...
157
158
159
160
161
162
        {
          text: "Student",
          value: "name",
          sortable: false,
          align: "center"
        },
687e0b929   Neeraj Sharma   add user,attenden...
163
        { text: "Class", value: "class", sortable: false, align: "center" },
ab54b5656   Neeraj Sharma   implement library...
164
165
166
167
168
169
170
171
172
173
174
175
        {
          text: "Fee Type",
          value: "feeTypeName",
          sortable: false,
          align: "center"
        },
        {
          text: "Method",
          value: "paymentMethod",
          sortable: false,
          align: "center"
        },
687e0b929   Neeraj Sharma   add user,attenden...
176
177
178
179
180
181
182
183
184
185
186
        {
          text: "Paid Amount",
          value: "totalPaidAmount",
          sortable: false,
          align: "center"
        },
        {
          text: "Date",
          value: "date",
          sortable: false,
          align: "center"
acb6c9e2b   Shikha Mishra   issues solved rel...
187
188
        },
        { text: "Action", value: "", sortable: false, align: "center" }
687e0b929   Neeraj Sharma   add user,attenden...
189
      ],
68d742034   Neeraj Sharma   implement new des...
190
      paymentHistory: [],
acb6c9e2b   Shikha Mishra   issues solved rel...
191
192
      addPaymentHistoryDialog: "",
      editPaymentDialog: false,
59793b95a   Neeraj Sharma   complete design a...
193
194
195
196
197
198
199
200
      editedItem: {},
      y: "top",
      x: "right",
      mode: "",
      timeout: 5000,
      text: "",
      color: "",
      snackbar: false
687e0b929   Neeraj Sharma   add user,attenden...
201
202
    }),
    methods: {
acb6c9e2b   Shikha Mishra   issues solved rel...
203
204
205
      editItem(item) {
        this.editedIndex = this.paymentHistory.indexOf(item);
        this.editedItem = Object.assign({}, item);
109a6218c   Neeraj Sharma   solve issue/bugs ...
206
        this.editedItem.paidAmount = this.editedItem.feeType.paidAmount;
acb6c9e2b   Shikha Mishra   issues solved rel...
207
208
209
210
211
        this.editPaymentDialog = true;
      },
      deleteItem(item) {
        let deleteGrade = {
          invoiceId: item._id,
109a6218c   Neeraj Sharma   solve issue/bugs ...
212
          feeTypeId: item.feeType._id
acb6c9e2b   Shikha Mishra   issues solved rel...
213
214
215
        };
        http()
          .put(
109a6218c   Neeraj Sharma   solve issue/bugs ...
216
217
            "/deleteFeeType",
            confirm("Are you sure you want to delete this?") && deleteGrade,
acb6c9e2b   Shikha Mishra   issues solved rel...
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
            {
              headers: {
                Authorization: "Bearer " + this.token
              }
            }
          )
          .then(response => {
            this.snackbar = true;
            //   this.text = "Successfully Delete Salary ";
            this.text = response.data.message;
            this.color = "green";
            this.getPaymentHistory();
          })
          .catch(error => {
            console.log("error", error);
            this.snackbar = true;
            this.text = error.response.data.message;
            this.color = "red";
          });
      },
687e0b929   Neeraj Sharma   add user,attenden...
238
239
240
241
242
243
244
      dates: function(date) {
        return moment(date).format("MMMM DD, YYYY");
      },
      getPaymentHistory() {
        this.showLoader = true;
        var token = this.$store.state.token;
        http()
acb6c9e2b   Shikha Mishra   issues solved rel...
245
          .get("/getPaymentHistory", {
99cd79184   Neeraj Sharma   implement all tas...
246
247
248
249
            params: {
              paymentStatus: "FULLY_PAID",
              schoolId: this.$store.state.schoolId
            },
687e0b929   Neeraj Sharma   add user,attenden...
250
251
252
253
254
255
256
257
258
259
260
261
            headers: { Authorization: "Bearer " + token }
          })
          .then(response => {
            this.paymentHistory = response.data.data;
            this.showLoader = false;
          })
          .catch(error => {
            this.showLoader = false;
            if (error.response.status === 401) {
              this.$router.replace({ path: "/" });
              this.$store.dispatch("setToken", null);
              this.$store.dispatch("Id", null);
00e4bc4e1   Neeraj Sharma   fixed auntentication
262
              this.$store.dispatch("Role", null);
687e0b929   Neeraj Sharma   add user,attenden...
263
264
            }
          });
68d742034   Neeraj Sharma   implement new des...
265
      },
acb6c9e2b   Shikha Mishra   issues solved rel...
266
267
268
269
      save() {
        var updatePayment = {
          invoiceId: this.editedItem._id,
          feeTypeId: this.editedItem.feeType._id,
109a6218c   Neeraj Sharma   solve issue/bugs ...
270
          paidAmount: this.editedItem.paidAmount,
acb6c9e2b   Shikha Mishra   issues solved rel...
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
          paymentMethod: this.editedItem.paymentMethod
        };
        http()
          .put("/updateFeeType", updatePayment, {
            headers: {
              Authorization: "Bearer " + this.token
            }
          })
          .then(response => {
            this.getPaymentHistory();
            this.snackbar = true;
            this.text = response.data.message;
            this.color = "green";
            this.editPaymentDialog = false;
          })
          .catch(error => {
59793b95a   Neeraj Sharma   complete design a...
287
            console.log("error", error.response);
acb6c9e2b   Shikha Mishra   issues solved rel...
288
            this.snackbar = true;
59793b95a   Neeraj Sharma   complete design a...
289
            this.text = error.response.data.message;
acb6c9e2b   Shikha Mishra   issues solved rel...
290
291
292
            this.color = "red";
          });
      },
68d742034   Neeraj Sharma   implement new des...
293
      displaySearch() {
109a6218c   Neeraj Sharma   solve issue/bugs ...
294
295
        this.show = false;
        this.showSearch = true;
68d742034   Neeraj Sharma   implement new des...
296
297
298
299
300
      },
      closeSearch() {
        this.showSearch = false;
        this.show = true;
        this.search = "";
59793b95a   Neeraj Sharma   complete design a...
301
      }
687e0b929   Neeraj Sharma   add user,attenden...
302
303
    },
    mounted() {
acb6c9e2b   Shikha Mishra   issues solved rel...
304
      this.token = this.$store.state.token;
687e0b929   Neeraj Sharma   add user,attenden...
305
      this.getPaymentHistory();
687e0b929   Neeraj Sharma   add user,attenden...
306
307
    }
  };
68d742034   Neeraj Sharma   implement new des...
308
  </script>