Blame view

src/pages/Account/invoice.vue 45.7 KB
687e0b929   Neeraj Sharma   add user,attenden...
1
  <template>
68d742034   Neeraj Sharma   implement new des...
2
    <v-container fluid class="body-color">
81d876b5d   Shikha Mishra   salary invoice de...
3
4
5
6
7
8
9
10
11
      <!-- ****** Edit INVOICE ****** -->
      <v-dialog v-model="editInvoiceDialog">
        <v-card flat class="text-xs-center white--text">
          <v-layout>
            <v-flex xs12 class="card-styles pa-2">
              <label class="title text-xs-center">Edit Invoice</label>
              <v-icon size="24" class="right white--text" @click="editInvoiceDialog = false">cancel</v-icon>
            </v-flex>
          </v-layout>
88868752b   Neeraj Sharma   solve bugs add in...
12
          <editInvoice :editData="editData" @update-editInvoice="updateDoneInvoice" />
81d876b5d   Shikha Mishra   salary invoice de...
13
14
15
16
17
18
19
20
21
22
23
24
        </v-card>
      </v-dialog>
  
      <!-- ****PAYMENT INVOICE DIALOG -->
      <v-dialog v-model="paymentInvoiceDialog">
        <v-card flat class="text-xs-center white--text">
          <v-layout>
            <v-flex xs12 class="card-styles pa-2">
              <label class="title text-xs-center">Payment Template</label>
              <v-icon size="24" class="right white--text" @click="paymentInvoiceDialog = false">cancel</v-icon>
            </v-flex>
          </v-layout>
3e79b2f9f   Neeraj Sharma   implement functio...
25
          <!-- <v-flex xs12 sm12>
81d876b5d   Shikha Mishra   salary invoice de...
26
            <v-container fluid grid-list-md>
68d742034   Neeraj Sharma   implement new des...
27
              <v-layout wrap>
88868752b   Neeraj Sharma   solve bugs add in...
28
                <v-flex xs12 sm12 md4>
81d876b5d   Shikha Mishra   salary invoice de...
29
30
31
32
33
34
                  <v-card flat>
                    <v-toolbar dark class="card-styles" flat>
                      <v-spacer></v-spacer>
                      <h3>Profile</h3>
                      <v-spacer></v-spacer>
                    </v-toolbar>
c62132b75   Shikha Mishra   invoice,progress-...
35
                    <v-card-text>
81d876b5d   Shikha Mishra   salary invoice de...
36
37
38
39
40
41
42
43
44
                      <v-container>
                        <v-layout wrap>
                          <v-flex xs12>
                            <v-layout>
                              <v-flex
                                xs12
                                class="text-xs-center text-sm-center text-md-center text-lg-center"
                              >
                                <v-avatar size="80px">
b9759239c   Shikha Mishra   shown invoice det...
45
                                  <img src="/static/icon/user.png" v-if="!editPayment.profilePicUrl" />
81d876b5d   Shikha Mishra   salary invoice de...
46
                                  <img
b9759239c   Shikha Mishra   shown invoice det...
47
48
                                    :src="editPayment.profilePicUrl"
                                    v-else-if="editPayment.profilePicUrl"
81d876b5d   Shikha Mishra   salary invoice de...
49
50
51
52
53
54
55
                                  />
                                </v-avatar>
                              </v-flex>
                            </v-layout>
                            <v-layout>
                              <v-flex xs12 sm12>
                                <h3 class="text-xs-center">
879451281   Shikha Mishra   improve update in...
56
                                  <b>{{ editPayment.studentId.name }}</b>
81d876b5d   Shikha Mishra   salary invoice de...
57
58
59
60
61
62
63
64
65
66
67
                                </h3>
                                <p class="text-xs-center grey--text">Student</p>
                              </v-flex>
                            </v-layout>
                            <v-layout style="border: 1px solid lightgrey;">
                              <v-flex xs6 sm6 class="pa-0">
                                <h4 class="right">
                                  <b>Roll No :</b>
                                </h4>
                              </v-flex>
                              <v-flex sm6 xs6 class="pa-0">
879451281   Shikha Mishra   improve update in...
68
                                <h4>{{ editPayment.studentId.rollNo }}</h4>
81d876b5d   Shikha Mishra   salary invoice de...
69
70
71
72
73
74
75
76
77
                              </v-flex>
                            </v-layout>
                            <v-layout style="border: 1px solid lightgrey;">
                              <v-flex xs6 sm6 class="pa-0">
                                <h4 class="right">
                                  <b>Class :</b>
                                </h4>
                              </v-flex>
                              <v-flex sm6 xs6 class="pa-0">
879451281   Shikha Mishra   improve update in...
78
                                <h4>{{ editPayment.classId.classNum }}</h4>
81d876b5d   Shikha Mishra   salary invoice de...
79
80
                              </v-flex>
                            </v-layout>
81d876b5d   Shikha Mishra   salary invoice de...
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
                          </v-flex>
                        </v-layout>
                      </v-container>
                    </v-card-text>
                  </v-card>
                  <v-flex>
                    <v-card>
                      <v-flex xs12 sm12 md12 style="padding-top: 1%;">
                        <v-card flat>
                          <v-toolbar dark class="card-styles" flat>
                            <v-spacer></v-spacer>
                            <h3>Invoice</h3>
                            <v-spacer></v-spacer>
                          </v-toolbar>
                        </v-card>
                        <v-layout>
                          <v-flex xs12>
                            <v-layout>
                              <v-flex xs4 class="pt-4 subheading">
                                <label class="right">Payment Method:</label>
                              </v-flex>
                              <v-flex xs6 class="ml-3">
                                <v-select
                                  :items="paymentMethods"
b9759239c   Shikha Mishra   shown invoice det...
105
                                  v-model="editPayment.paymentMethod"
81d876b5d   Shikha Mishra   salary invoice de...
106
107
108
109
110
111
112
113
114
115
116
                                  label="Select Payment Method"
                                  required
                                ></v-select>
                              </v-flex>
                            </v-layout>
                            <v-card-actions>
                              <v-spacer class="hidden-xs-only"></v-spacer>
                              <v-btn
                                color="open-dialog-button"
                                dark
                                class="right mt-3"
b9759239c   Shikha Mishra   shown invoice det...
117
                                @click="add"
81d876b5d   Shikha Mishra   salary invoice de...
118
119
120
121
122
123
124
125
                              >Add Payment</v-btn>
                            </v-card-actions>
                          </v-flex>
                        </v-layout>
                      </v-flex>
                    </v-card>
                  </v-flex>
                </v-flex>
88868752b   Neeraj Sharma   solve bugs add in...
126
                <v-flex xs12 sm12 md8>
81d876b5d   Shikha Mishra   salary invoice de...
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
                  <v-card>
                    <v-toolbar dark class="card-styles" flat>
                      <v-spacer></v-spacer>
                      <h3>Fee Type List</h3>
                      <v-spacer></v-spacer>
                    </v-toolbar>
                    <table class="feeTypeTable tableRsponsive">
                      <tr class="info white--text">
                        <th>#</th>
                        <th>Fee Type</th>
                        <th>Amount</th>
                        <th>Discount(%)</th>
                        <th>Subtotal</th>
                        <th>Paid Amount</th>
                        <th>Action</th>
                      </tr>
                      <tr
88868752b   Neeraj Sharma   solve bugs add in...
144
                        v-for="(feeType,index) in paymentFeeTypeData"
81d876b5d   Shikha Mishra   salary invoice de...
145
146
147
                        :key="index"
                        v-on:keyup="getAmmountDetails(feeType)"
                      >
