geer-builder 1.2.643 → 1.2.645

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,266 @@
1
+ <template>
2
+ <div class="manage-wallet">
3
+ <!-- Table -->
4
+ <div align="right" class="q-mb-md top-container">
5
+ <div class="wallet-holder">
6
+ <span class="label">Wallet Balance : </span>
7
+ <span v-if="this.current_slot_info && this.current_slot_info.wallet" class="value">Php {{number(this.current_slot_info.wallet)}}</span>
8
+ </div>
9
+ <div class="actions">
10
+ <q-btn flat label="Open Request Form" @click="is_open_wallet_request_form=true"/>
11
+ <div class="filters">
12
+ <q-input dense style="width: 300px;" label="Search Here" outlined="" v-model="filterr"></q-input>
13
+ <q-select dense outlined style="min-width: 200px; width: fit-content" v-model="filter" :options="['All', 'Pending', 'Rejected', 'Completed']" label="Filter" />
14
+ </div>
15
+ </div>
16
+ </div>
17
+ <q-table
18
+ :title="table_title"
19
+ :loading="table_loading"
20
+ @row-click= "viewRequest"
21
+ separator="cell"
22
+ bordered
23
+ flat
24
+ :data="!table_loading ? table_data : []"
25
+ :columns="table_column"
26
+ :pagination.sync="pagination"
27
+ :filter="filterr" >
28
+ </q-table>
29
+
30
+ <!-- Request Form -->
31
+ <q-dialog v-model="is_open_wallet_request_form">
32
+ <q-card>
33
+ <q-card-section>
34
+ <q-form @submit.prevent="submitRequest">
35
+ <div class="form-label">Request Wallet</div>
36
+ <div class="wallet-form-container">
37
+ <q-input filled v-model="form.first_name" label="First name" required/>
38
+ <q-input filled v-model="form.middle_name" label="Middle name" required/>
39
+ <q-input filled v-model="form.last_name" label="Last name" required/>
40
+ <q-input filled v-model="form.contact_number" label="Contact Number" type="number" required/>
41
+ <q-input filled v-model="form.amount" label="Amount" required/>
42
+ </div>
43
+ <div class="button-holder" align="right">
44
+ <q-btn class="submit-btn" flat :loading="is_submitting" type="submit" label="Submit Request"/>
45
+ </div>
46
+ </q-form>
47
+ </q-card-section>
48
+ </q-card>
49
+ </q-dialog>
50
+ </div>
51
+ </template>
52
+
53
+ <script>
54
+ import GlobalMixins from '../../mixins/global_mixins.js';
55
+ import DB_BILLS_PAYMENT from '../../models/DB_HUB_REQUEST';
56
+ import {formatNumber} from '../../utilities/NumberUtils';
57
+ import {formatDate} from '../../utilities/DateUtils';
58
+ import DB_HUB_REQUEST from '../../models/DB_HUB_REQUEST';
59
+ export default
60
+ {
61
+ filters: { },
62
+ data:() =>(
63
+ {
64
+ table_data: [],
65
+ table_title: 'All Request',
66
+ is_open_wallet_request_form: false,
67
+ table_loading: true,
68
+ filterr: '',
69
+ filter: 'All',
70
+ is_submitting: false,
71
+ pagination : { rowsPerPage: 5},
72
+ form: {
73
+ first_name: null,
74
+ middle_name: null,
75
+ last_name: null,
76
+ contact_number: null,
77
+ amount: null,
78
+ },
79
+ table_column:
80
+ [
81
+ {
82
+ name : 'full_name',
83
+ label : 'FULL NAME',
84
+ field : row => row.hubs_info.full_name,
85
+ format : val => `${val}`,
86
+ align : 'left',
87
+ sortable: true,
88
+ },
89
+ {
90
+ name : 'contact_number',
91
+ label : 'CONTACT NUMBER',
92
+ field : "contact_number",
93
+ align : 'left',
94
+ },
95
+ {
96
+ name : 'amount',
97
+ label : 'REQUESTED AMOUNT',
98
+ field : row => formatNumber(row.amount, { decimal: 2 }),
99
+ format : val => `${val}`,
100
+ align : 'left',
101
+ },
102
+ {
103
+ name : 'created_date',
104
+ label : 'DATE & TIME',
105
+ field : row => formatDate(row.created_date, 'MM/DD/YY (hh:mm A)'),
106
+ format: val => `${val}`,
107
+ align : 'left',
108
+ },
109
+ {
110
+ name : 'status',
111
+ label : 'STATUS',
112
+ field : "status",
113
+ align : 'left',
114
+ },
115
+
116
+ ],
117
+ }),
118
+ watch:
119
+ {
120
+ filter()
121
+ {
122
+ this.getAllRequest();
123
+ }
124
+ },
125
+ async mounted()
126
+ {
127
+ await this.$_getSlotInfo(); // GET THE CURRENTLY USED SLOT VARIABLE SAVED ON = this.current_slot_info;
128
+ await this.getAllRequest();
129
+ this.dataAutoFill();
130
+ },
131
+ methods:
132
+ {
133
+ async submitRequest()
134
+ {
135
+ this.is_submitting = true;
136
+ if(this.current_slot_info)
137
+ {
138
+ try
139
+ {
140
+ this.form.slot_code = this.current_slot_info.slot_code;
141
+ let res = await this.$_fbCall('memberHubRequest', this.form);
142
+ this.$q.dialog({ title: `Success!`, message: `Your has been succesfully submitted.`, html: true });
143
+ await this.resetForm();
144
+ await this.getAllRequest();
145
+
146
+ }
147
+ catch (error)
148
+ {
149
+ this.$q.dialog({ title: `Something's not quite right`, message: error.message });
150
+ }
151
+ }
152
+ this.is_open_wallet_request_form = false;
153
+ this.is_submitting = false;
154
+ },
155
+ resetForm()
156
+ {
157
+ this.form =
158
+ {
159
+ first_name: null,
160
+ middle_name: null,
161
+ last_name: null,
162
+ contact_number: null,
163
+ amount: null,
164
+ }
165
+ },
166
+ async getAllRequest()
167
+ {
168
+ this.table_loading = true;
169
+ this.table_title = `${this.filter} Request`;
170
+ let filter = this.filter.toLowerCase();
171
+ if (filter === 'all') await this.$bind('table_data', new DB_HUB_REQUEST().collection()
172
+ .where('hubs_uid', '==', `${this.user_info.uid}`).orderBy('created_date', 'desc'));
173
+ else await this.$bind('table_data', new DB_HUB_REQUEST().collection()
174
+ .where('hubs_uid', '==', `${this.user_info.uid}`).where("status", "==", `${filter}`).orderBy('created_date', 'desc'));
175
+ this.table_loading = false;
176
+ },
177
+ dataAutoFill()
178
+ {
179
+ if (this.user_info)
180
+ {
181
+ if(this.user_info.hasOwnProperty('full_name'))
182
+ {
183
+ let full_name = '';
184
+ full_name = this.user_info.full_name;
185
+ this.form.first_name = full_name.split(' ')[0];
186
+ this.form.middle_name = full_name.split(' ').reverse()[1];
187
+ this.form.last_name = full_name.split(' ').pop();
188
+ this.form.contact_number = this.user_info.contact_number
189
+ }
190
+ }
191
+ },
192
+ viewRequest()
193
+ {
194
+
195
+ },
196
+ number(amount)
197
+ {
198
+ return formatNumber(amount, { decimal: 2 });
199
+ }
200
+ },
201
+ computed: { }
202
+ }
203
+ </script>
204
+ <style lang="scss">
205
+ .manage-wallet
206
+ {
207
+ display: grid;
208
+ row-gap: 20px;
209
+ .actions
210
+ {
211
+ display: flex;
212
+ margin-top: 20px;
213
+ justify-content: space-between;
214
+ align-items: center;
215
+ .q-btn
216
+ {
217
+ background-color: #3887d1;
218
+ color: white;
219
+ }
220
+ }
221
+ .wallet-holder
222
+ {
223
+ margin-top: 20px;
224
+ .value
225
+ {
226
+ font-size: 20px;
227
+ font-weight: 500;
228
+ }
229
+ .label
230
+ {
231
+ // font-weight: bold;
232
+ }
233
+ }
234
+ .filters
235
+ {
236
+ display: flex;
237
+ column-gap: 10px;
238
+ justify-content: flex-end;
239
+ align-items: center;
240
+ }
241
+ }
242
+ .q-dialog
243
+ {
244
+ .wallet-form-container
245
+ {
246
+ display: grid;
247
+ grid-template-columns: repeat(2, 1fr);
248
+ grid-gap: 20px;
249
+ margin-bottom: 20px;
250
+ }
251
+ .form-label
252
+ {
253
+ display: grid;
254
+ justify-content: flex-start;
255
+ color: #3887d1;
256
+ font-size: 20px;
257
+ font-weight: 500;
258
+ margin-bottom: 20px;
259
+ }
260
+ .submit-btn
261
+ {
262
+ background: #3887d1;
263
+ color: white;
264
+ }
265
+ }
266
+ </style>
@@ -0,0 +1,64 @@
1
+ <template>
2
+ <div class="member-request">
3
+ <div class="gcash-wallet">
4
+ <div class="section-title">Gcash & Wallet Request</div>
5
+ <gcash-and-wallet/>
6
+ </div>
7
+ <div class="bills-payment">
8
+ <div class="section-title">Bills Payment Request</div>
9
+ <bills-payment/>
10
+ </div>
11
+ </div>
12
+ </template>
13
+
14
+ <script>
15
+ import GcashAndWallet from './GcashAndWallet.vue'
16
+ import BillsPayment from './BillsPayment.vue'
17
+ export default
18
+ {
19
+ components: { GcashAndWallet, BillsPayment },
20
+ filters: { },
21
+ data:() =>(
22
+ {
23
+ }),
24
+ mounted() { },
25
+ methods: { },
26
+ computed: { }
27
+ }
28
+ </script>
29
+ <style lang="scss">
30
+ .member-request
31
+ {
32
+ .gcash-wallet
33
+ {
34
+ background: rgb(243, 243, 243);
35
+ padding: 10px;
36
+ border-radius: 5px;
37
+ margin-bottom: 20px;
38
+ .section-title
39
+ {
40
+ font-weight: bold;
41
+ width: max-width;
42
+ font-size: 17px;
43
+ display: grid;
44
+ justify-items: flex-start;
45
+ margin-bottom: 10px;
46
+ }
47
+ }
48
+ .bills-payment
49
+ {
50
+ background: rgb(243, 243, 243);
51
+ padding: 10px;
52
+ border-radius: 5px;
53
+ .section-title
54
+ {
55
+ font-weight: bold;
56
+ width: max-width;
57
+ font-size: 17px;
58
+ display: grid;
59
+ justify-items: flex-start;
60
+ margin-bottom: 10px;
61
+ }
62
+ }
63
+ }
64
+ </style>
@@ -186,4 +186,4 @@ import {formatDate}from '../../utilities/DateUtils';
186
186
  },