c62132b75   Shikha Mishra   invoice,progress-...
148
                        <td style="width:40px" class="tdFeeType">{{index + 1}}</td>
b9759239c   Shikha Mishra   shown invoice det...
149
                        <td style="width:120px" class="tdFeeType" disabled>{{ feeType.feeTypeName }}</td>
c62132b75   Shikha Mishra   invoice,progress-...
150
                        <td class="tdFeeType" style="width:120px" disabled>{{feeType.amount}}</td>
81d876b5d   Shikha Mishra   salary invoice de...
151
152
153
154
155
156
157
                        <td class="tdFeeType">
                          <v-text-field
                            placeholder="fill your Discount"
                            v-model="feeType.discount"
                            type="number"
                          ></v-text-field>
                        </td>
b9759239c   Shikha Mishra   shown invoice det...
158
                        <td class="tdFeeType" disabled>{{ feeType.subTotal }}</td>
81d876b5d   Shikha Mishra   salary invoice de...
159
160
161
162
163
                        <td class="tdFeeType" v-if="invoiceData.paymentStatus === 'NOT_PAID'">
                          <v-text-field
                            placeholder="fill your Paid Amount"
                            v-model="feeType.paidAmount"
                            type="number"
81d876b5d   Shikha Mishra   salary invoice de...
164
165
166
167
168
169
170
                          ></v-text-field>
                        </td>
                        <td class="tdFeeType" v-if="invoiceData.paymentStatus == ''">
                          <v-text-field
                            placeholder="fill your Paid Amount"
                            v-model="feeType.paidAmount"
                            type="number"
81d876b5d   Shikha Mishra   salary invoice de...
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
                          ></v-text-field>
                        </td>
                        <td
                          class="tdFeeType"
                          v-if="invoiceData.paymentStatus != 'NOT_PAID' && invoiceData.paymentStatus != ''"
                        >
                          <v-text-field
                            placeholder="fill your Paid Amount"
                            v-model="feeType.paidAmount"
                            type="number"
                          ></v-text-field>
                        </td>
                        <td class="tdFeeType">
                          <v-icon color="error" @click="deleteSelectFee(index)">delete</v-icon>
                        </td>
                      </tr>
                      <tfoot>
                        <tr>
                          <td colspan="2" class="tdFeeType">Total:</td>
                          <td class="tdFeeType">{{ feeType.amount }}</td>
                          <td class="tdFeeType">{{ feeType.discount }}</td>
                          <td class="tdFeeType">{{ feeType.subTotal }}</td>
                          <td class="tdFeeType">{{ feeType.paidAmount }}</td>
                          <td class="tdFeeType">
                            <v-icon color="error" @click="deleteSelectFee(index)">delete</v-icon>
                          </td>
                        </tr>
                      </tfoot>
                    </table>
                  </v-card>
68d742034   Neeraj Sharma   implement new des...
201
202
203
                </v-flex>
              </v-layout>
            </v-container>
3e79b2f9f   Neeraj Sharma   implement functio...
204
          </v-flex>-->
e03bf1f92   Neeraj Sharma   solved bugs add i...
205
          <paymentTemplate :editPayment="editPayment" @update-Payment="updatePayment" />
81d876b5d   Shikha Mishra   salary invoice de...
206
207
208
209
210
211
212
213
214
215
216
217
        </v-card>
      </v-dialog>
  
      <!-- ****** PROFILE VIEW SECTION DATA ******  -->
      <v-dialog v-model="dialog1" max-width="800px">
        <v-card flat class="text-xs-center white--text">
          <v-layout>
            <v-flex xs12 class="card-style pa-2">
              <label class="title text-xs-center">View Payments</label>
              <v-icon size="24" class="right" color="white" @click="dialog1 = false">cancel</v-icon>
            </v-flex>
          </v-layout>
c62132b75   Shikha Mishra   invoice,progress-...
218
219
          <!-- <p>{{editedItem}}</p> -->
          <table class="feeTypeTable tableRsponsive">
81d876b5d   Shikha Mishra   salary invoice de...
220
221
222
223
224
225
226
227
            <tr style="color: black">
              <th>#</th>
              <th>Date</th>
              <th>Paid By</th>
              <th>Payment Amount</th>
              <th>Weaver</th>
              <th>Action</th>
            </tr>
c62132b75   Shikha Mishra   invoice,progress-...
228
            <tr v-if="editedItem.paymentStatus !== 'NOT_PAID'">
b9759239c   Shikha Mishra   shown invoice det...
229
230
231
              <td style="width:40px ; color:black" class="tdFeeType">1</td>
              <td style="width:120px; color:black" class="tdFeeType">{{dates( editedItem.date) }}</td>
              <td style="width:120px; color:black" class="tdFeeType">{{ editedItem.paymentMethod }}</td>
b3860f8e6   Shikha Mishra   improve delete fu...
232
              <td style="width:120px; color:black" class="tdFeeType">{{ editedItem.totalPaidAmount }}</td>
b9759239c   Shikha Mishra   shown invoice det...
233
              <td style="width:120px; color:black" class="tdFeeType">{{ editedItem.totalDiscount}}</td>
81d876b5d   Shikha Mishra   salary invoice de...
234
235
236
237
              <td class="text-xs-center td td-row">
                <router-link
                  :to="{ name:'View Payment Invoice',params: { viewPaymentInvoiceId:editedItem._id } }"
                >
c62132b75   Shikha Mishra   invoice,progress-...
238
                  <v-tooltip top>
81d876b5d   Shikha Mishra   salary invoice de...
239
240
241
242
243
244
245
246
247
248
249
250
251
252
                    <img
                      slot="activator"
                      style="cursor:pointer; width:25px; height:25px; "
                      class="mr-3"
                      src="/static/icon/view.png"
                    />
                    <span>View</span>
                  </v-tooltip>
                </router-link>
                <v-tooltip top>
                  <img
                    slot="activator"
                    style="cursor:pointer;width:20px; height:20px; "
                    class="mr-3"
b3860f8e6   Shikha Mishra   improve delete fu...
253
                    @click="deletePayment(editedItem)"
81d876b5d   Shikha Mishra   salary invoice de...
254
255
256
257
258
259
                    src="/static/icon/delete.png"
                  />
                  <span>Delete</span>
                </v-tooltip>
              </td>
            </tr>
b9759239c   Shikha Mishra   shown invoice det...
260
          </table>
68d742034   Neeraj Sharma   implement new des...
261
        </v-card>
81d876b5d   Shikha Mishra   salary invoice de...
262
      </v-dialog>
687e0b929   Neeraj Sharma   add user,attenden...
263

b9759239c   Shikha Mishra   shown invoice det...
264
      <!-- ****** Invoice Table ****** -->
68d742034   Neeraj Sharma   implement new des...
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
      <v-toolbar color="transparent" flat>
        <v-btn
          fab
          dark
          class="open-dialog-button hidden-xl-only hidden-md-only hidden-lg-only"
          small
          @click="addInvoiceDialog = true"
        >
          <v-icon dark>add</v-icon>
        </v-btn>
        <v-btn
          round
          class="open-dialog-button hidden-sm-only hidden-xs-only"
          dark
          @click="addInvoiceDialog = true"
        >
          <v-icon class="white--text pr-1" size="20">add</v-icon>Add Invoice
        </v-btn>
        <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...
287
              <img src="/static/icon/search.png" alt="icon" />
68d742034   Neeraj Sharma   implement new des...
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
            </v-avatar>
          </v-btn>
        </v-card-title>
        <v-flex xs8 sm8 md3 lg2 v-show="showSearch">
          <v-layout>
            <v-text-field v-model="search" label="Search" prepend-inner-icon="search" color="primary"></v-text-field>
            <v-icon @click="closeSearch" color="error">close</v-icon>
          </v-layout>
        </v-flex>
      </v-toolbar>
      <v-data-table
        :headers="headers"
        :items="invoiceList"
        :pagination.sync="pagination"
        :search="search"
      >
        <template slot="items" slot-scope="props">
          <tr class="tr">
            <td class="td td-row">{{ props.index + 1 }}</td>
81d876b5d   Shikha Mishra   salary invoice de...
307
            <td class="text-xs-center td td-row">{{ props.item.studentId.name }}</td>
68d742034   Neeraj Sharma   implement new des...
308
309
            <td class="text-xs-center td td-row">{{ props.item.classId.classNum }}</td>
            <td class="text-xs-center td td-row">{{ props.item.totalAmount }}</td>
c62132b75   Shikha Mishra   invoice,progress-...
310
            <td class="text-xs-center td td-row">{{ props.item.totalDiscount}}</td>
68d742034   Neeraj Sharma   implement new des...
311
312
313
314
315
            <td
              class="text-xs-center td td-row"
            >{{ props.item.totalPaidAmount ? props.item.totalPaidAmount : 0}}</td>
            <td
              class="text-xs-center td td-row"
81d876b5d   Shikha Mishra   salary invoice de...
316
            >{{ props.item.totalPaidAmount ? props.item.totalSubTotal - props.item.totalPaidAmount : props.item.totalSubTotal }}</td>
68d742034   Neeraj Sharma   implement new des...
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
            <td class="text-xs-center td td-row" v-if="props.item.paymentStatus === 'NOT_PAID'">
              <span
                class="red lighten-1 py-1 px-2 white--text paymentStatus"
              >{{ props.item.paymentStatus }}</span>
            </td>
            <td class="text-xs-center td td-row" v-if="props.item.paymentStatus === 'FULLY_PAID'">
              <span
                class="green lighten-1 py-1 px-2 white--text paymentStatus"
              >{{ props.item.paymentStatus }}</span>
            </td>
            <td class="text-xs-center td td-row" v-if="props.item.paymentStatus === 'PARTIALLY_PAID'">
              <span
                class="yellow darken-3 py-1 px-2 white--text paymentStatus"
              >{{ props.item.paymentStatus }}</span>
            </td>
            <td class="text-xs-center td td-row">{{ dates(props.item.date) }}</td>
            <td class="text-xs-center td td-row">
aa310d61a   Shikha Mishra   added functionali...
334
              <router-link :to="{ name:'View Invoice',params: { viewInvoiceId:props.item._id } }">
68d742034   Neeraj Sharma   implement new des...
335
336
337
338
339
                <v-tooltip top>
                  <img
                    slot="activator"
                    style="cursor:pointer; width:25px; height:25px; "
                    class="mr-3"
aa310d61a   Shikha Mishra   added functionali...
340
                    src="/static/icon/view.png"
68d742034   Neeraj Sharma   implement new des...
341
342
343
344
345
                  />
                  <span>View</span>
                </v-tooltip>
              </router-link>
              <span v-if="props.item.paymentStatus === 'NOT_PAID'">
c62132b75   Shikha Mishra   invoice,progress-...
346
347
348
349
350
351
352
353
354
355
356
357
                <!-- <router-link :to="{ name: 'Edit Invoice',params: { invoiceid: editData._id } }">
                  <v-tooltip top>
                    <img
                      slot="activator"
                      style="cursor:pointer; width:20px; height:18px; "
                      class="mr-3"
                      @click="editItem(props.item)"
                      src="/static/icon/edit.png"
                    />
                    <span>Edit</span>
                  </v-tooltip>
                </router-link>-->
81d876b5d   Shikha Mishra   salary invoice de...
358
359
360
361
362
363
364
365
366
367
                <v-tooltip top>
                  <img
                    slot="activator"
                    style="cursor:pointer; width:20px; height:18px; "
                    class="mr-3"
                    @click="editItem(props.item)"
                    src="/static/icon/edit.png"
                  />
                  <span>Edit</span>
                </v-tooltip>
68d742034   Neeraj Sharma   implement new des...
368
369
370
371
372
373
                <v-tooltip top>
                  <img
                    slot="activator"
                    style="cursor:pointer;width:20px; height:20px; "
                    class="mr-3"
                    @click="deleteItem(props.item)"
aa310d61a   Shikha Mishra   added functionali...
374
                    src="/static/icon/delete.png"
68d742034   Neeraj Sharma   implement new des...
375
376
377
                  />
                  <span>Delete</span>
                </v-tooltip>
81d876b5d   Shikha Mishra   salary invoice de...
378
379
380
381
382
383
384
385
386
387
                <v-tooltip top>
                  <img
                    slot="activator"
                    style="cursor:pointer; width:20px; height:18px; "
                    class="mr-3"
                    @click="paymentItem(props.item)"
                    src="/static/schoolIcons/Account.png"
                  />
                  <span>Payment</span>
                </v-tooltip>
68d742034   Neeraj Sharma   implement new des...
388
              </span>
81d876b5d   Shikha Mishra   salary invoice de...
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
              <span v-if="props.item.paymentStatus === 'PARTIALLY_PAID'">
                <v-tooltip top>
                  <img
                    slot="activator"
                    style="cursor:pointer; width:20px; height:18px; "
                    class="mr-3"
                    @click="paymentItem(props.item)"
                    src="/static/schoolIcons/Account.png"
                  />
                  <span>Payment</span>
                </v-tooltip>
              </span>
              <v-tooltip top>
                <img
                  slot="activator"
                  style="cursor:pointer; width:19px; height:19px;"
                  class="mr-3"
                  @click="profile(props.item)"
                  src="/static/icon/eye1.png"
                />
                <span>View Payment</span>
              </v-tooltip>
68d742034   Neeraj Sharma   implement new des...
411
412
413
414
415
416
417
418
419
420
            </td>
          </tr>
        </template>
        <v-alert
          slot="no-results"
          :value="true"
          color="error"
          icon="warning"
        >Your search for "{{ search }}" found no results.</v-alert>
      </v-data-table>
b9759239c   Shikha Mishra   shown invoice det...
421

68d742034   Neeraj Sharma   implement new des...
422
      <!-- ****** ADD INVOICE ****** -->
81d876b5d   Shikha Mishra   salary invoice de...
423
424
425
426
427
428
429
430
431
      <v-snackbar
        :timeout="timeout"
        :top="y === 'top'"
        :right="x === 'right'"
        :vertical="mode === 'vertical'"
        v-model="snackbar"
        :color="color"
      >{{ text }}</v-snackbar>
      <v-dialog v-model="addInvoiceDialog">
68d742034   Neeraj Sharma   implement new des...
432
433
        <v-card flat class="text-xs-center white--text">
          <v-layout>
81d876b5d   Shikha Mishra   salary invoice de...
434
435
            <v-flex xs12 class="card-styles pa-2">
              <label class="title text-xs-center">Add Invoice</label>
68d742034   Neeraj Sharma   implement new des...
436
437
438
439
440
441
442
443
444
445
              <v-icon size="24" class="right white--text" @click="addInvoiceDialog = false">cancel</v-icon>
            </v-flex>
          </v-layout>
          <v-flex xs12 sm12>
            <v-container fluid grid-list-md>
              <v-layout wrap>
                <v-flex xs12 sm12 md5>
                  <v-card flat>
                    <v-toolbar dark class="card-styles" flat>
                      <v-spacer></v-spacer>
81d876b5d   Shikha Mishra   salary invoice de...
446
                      <h3>Invoice</h3>