187
187
  },
188
188
  }
189
- </script>
189
+ </script>
@@ -15,6 +15,7 @@
15
15
  :manager_discount="sale.manager_discount.total"
16
16
  :discount_type="sale.manager_discount.discount_type"
17
17
  :status="sale.status"
18
+ :slot_reference="sale.slot_reference"
18
19
  :cashier="sale.cashier"
19
20
  :company_name="company_name"
20
21
  :stockist_info="sale.cashier.stockist_info"
@@ -26,7 +27,7 @@
26
27
  <div v-else style="min-height: 300px;" class="product-list text-center q-pt-lg">
27
28
  <q-spinner-ball style="margin-top: 50px" class="q-mt-lg" color="primary" size="60px"/>
28
29
  </div>
29
- <div class="noprint">
30
+ <div class="noprint q-mt-md q-mb-md">
30
31
  <div v-if="!hide_bottom" class="buttons text-right">
31
32
  <q-btn @click="close()" color="primary" class="q-mr-sm" outline>
32
33
  <q-icon name="fa fa-trash" size="14px" class="q-mr-sm"></q-icon>
@@ -14,6 +14,7 @@
14
14
  <div>EMAIL : {{customer.email}}</div>
15
15
  <div v-if="show_customer_details">CONTACT : {{customer.contact_number}}</div>