68d742034   Neeraj Sharma   implement new des...
447
448
449
                      <v-spacer></v-spacer>
                    </v-toolbar>
                    <v-form ref="form" v-model="valid" lazy-validation class="py-4">
687e0b929   Neeraj Sharma   add user,attenden...
450
                      <v-layout>
68d742034   Neeraj Sharma   implement new des...
451
452
453
                        <v-flex xs4 class="pt-4 subheading">
                          <label class="right hidden-xs-only hidden-sm-only">Select Class:</label>
                          <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Class:</label>
687e0b929   Neeraj Sharma   add user,attenden...
454
                        </v-flex>
68d742034   Neeraj Sharma   implement new des...
455
456
457
458
459
460
461
462
463
464
465
                        <v-flex xs6 class="ml-3">
                          <v-select
                            :items="addclass"
                            label="Select Class"
                            v-model="invoiceData.classNum"
                            item-text="classNum"
                            item-value="_id"
                            @change="getAllStudents()"
                            :rules="classRules"
                            required
                          ></v-select>
687e0b929   Neeraj Sharma   add user,attenden...
466
467
468
                        </v-flex>
                      </v-layout>
                      <v-layout>
68d742034   Neeraj Sharma   implement new des...
469
470
471
                        <v-flex xs4 class="pt-4 subheading">
                          <label class="right hidden-xs-only hidden-sm-only">Select Student:</label>
                          <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Student:</label>
687e0b929   Neeraj Sharma   add user,attenden...
472
                        </v-flex>
68d742034   Neeraj Sharma   implement new des...
473
474
475
476
477
478
479
480
481
482
483
                        <v-flex xs6 class="ml-3">
                          <v-select
                            :items="studentList"
                            label="Select Student"
                            v-model="invoiceData.studentId"
                            item-text="name"
                            item-value="_id"
                            :rules="inchargeRules"
                            @change="selectAllStudent()"
                            required
                          ></v-select>
687e0b929   Neeraj Sharma   add user,attenden...
484
485
486
                        </v-flex>
                      </v-layout>
                      <v-layout>
68d742034   Neeraj Sharma   implement new des...
487
488
                        <v-flex xs4 class="pt-4 subheading">
                          <label class="right">Date:</label>
687e0b929   Neeraj Sharma   add user,attenden...
489
                        </v-flex>
68d742034   Neeraj Sharma   implement new des...
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
                        <v-flex xs6 class="ml-3">
                          <v-menu
                            ref="menu1"
                            :close-on-content-click="false"
                            v-model="menu1"
                            :nudge-right="40"
                            lazy
                            :return-value.sync="invoiceData.date"
                            transition="scale-transition"
                            offset-y
                            full-width
                            min-width="290px"
                          >
                            <v-text-field
                              slot="activator"
                              :rules="dateRules"
                              v-model="invoiceData.date"
                              placeholder="Select date"
                            ></v-text-field>
                            <v-date-picker
                              v-model="invoiceData.date"
                              @input="$refs.menu1.save(invoiceData.date)"
                            ></v-date-picker>
                          </v-menu>
687e0b929   Neeraj Sharma   add user,attenden...
514
515
516
                        </v-flex>
                      </v-layout>
                      <v-layout>
68d742034   Neeraj Sharma   implement new des...
517
518
519
                        <v-flex xs4 class="pt-4 subheading">
                          <label class="right hidden-xs-only hidden-sm-only">Payment Status:</label>
                          <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Payment:</label>
687e0b929   Neeraj Sharma   add user,attenden...
520
                        </v-flex>
68d742034   Neeraj Sharma   implement new des...
521
522
523
524
525
526
527
528
529
530
531
                        <v-flex xs6 class="ml-3">
                          <v-select
                            :items="paymentStatus"
                            v-model="invoiceData.paymentStatus"
                            item-text="name"
                            item-value="value"
                            label="Select Payment Status"
                            @change="getPayMethodList"
                            :rules="paymentStatusRules"
                            required
                          ></v-select>
687e0b929   Neeraj Sharma   add user,attenden...
532
533
                        </v-flex>
                      </v-layout>
68d742034   Neeraj Sharma   implement new des...
534
535
536
                      <v-layout v-show="showPayMethods">
                        <v-flex xs4 class="pt-4 subheading">
                          <label class="right">Payment Method:</label>
687e0b929   Neeraj Sharma   add user,attenden...
537
                        </v-flex>
68d742034   Neeraj Sharma   implement new des...
538
                        <v-flex xs6 class="ml-3">
687e0b929   Neeraj Sharma   add user,attenden...
539
                          <v-select
68d742034   Neeraj Sharma   implement new des...
540
541
542
543
                            :items="paymentMethods"
                            v-model="invoiceData.paymentMethod"
                            label="Select Payment Method"
                            required
687e0b929   Neeraj Sharma   add user,attenden...
544
545
                          ></v-select>
                        </v-flex>
68d742034   Neeraj Sharma   implement new des...
546
547
548
549
550
551
                      </v-layout>
                      <v-layout>
                        <v-flex xs12 sm11>
                          <v-card-actions>
                            <v-spacer></v-spacer>
                            <v-btn @click="clear" round dark class="clear-button">clear</v-btn>
81d876b5d   Shikha Mishra   salary invoice de...
552
553
554
555
556
557
558
                            <v-btn
                              @click="submit"
                              round
                              dark
                              :loading="loading"
                              class="add-button"
                            >Add</v-btn>
68d742034   Neeraj Sharma   implement new des...
559
                          </v-card-actions>
687e0b929   Neeraj Sharma   add user,attenden...
560
561
                        </v-flex>
                      </v-layout>
68d742034   Neeraj Sharma   implement new des...
562
563
564
565
566
                    </v-form>
                  </v-card>
                </v-flex>
                <v-flex xs12 sm12 md7>
                  <v-card>
81d876b5d   Shikha Mishra   salary invoice de...
567
                    <v-toolbar dark class="card-styles" flat>
68d742034   Neeraj Sharma   implement new des...
568
                      <v-spacer></v-spacer>
81d876b5d   Shikha Mishra   salary invoice de...
569
                      <h3>Fee Type List</h3>
68d742034   Neeraj Sharma   implement new des...
570
571
572
573
                      <v-spacer></v-spacer>
                    </v-toolbar>
                    <v-layout>
                      <v-flex xs4 sm2 class="mt-4 hidden-xs-only hidden-sm-only">
81d876b5d   Shikha Mishra   salary invoice de...
574
                        <label class="right title">Fee Type:</label>
68d742034   Neeraj Sharma   implement new des...
575
576
577
578
579
580
581
582
                      </v-flex>
                      <v-flex xs8 sm4>
                        <v-select
                          :items="feeTypes"
                          v-model="feeType.feeTypeName"
                          item-text="feeType"
                          item-value="feeType"
                          label="Select Fee Type"
81d876b5d   Shikha Mishra   salary invoice de...
583
                          required
68d742034   Neeraj Sharma   implement new des...
584
585
586
                        ></v-select>
                      </v-flex>
                      <v-flex xs4 sm6>
81d876b5d   Shikha Mishra   salary invoice de...
587
588
589
590
591
592
593
                        <v-btn
                          color="open-dialog-button"
                          round
                          dark
                          class="right mt-3"
                          @click="selectFeeType"
                        >ADD</v-btn>
68d742034   Neeraj Sharma   implement new des...
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
                      </v-flex>
                    </v-layout>
                    <table class="feeTypeTable tableRsponsive">
                      <tr class="info white--text">
                        <th>#</th>
                        <th>Fee Type</th>
                        <th>Amount</th>
                        <th>Discount(%)</th>
                        <th>Subtotal</th>
                        <th>Paid Amount</th>
                        <th>Action</th>
                      </tr>
                      <tr
                        v-show="showFeeType"
                        v-for="(feeType, index) in feeTypeData"
                        :key="index"
                        v-on:keyup="getAmmountDetails(feeType)"
                      >
                        <td style="width:40px" class="tdFeeType">{{ index + 1 }}</td>
81d876b5d   Shikha Mishra   salary invoice de...
613
614
615
616
617
                        <td
                          style="width:120px"
                          class="tdFeeType"
                          :rules="feeTypeNameRules"
                        >{{ feeType.feeTypeName }}</td>
68d742034   Neeraj Sharma   implement new des...
618
619
620
621
622
                        <td class="tdFeeType">
                          <v-text-field
                            placeholder="fill your Amount"
                            v-model="feeType.amount"
                            type="number"
81d876b5d   Shikha Mishra   salary invoice de...
623
624
                            :rules="amountRules"
                            required
68d742034   Neeraj Sharma   implement new des...
625
626
627
628
629
630
631
                          ></v-text-field>
                        </td>
                        <td class="tdFeeType">
                          <v-text-field
                            placeholder="fill your Discount"
                            v-model="feeType.discount"
                            type="number"
81d876b5d   Shikha Mishra   salary invoice de...
632
633
                            :rules="discountRules"
                            required
68d742034   Neeraj Sharma   implement new des...
634
635
                          ></v-text-field>
                        </td>
81d876b5d   Shikha Mishra   salary invoice de...
636
637
                        <td class="tdFeeType" :rules="subtotalRules">{{ feeType.subTotal }}</td>
                        <td class="tdFeeType" v-if="invoiceData.paymentStatus === 'NOT_PAID'">
68d742034   Neeraj Sharma   implement new des...
638
639
640
641
642
643
                          <v-text-field
                            placeholder="fill your Paid Amount"
                            v-model="feeType.paidAmount"
                            type="number"
                            :disabled="disabled"
                          ></v-text-field>
81d876b5d   Shikha Mishra   salary invoice de...
644
                        </td>
68d742034   Neeraj Sharma   implement new des...
645
646
647
648
649
650
651
652
653
654
655
                        <td class="tdFeeType" v-if="invoiceData.paymentStatus == ''">
                          <v-text-field
                            placeholder="fill your Paid Amount"
                            v-model="feeType.paidAmount"
                            type="number"
                            :disabled="disabled"
                          ></v-text-field>
                        </td>
                        <td
                          class="tdFeeType"
                          v-if="invoiceData.paymentStatus != 'NOT_PAID' && invoiceData.paymentStatus != ''"
687e0b929   Neeraj Sharma   add user,attenden...
656
                        >
68d742034   Neeraj Sharma   implement new des...
657
658
659
660
661
662
663
664
665
666
667
668
669
                          <v-text-field
                            placeholder="fill your Paid Amount"
                            v-model="feeType.paidAmount"
                            type="number"
                          ></v-text-field>
                        </td>
                        <td class="tdFeeType">
                          <v-icon color="error" @click="deleteSelectFee(index)">delete</v-icon>
                        </td>
                      </tr>
                      <tfoot>
                        <tr>
                          <td colspan="2" class="tdFeeType">Total:</td>
b9759239c   Shikha Mishra   shown invoice det...
670
671
672
673
                          <td class="tdFeeType">{{ feeType.amount }}</td>
                          <td class="tdFeeType">{{ feeType.discount }}</td>
                          <td class="tdFeeType">{{ feeType.subTotal }}</td>
                          <td class="tdFeeType">{{ feeType.paidAmount }}</td>
81d876b5d   Shikha Mishra   salary invoice de...
674
675
676
                          <td class="tdFeeType">
                            <v-icon color="error" @click="deleteSelectFee(index)">delete</v-icon>
                          </td>
687e0b929   Neeraj Sharma   add user,attenden...
677
                        </tr>
68d742034   Neeraj Sharma   implement new des...
678
679
680
681
682
683
684
685
686
                      </tfoot>
                    </table>
                  </v-card>
                </v-flex>
              </v-layout>
            </v-container>
          </v-flex>
        </v-card>
      </v-dialog>
687e0b929   Neeraj Sharma   add user,attenden...
687
688
689
      <div class="loader" v-if="showLoader">
        <v-progress-circular indeterminate color="white"></v-progress-circular>
      </div>
68d742034   Neeraj Sharma   implement new des...
690
    </v-container>
687e0b929   Neeraj Sharma   add user,attenden...
691
692
693
694
  </template>
  
  <script>
  import http from "@/Services/http.js";
88868752b   Neeraj Sharma   solve bugs add in...
695
  import editInvoice from "./editInvoice";
3e79b2f9f   Neeraj Sharma   implement functio...
696
  import paymentTemplate from "./paymentTemplate.vue";
687e0b929   Neeraj Sharma   add user,attenden...
697
698
699
  import moment from "moment";
  
  export default {
88868752b   Neeraj Sharma   solve bugs add in...
700
    components: {
3e79b2f9f   Neeraj Sharma   implement functio...
701
702
      editInvoice: editInvoice,
      paymentTemplate: paymentTemplate
88868752b   Neeraj Sharma   solve bugs add in...
703
    },
687e0b929   Neeraj Sharma   add user,attenden...
704
705
706
707
708
709
    data: () => ({
      snackbar: false,
      showPayMethods: false,
      y: "top",
      x: "right",
      mode: "",
d9bb52b5b   Neeraj Sharma   implement trello ...
710
      timeout: 5000,
687e0b929   Neeraj Sharma   add user,attenden...
711
      text: "",
d9bb52b5b   Neeraj Sharma   implement trello ...
712
      color: "",
68d742034   Neeraj Sharma   implement new des...
713
714
      show: true,
      showSearch: false,
687e0b929   Neeraj Sharma   add user,attenden...
715
716
717
718
719
720
721
722
723
724
      showLoader: false,
      loading: false,
      date: null,
      search: "",
      dialog: false,
      dialog1: false,
      valid: true,
      validEdit: true,
      isActive: true,
      newActive: false,
b9759239c   Shikha Mishra   shown invoice det...
725
      showFeeType: true,
68d742034   Neeraj Sharma   implement new des...
726
      addInvoiceDialog: false,
81d876b5d   Shikha Mishra   salary invoice de...
727
728
      editInvoiceDialog: false,
      paymentInvoiceDialog: false,
687e0b929   Neeraj Sharma   add user,attenden...
729
730
731
      disabled: true,
      details: [],
      feeTypes: [],
81d876b5d   Shikha Mishra   salary invoice de...
732
      invoiceData: [],
879451281   Shikha Mishra   improve update in...
733
      editData: [],
b9759239c   Shikha Mishra   shown invoice det...
734
      invoiceList: [],
879451281   Shikha Mishra   improve update in...
735
736
      editPayment: {
        studentId: {
c62132b75   Shikha Mishra   invoice,progress-...
737
738
          name: "",
          rollNo: ""
879451281   Shikha Mishra   improve update in...
739
740
        },
        classId: {
c62132b75   Shikha Mishra   invoice,progress-...
741
          classNum: ""
879451281   Shikha Mishra   improve update in...
742
743
        }
      },
687e0b929   Neeraj Sharma   add user,attenden...
744
745
746
747
748
      menu1: false,
      paymentMethods: ["Cash", "Cheque"],
      feeType: {
        amount: "0.00",
        discount: "0.00",
687e0b929   Neeraj Sharma   add user,attenden...
749
        subTotal: "0.00",
6df6faccd   Rishav Singla   design changes
750
        paidAmount: "0.00",
687e0b929   Neeraj Sharma   add user,attenden...
751
752
        feeTypeName: ""
      },
c62132b75   Shikha Mishra   invoice,progress-...
753

687e0b929   Neeraj Sharma   add user,attenden...
754
      feeTypeData: [],
88868752b   Neeraj Sharma   solve bugs add in...
755
756
      editFeeTypeData: [],
      paymentFeeTypeData: [],
687e0b929   Neeraj Sharma   add user,attenden...
757
      pagination: {
68d742034   Neeraj Sharma   implement new des...
758
        rowsPerPage: 10
687e0b929   Neeraj Sharma   add user,attenden...
759
760
761
762
763
      },
      classRules: [v => !!v || " Class Name is required"],
      inchargeRules: [v => !!v || "Student Name is required"],
      dateRules: [v => !!v || " Date is required"],
      paymentStatusRules: [v => !!v || "Payment Status is required"],
6ae46ca27   Neeraj Sharma   implement upload ...
764
      paymentMethodsRules: [v => !!v || "payment Method is required"],
81d876b5d   Shikha Mishra   salary invoice de...
765
766
767
768
769
770
771
      feeTypeRules: [v => !!v || "Fee Type  is required"],
      feeTypeNameRules: [v => !!v || "Fee Type Name is required"],
      amountRules: [v => !!v || "Amount is required"],
      discountRules: [v => !!v || "Discount is required"],
      subtotalRules: [v => !!v || "Subtotal is required"],
      paymentRules: [v => !!v || "Payment is required"],
      paidAmountRules: [v => !!v || "Paid Amount is required"],
687e0b929   Neeraj Sharma   add user,attenden...
772
773
774
      headers: [
        {
          text: "No",
68d742034   Neeraj Sharma   implement new des...
775
          align: "",
687e0b929   Neeraj Sharma   add user,attenden...
776
777
778
          sortable: false,
          value: "No"
        },
81d876b5d   Shikha Mishra   salary invoice de...
779
780
781
782
783
784
        {
          text: "Student",
          value: "name",
          sortable: false,
          align: "center"
        },
687e0b929   Neeraj Sharma   add user,attenden...
785
786
        { text: "Class", value: "class", sortable: false, align: "center" },
        { text: "Total", value: "subtotal", sortable: false, align: "center" },
c62132b75   Shikha Mishra   invoice,progress-...
787
788
789
790
791
792
        {
          text: "Discount(%)",
          value: "discount",
          sortable: false,
          align: "center"
        },
687e0b929   Neeraj Sharma   add user,attenden...
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
        {
          text: "Paid Amount",
          value: "paidAmount",
          sortable: false,
          align: "center"
        },
        {
          text: "Balance",
          value: "Balance",
          sortable: false,
          align: "center"
        },
        {
          text: "Status",
          value: "paymentStatus",
          sortable: false,
          align: "center"
        },
        {
          text: "Date",
          value: "date",
          sortable: false,
          align: "center"
        },
        { text: "Action", value: "", sortable: false, align: "center" }
      ],
b9759239c   Shikha Mishra   shown invoice det...
819

81d876b5d   Shikha Mishra   salary invoice de...
820
821
822
      studentId: {
        name: ""
      },
687e0b929   Neeraj Sharma   add user,attenden...
823
824
825
      token: "",
      editedItem: {},
      invoiceData: {
d45ffc6fa   Neeraj Sharma   solve bugs and ad...
826
827
        paymentStatus: "",
        students: []
687e0b929   Neeraj Sharma   add user,attenden...
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
      },
      addclass: [],
      studentList: [],
      paymentStatus: [
        {
          name: "Not Paid",
          value: "NOT_PAID"
        },
        {
          name: "Partially Paid",
          value: "PARTIALLY_PAID"
        },
        {
          name: "Fully Paid",
          value: "FULLY_PAID"
        }
      ]
    }),
    methods: {
      save(date) {
        this.$refs.menu1.save(date);
      },
      dates: function(date) {
        return moment(date).format("MMMM DD, YYYY");
      },
81d876b5d   Shikha Mishra   salary invoice de...
853
      profile(item) {
b9759239c   Shikha Mishra   shown invoice det...
854
        // console.log("item", item);
81d876b5d   Shikha Mishra   salary invoice de...
855
        this.editedIndex = this.invoiceList.indexOf(item);
88868752b   Neeraj Sharma   solve bugs add in...
856
857
        // this.editedItem = Object.assign({}, item);
        console.log("editedItem", this.editedItem);
81d876b5d   Shikha Mishra   salary invoice de...
858
859
860
861
        this.dialog1 = true;
      },
      editItem(item) {
        this.editedIndex = this.invoiceList.indexOf(item);
879451281   Shikha Mishra   improve update in...
862
        this.editData = Object.assign({}, item);
88868752b   Neeraj Sharma   solve bugs add in...
863
864
865
        this.editData.date = this.editData.date.slice(0, 10);
        // console.log("invoiceData", this.editData);
        this.editFeeTypeData = this.editData.feeType;
81d876b5d   Shikha Mishra   salary invoice de...
866
867
868
        this.editInvoiceDialog = true;
      },
      paymentItem(item) {
879451281   Shikha Mishra   improve update in...
869
        // console.log("item", item);
81d876b5d   Shikha Mishra   salary invoice de...
870
        this.editedIndex = this.invoiceList.indexOf(item);
b9759239c   Shikha Mishra   shown invoice det...
871
        this.editPayment = Object.assign({}, item);
3e79b2f9f   Neeraj Sharma   implement functio...
872
        this.editPayment.date = this.editPayment.date.slice(0, 10);
88868752b   Neeraj Sharma   solve bugs add in...
873
        this.paymentFeeTypeData = this.editPayment.feeType;
81d876b5d   Shikha Mishra   salary invoice de...
874
875
        this.paymentInvoiceDialog = true;
      },
687e0b929   Neeraj Sharma   add user,attenden...
876
877
878
879
880
881
882
883
884
885
886
887
      deleteItem(item) {
        let deleteInvoice = {
          invoiceId: item._id
        };
        http()
          .delete(
            "/deleteInvoice",
            confirm("Are you sure you want to delete this?") && {
              params: deleteInvoice
            }
          )
          .then(response => {
d9bb52b5b   Neeraj Sharma   implement trello ...
888
889
            this.snackbar = true;
            this.text = "Successfully delete Existing Invoice";
b3860f8e6   Shikha Mishra   improve delete fu...
890
891
892
893
894
895
896
897
898
899
900
901
902
            this.color = "green";
            this.dialog1 = false;
            this.getInvoiceList();
          })
          .catch(error => {
            // console.log(error);
          });
      },
      deletePayment(editedItem) {
        let deleteInvoice = {
          invoiceId: editedItem._id
        };
        http()
c62132b75   Shikha Mishra   invoice,progress-...
903
904
905
906
907
908
909
          .put(
            "/removePayment",
            deleteInvoice,
            confirm("Are you sure you want to delete this?") && {
              headers: {
                Authorization: "Bearer " + this.token
              }
b3860f8e6   Shikha Mishra   improve delete fu...
910
            }
c62132b75   Shikha Mishra   invoice,progress-...
911
          )
b3860f8e6   Shikha Mishra   improve delete fu...
912
913
914
          .then(response => {
            this.snackbar = true;
            this.text = "Successfully delete Existing Invoice";
d9bb52b5b   Neeraj Sharma   implement trello ...
915
            this.color = "green";
81d876b5d   Shikha Mishra   salary invoice de...
916
            this.dialog1 = false;
687e0b929   Neeraj Sharma   add user,attenden...
917
918
919
920
921
922
            this.getInvoiceList();
          })
          .catch(error => {
            // console.log(error);
          });
      },
687e0b929   Neeraj Sharma   add user,attenden...
923
924
      close() {
        this.dialog = false;
687e0b929   Neeraj Sharma   add user,attenden...
925
      },
d9bb52b5b   Neeraj Sharma   implement trello ...
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
      // totalAmount() {
      //   // console.log("this.feeType.paidAmount ", this.feeType.paidAmount);
      //   // console.log(
      //   //   "this.feeType.subTotalAAAAAAAAAAAAAAA ",
      //   //   this.feeType.subTotal
      //   // );
  
      //   if (this.feeType.paidAmount < this.feeType.subTotal) {
      //     console.log("this.feeType.subTotalBBBBBBBBBBB ", this.feeType.subTotal);
  
      //     this.feeType.paidAmount = this.feeType.subTotal;
      //     console.log(
      //       "this.feeType.paidAmount BBBBBBBBBBB",
      //       this.feeType.paidAmount
      //     );
      //   }
      // },
687e0b929   Neeraj Sharma   add user,attenden...
943
944
945
946
947
948
949
      submit() {
        let feeTypeId = "";
        for (let i = 0; i < this.feeTypes.length; i++) {
          if (this.feeTypes[i].feeType === this.feeType.feeTypeName) {
            feeTypeId = this.feeTypes[i]._id;
          }
        }
88868752b   Neeraj Sharma   solve bugs add in...
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
        if (this.$refs.form.validate()) {
          let invoiceData = {
            classId: this.invoiceData.classNum,
            students: this.invoiceData.students,
            date: this.invoiceData.date,
            paymentStatus: this.invoiceData.paymentStatus,
            paymentMethod: this.invoiceData.paymentMethod,
            feeType: this.feeTypeData,
            totalAmount: this.feeType.amount,
            totalDiscount: this.feeType.discount,
            totalSubTotal: this.feeType.subTotal,
            totalPaidAmount: this.feeType.paidAmount
          };
          console.log("invoiceData", invoiceData);
          if (invoiceData.paymentStatus == "NOT_PAID") {
            delete invoiceData.totalPaidAmount;
          }
e03bf1f92   Neeraj Sharma   solved bugs add i...
967
968
969
970
971
972
973
974
975
976
          if (this.feeType.subTotal == this.feeType.paidAmount) {
            invoiceData.paymentStatus = "FULLY_PAID";
            // console.log("FULLY_PAID");
          }
          if (invoiceData.totalPaidAmount) {
            if (this.feeType.subTotal != this.feeType.paidAmount) {
              invoiceData.paymentStatus = "PARTIALLY_PAID";
              // console.log("PARTIALLY_PAID");
            }
          }
88868752b   Neeraj Sharma   solve bugs add in...
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
          http()
            .post("/createInvoice", invoiceData)
            .then(response => {
              this.getInvoiceList();
              this.snackbar = true;
              this.text = "New Invoice added successfully";
              this.color = "green";
              this.clear();
              this.feeTypeData = [];
              if (this.feeTypeData.length == 0) {
                this.feeType = {
                  amount: "0.00",
                  discount: "0.00",
                  paidAmount: "0.00",
                  subTotal: "0.00",
                  feeTypeList: ""
                };
              }
              this.loading = false;
              this.addInvoiceDialog = false;
            })
            .catch(error => {
              this.snackbar = true;
              this.text = error.response.data.errors[0].messages[0];
              this.color = "error";
              this.loading = false;
            });
81d876b5d   Shikha Mishra   salary invoice de...
1004
        }
81d876b5d   Shikha Mishra   salary invoice de...
1005
      },
3e79b2f9f   Neeraj Sharma   implement functio...
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
      // add() {
      //   var updatePayment = {
      //     invoiceId: this.editPayment._id,
      //     // totalPaidAmount: this.editPayment.paidAmount
      //     classId: this.editPayment.classNum,
      //     students: this.editPayment.students,
      //     date: this.editPayment.date,
      //     paymentStatus: this.editPayment.paymentStatus,
      //     paymentMethod: this.editPayment.paymentMethod,
      //     feeType: this.feeTypeData,
      //     totalAmount: this.feeType.amount,
      //     totalDiscount: this.feeType.discount,
      //     totalSubTotal: this.feeType.subTotal,
      //     totalPaidAmount: this.feeType.paidAmount
      //   };
      //   http()
      //     .put("/updateInvoice", updatePayment, {
      //       headers: {
      //         Authorization: "Bearer " + this.token
      //       }
      //     })
      //     .then(response => {
      //       this.getInvoiceList();
      //       this.snackbar = true;
      //       this.text = response.data.message;
      //       this.color = "green";
      //       this.paymentInvoiceDialog = false;
      //     })
      //     .catch(error => {
      //       console.log("error", error);
      //       this.snackbar = true;
      //       this.color = "red";
      //     });
      // },
687e0b929   Neeraj Sharma   add user,attenden...
1040
1041
1042
1043
      clear() {
        this.$refs.form.reset();
      },
      getInvoiceList() {
6ae46ca27   Neeraj Sharma   implement upload ...
1044
        this.showLoader = true;
687e0b929   Neeraj Sharma   add user,attenden...
1045
1046
        http()
          .get("/getInvoicesList", {
99cd79184   Neeraj Sharma   implement all tas...
1047
            params: { schoolId: this.$store.state.schoolId },
687e0b929   Neeraj Sharma   add user,attenden...
1048
1049
1050
1051
1052
1053
            headers: { Authorization: "Bearer " + this.token }
          })
          .then(response => {
            this.invoiceList = response.data.data;
            this.showLoader = false;
          })
ab54b5656   Neeraj Sharma   implement library...
1054
          .catch(error => {
687e0b929   Neeraj Sharma   add user,attenden...
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
            // console.log("err====>", err);
            this.showLoader = false;
            if (error.response.status === 401) {
              this.$router.replace({ path: "/" });
              this.$store.dispatch("setToken", null);
              this.$store.dispatch("Id", null);
            }
          });
      },
      selectFeeType() {
        this.showFeeType = true;
        this.feeTypeData.push({ feeTypeName: this.feeType.feeTypeName });
687e0b929   Neeraj Sharma   add user,attenden...
1067
1068
1069
      },
      deleteSelectFee: function(index) {
        this.feeTypeData.splice(index, 1);
687e0b929   Neeraj Sharma   add user,attenden...
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
        for (let i = 0; i < this.feeTypeData.length; i++) {
          this.feeType = this.feeTypeData[i];
        }
        if (this.feeTypeData.length == 0) {
          this.feeType = {
            amount: "0.00",
            discount: "0.00",
            paidAmount: "0.00",
            subTotal: "0.00",
            feeTypeName: ""
          };
        }
      },
      getAllClasses() {
        http()
          .get("/getClassesList", {
99cd79184   Neeraj Sharma   implement all tas...
1086
            params: { schoolId: this.$store.state.schoolId },
687e0b929   Neeraj Sharma   add user,attenden...
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
            headers: { Authorization: "Bearer " + this.token }
          })
          .then(response => {
            this.addclass = response.data.data;
          })
          .catch(err => {
            // console.log("err====>", err);
            // this.$router.replace({ path: "/" });
          });
      },
      getAllStudents() {
d9bb52b5b   Neeraj Sharma   implement trello ...
1098
        this.showLoader = true;
687e0b929   Neeraj Sharma   add user,attenden...
1099
1100
        http()
          .get("/getStudentsList", {
99cd79184   Neeraj Sharma   implement all tas...
1101
1102
1103
1104
            params: {
              classId: this.invoiceData.classNum,
              schoolId: this.$store.state.schoolId
            },
687e0b929   Neeraj Sharma   add user,attenden...
1105
1106
1107
            headers: { Authorization: "Bearer " + this.token }
          })
          .then(response => {
d45ffc6fa   Neeraj Sharma   solve bugs and ad...
1108
1109
1110
1111
            response.data.data.unshift({
              name: "Select All",
              _id: "Select All"
            });
687e0b929   Neeraj Sharma   add user,attenden...
1112
            this.studentList = response.data.data;
d9bb52b5b   Neeraj Sharma   implement trello ...
1113
            this.showLoader = false;
687e0b929   Neeraj Sharma   add user,attenden...
1114
1115
          })
          .catch(err => {
d9bb52b5b   Neeraj Sharma   implement trello ...
1116
            this.showLoader = false;
687e0b929   Neeraj Sharma   add user,attenden...
1117
1118
1119
1120
1121
1122
1123
            // console.log("err====>", err);
            // this.$router.replace({ path: "/" });
          });
      },
      getfeeType() {
        http()
          .get("/getFeesList", {
99cd79184   Neeraj Sharma   implement all tas...
1124
1125
1126
            params: {
              schoolId: this.$store.state.schoolId
            },
687e0b929   Neeraj Sharma   add user,attenden...
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
            headers: { Authorization: "Bearer " + this.token }
          })
          .then(response => {
            this.feeTypes = response.data.data;
          })
          .catch(err => {
            // console.log("err====>", err);
            // this.$router.replace({ path: "/" });
          });
      },
c62132b75   Shikha Mishra   invoice,progress-...
1137

e03bf1f92   Neeraj Sharma   solved bugs add i...
1138
      getAmmountDetails(feeTyp) {
687e0b929   Neeraj Sharma   add user,attenden...
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
        let feeType = {
          amount: "",
          discount: "",
          subTotal: "",
          subParticularTotal: "",
          paidAmount: ""
        };
        for (let i = 0; i < this.feeTypeData.length; i++) {
          // *********** AMOUNT ***********
  
          feeType.amount =
            Number(feeType.amount) + Number(this.feeTypeData[i].amount);
ab54b5656   Neeraj Sharma   implement library...
1151
          // console.log("feeType.amount ", feeType.amount);
687e0b929   Neeraj Sharma   add user,attenden...
1152
1153
1154
1155
1156
          this.feeType.amount = feeType.amount;
          this.feeType.subTotal = feeType.amount;
          this.feeTypeData[i].subTotal = this.feeTypeData[i].amount;
  
          // *********** DISCOUNT ***********
88868752b   Neeraj Sharma   solve bugs add in...
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
          // if (this.feeTypeData[i].discount) {
          feeType.discount =
            Number(feeType.discount) + Number(this.feeTypeData[i].discount);
          // console.log("feeType.discount", feeType.discount);
          this.feeType.discount = feeType.discount;
          console.log("feeType.discount", this.feeType.discount);
  
          feeType.subParticularTotal =
            this.feeTypeData[i].amount -
            (this.feeTypeData[i].amount * this.feeTypeData[i].discount) / 100;
          this.feeTypeData[i].subTotal = feeType.subParticularTotal.toFixed(2);
          // }
687e0b929   Neeraj Sharma   add user,attenden...
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
  
          // *********** SUBTOTAL ***********
  
          feeType.subTotal =
            Number(feeType.subTotal) + Number(this.feeTypeData[i].subTotal);
          this.feeType.subTotal = feeType.subTotal.toFixed(2);
  
          // *********** PAID-AMOUNT ***********
  
          feeType.paidAmount =
            Number(feeType.paidAmount) + Number(this.feeTypeData[i].paidAmount);
          this.feeType.paidAmount = feeType.paidAmount.toFixed(2);
d9bb52b5b   Neeraj Sharma   implement trello ...
1181
1182
1183
1184
1185
1186
  
          // if paid Amount fill large of subtotal value so this condition are fixed filled subtotal value.
          if (feeType.paidAmount > feeType.subTotal) {
            this.feeTypeData[i].paidAmount = this.feeTypeData[i].subTotal;
            this.feeType.paidAmount = feeType.subTotal;
          }
687e0b929   Neeraj Sharma   add user,attenden...
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
        }
      },
      getPayMethodList() {
        if (this.invoiceData.paymentStatus == "PARTIALLY_PAID") {
          this.showPayMethods = true;
        } else if (this.invoiceData.paymentStatus == "FULLY_PAID") {
          this.showPayMethods = true;
        } else {
          this.showPayMethods = false;
        }
d45ffc6fa   Neeraj Sharma   solve bugs and ad...
1197
      },
c62132b75   Shikha Mishra   invoice,progress-...
1198
      getPaymentMethod() {
879451281   Shikha Mishra   improve update in...
1199
1200
1201
1202
1203
1204
1205
1206
        if (this.editData.paymentStatus == "PARTIALLY_PAID") {
          this.showPayMethods = true;
        } else if (this.editData.paymentStatus == "FULLY_PAID") {
          this.showPayMethods = true;
        } else {
          this.showPayMethods = false;
        }
      },
d45ffc6fa   Neeraj Sharma   solve bugs and ad...
1207
      selectAllStudent() {
81d876b5d   Shikha Mishra   salary invoice de...
1208
        // console.log("this.studentId", this.invoiceData.studentId);
d45ffc6fa   Neeraj Sharma   solve bugs and ad...
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
        this.invoiceData.students = [];
        if (this.invoiceData.studentId === "Select All") {
          for (let i = 1; i < this.studentList.length; i++) {
            this.invoiceData.students.push(this.studentList[i]._id);
            console.log("data", this.invoiceData.students);
            // data.push(this.studentList[i]._id);
            // console.log("data", data);
          }
        } else {
          this.invoiceData.students.push(this.invoiceData.studentId);
        }
68d742034   Neeraj Sharma   implement new des...
1220
1221
1222
1223
1224
1225
1226
1227
      },
      displaySearch() {
        (this.show = false), (this.showSearch = true);
      },
      closeSearch() {
        this.showSearch = false;
        this.show = true;
        this.search = "";
88868752b   Neeraj Sharma   solve bugs add in...
1228
1229
1230
1231
      },
      updateDoneInvoice() {
        this.editInvoiceDialog = false;
        this.getInvoiceList();
e03bf1f92   Neeraj Sharma   solved bugs add i...
1232
1233
1234
1235
1236
1237
1238
      },
      updatePayment() {
        this.paymentInvoiceDialog = false;
        this.getInvoiceList();
        this.snackbar = true;
        this.text = "Payment added successfully";
        this.color = "green";
687e0b929   Neeraj Sharma   add user,attenden...
1239
1240
1241
1242
1243
1244
1245
      }
    },
    mounted() {
      this.token = this.$store.state.token;
      this.getInvoiceList();
      this.getAllClasses();
      this.getfeeType();
81d876b5d   Shikha Mishra   salary invoice de...
1246
      this.getAllStudents();
687e0b929   Neeraj Sharma   add user,attenden...
1247
1248
1249
1250
1251
1252
    }
  };
  </script>
  
  
  <style scoped>
687e0b929   Neeraj Sharma   add user,attenden...
1253
1254
1255
1256
1257
1258
  table {
    border-collapse: collapse;
    border: 1px solid #e2e7eb;
  }
  
  th,
68d742034   Neeraj Sharma   implement new des...
1259
  .tdFeeType {
687e0b929   Neeraj Sharma   add user,attenden...
1260
1261
1262
1263
1264
1265
1266
1267
1268
    border: 1px solid #e2e7eb;
    padding: 10px;
    text-align: center;
  }
  table.feeTypeTable {
    table-layout: auto !important;
    width: 100% !important;
  }
  </style>