16
16
  <div v-if="show_customer_details">ADDRESS : {{customer.address}}</div>
17
+ <div v-if="show_customer_details">Slot Reference : {{slot_reference}}</div>
17
18
  </div>
18
19
  <div class="col-5 label" style="margin-top:15px;">Order No. Receipt No. : {{ number }}</div>
19
20
  </div>
@@ -102,7 +103,7 @@ import MemoHistory from './MemoHistory';
102
103
 
103
104
 
104
105
  export default {
105
- props: ['refill','cashier', 'title', 'product_list', 'memo', 'batch_number', 'lot_number','number', 'customer', 'transaction_date','sub_total', 'grand_total', 'manager_discount','discount_type','total_discount','status','claim_code', 'company_name', 'stockist_info', 'payment_method'],
106
+ props: ['refill','cashier', 'slot_reference', 'title', 'product_list', 'memo', 'batch_number', 'lot_number','number', 'customer', 'transaction_date','sub_total', 'grand_total', 'manager_discount','discount_type','total_discount','status','claim_code', 'company_name', 'stockist_info', 'payment_method'],
106
107
  mixins: [GlobalMixins],
107
108
  components: { MemoHistory },
108
109
  data: () =>
@@ -128,6 +129,7 @@ export default {
128
129
  {
129
130
  // this.address_1 = this.stockist_info.stockist_details.street+" "+this.stockist_info.stockist_details.barangay.name+", "+this.stockist_info.stockist_details.city.name+", "+this.stockist_info.stockist_details.province.name+", "+this.stockist_info.stockist_details.region.name;
130
131
  // this.contact = this.stockist_info.stockist_details.phone_number;
132
+ console.log(this.stockiest_info)
131
133
 
132
134
  this.settings = await this.$_getData('public_settings');
133
135
  if(this.settings.hasOwnProperty("qdy") && this.settings.qdy)
@@ -0,0 +1,62 @@
1
+ <template>
2
+ <q-card >
3
+ <q-bar class='bg-primary text-white q-pa-lg'>
4
+ <b>Details</b>
5
+ <q-space />
6
+ <q-btn dense flat icon='close' v-close-popup><q-tooltip content-class='bg-white text-primary'>Close</q-tooltip></q-btn>
7
+ </q-bar>
8
+ <q-card-section class='content'>
9
+ <div class="row">
10
+ <!-- TABLE -->
11
+ <div class="col-12 text-right q-mb-md">
12
+ <div class="q-mt-sm text-left">
13
+ <table style="width: 500px; min-width: 500px;">
14
+ <tr>
15
+ <th></th>
16
+ <th></th>
17
+ <th style="min-width: 30px;"></th>
18
+ <th></th>
19
+ </tr>
20
+ <tr v-for="(details, i) in row.bills.fields" :key="i">
21
+ <td><b>{{details.field_name}}:</b></td>
22
+ <td>{{details.value}}</td>
23
+ <td></td>
24
+ </tr>
25
+ </table>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ </q-card-section>
30
+ </q-card>
31
+ </template>
32
+
33
+ <script>
34
+
35
+ export default
36
+ {
37
+ data: () =>
38
+ ({
39
+ tab: 'qualified',
40
+ enable_close:true,
41
+ }),
42
+ components: {},
43
+ props: {
44
+ row: Object,
45
+ },
46
+ mounted()
47
+ {
48
+ },
49
+ methods:
50
+ {
51
+ closePopup()
52
+ {
53
+ console.log('close popup');
54
+ this.$emit('closePopup');
55
+ },
56
+ formatDate(d)
57
+ {
58
+ return formatDate(d)
59
+ }
60
+ }
61
+ }
62
+ </script>
@@ -0,0 +1,9 @@
1
+ import MODEL from './MODEL';
2
+
3
+ export default class DB_BILLS_PAYMENT extends MODEL
4
+ {
5
+ constructor()
6
+ {
7
+ super('bills_payment');
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ import MODEL from './MODEL';
2
+
3
+ export default class DB_GCASH_REQUEST extends MODEL
4
+ {
5
+ constructor()
6
+ {
7
+ super('gcash_request');
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ import MODEL from './MODEL';
2
+
3
+ export default class DB_HUB_REQUEST extends MODEL
4
+ {
5
+ constructor()
6
+ {
7
+ super('hub_request');
8
+ }
9
+ }
@@ -6,4 +6,5 @@ export default class DB_RESELLER_LOGS extends MODEL
6
6
  {
7
7
  super('reseller_commission_logs');
8
8
  }
9
- }
9
+ }
10
+
package/models/DB_USER.js CHANGED
@@ -6,6 +6,7 @@ export default class DB_USER extends MODEL
6
6
  {
7
7
  super('users');
8
8
  }
9
+
9
10
  async getTopEarners(limit = 5)
10
11
  {
11
12
  let res = await this.collection().limit(limit).orderBy('total_earned', 'desc').get();
@@ -6,4 +6,5 @@ export default class DB_USER_SHIPPING_ADDRESS extends MODEL
6
6
  {
7
7
  super(`users/${uid}/address`);
8
8
  }
9
+
9
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geer-builder",
3
- "version": "1.2.643",
3
+ "version": "1.2.645",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {