geer-builder 1.2.531 → 1.2.534

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.
package/GCashOut.vue CHANGED
@@ -11,12 +11,12 @@
11
11
  </g-card>
12
12
  <g-card :nomargin="true" class="cashout__box cashout__amount">
13
13
  <div class="cash__amount-balance">
14
- <div class="cashout__content-label cashout_title">Your Wallet Balance</div>
14
+ <div class="cashout__content-label cashout_title">{{metamask ? 'Available Balance' : 'Your Wallet Balance?'}}</div>
15
15
  <div class="cash__balance-value text-primary">{{ main_currency }} {{ $_formatNumber(this.walletBal, { decimal: 2 }) }}</div>
16
16
  </div>
17
17
 
18
18
  <div class="cash__amount-container">
19
- <div class="cashout__content-label q-mt-md">How much would you like to cashout?</div>
19
+ <div class="cashout__content-label q-mt-md"> {{metamask ? 'How much would you like to withdraw?' : 'How much would you like to cashout?'}} </div>
20
20
  <div class="cash__amount-textbox cashout_body">
21
21
  <q-input stack-label type="text" v-model.number="cashout_amount" dense style="width:88%" borderless class="input"/>
22
22
  <!-- <label >{{main_currency}}</label> -->
@@ -35,15 +35,14 @@
35
35
  </div>
36
36
  <div class="cashout__content-right">
37
37
  <g-card :nomargin="true" class="cashout__box cashout__summary">
38
- <div class="cashout__content-label cashout_title">Cash out Summary</div>
38
+ <div class="cashout__content-label cashout_title">{{metamask ? 'Withdrawal Summary': 'Cash out Summary'}}</div>
39
39
  <div class="cashout_body">
40
- <div class="summary__content">
41
- <div class="summary__content-label" v-if="metamask">Currency</div>
42
- <div class="summary__content-label" v-else>Cashout Method</div>
40
+ <div class="summary__content" v-if="!metamask">
41
+ <div class="summary__content-label">Cashout Method</div>
43
42
  <div class="summary__content-info">{{cashout_choice.method_label}}</div>
44
43
  </div>
45
44
  <div class="summary__content">
46
- <div class="summary__content-label">Cashout Amount</div>
45
+ <div class="summary__content-label">{{metamask ? 'Withdrawal Amount': 'Cashout Amount'}}</div>
47
46
  <div class="summary__content-info">{{ main_currency }} {{ $_formatNumber(xfield.cashout_amount, { decimal: 2}) }}</div>
48
47
  </div>
49
48
 
@@ -79,8 +78,8 @@
79
78
  </div>
80
79
  </g-card>
81
80
  <div class="button-cashout">
82
- <q-btn @click="viewStatus" color="primary" class="full-width q-pa-sm status_button" outline>View Cash Out Status</q-btn>
83
- <q-btn type="submit" :disable="dontsubmit" color="primary" class="full-width q-pa-sm q-mt-sm cashout_button">Proceed on Cash out &raquo;</q-btn>
81
+ <q-btn @click="viewStatus" color="primary" class="full-width q-pa-sm status_button" outline v-if="!metamask">View Cash Out Status</q-btn>
82
+ <q-btn type="submit" :disable="dontsubmit" color="primary" class="full-width q-pa-sm q-mt-sm cashout_button">{{metamask? 'CONFIRM ':'Proceed on Cash out '}}&raquo;</q-btn>
84
83
  </div>
85
84
  </div>
86
85
  </div>
@@ -143,7 +142,6 @@ export default {
143
142
  props:['cashout_choice_hide', 'metamask'],
144
143
  async mounted()
145
144
  {
146
-
147
145
  await this.$_getSlotInfo();
148
146
  await this.getCashoutMethod();
149
147
  await this.getpayoutmethod();
package/GCheckout.vue CHANGED
@@ -56,7 +56,8 @@
56
56
  <div>Courier: {{merch.courier_chosen ? merch.courier_chosen : ''}}</div>
57
57
  <div v-if="(merch.voucher_deductions*-1) > 0">Voucher: {{payment_method.payment_method_id =='gc_points' ? 'GC' : main_currency}} -{{$_formatNumber(merch.voucher_deductions, { decimal: 2})}}</div>
58
58
  <div>Shipping Fee: {{payment_method.payment_method_id =='gc_points' ? 'GC' : main_currency}} {{$_formatNumber(merch.shipping_fee, { decimal: 2})}}</div>
59
- <div class="text-bold">Order Total ({{merch.total_quantity}} Item): {{payment_method.payment_method_id =='gc_points' ? 'GC' : main_currency}} {{$_formatNumber(merch.order_total, { decimal: 2})}}</div>
59
+ <div class="g-cash-lable" v-if="show_gcash_fee">GCash Fee: PHP {{$_formatNumber(gcash_fee, { decimal: 2})}}</div>
60
+ <div class="text-bold">Order Total ({{merch.total_quantity}} Item): {{payment_method.payment_method_id =='gc_points' ? 'GC' : main_currency}} {{show_gcash_fee ? $_formatNumber(merch.order_total + gcash_fee, { decimal: 2}) : $_formatNumber(merch.order_total, { decimal: 2}) }}</div>
60
61
  </div>
61
62
  </div>
62
63
  </div>
@@ -92,7 +93,17 @@
92
93
  </div>
93
94
  <div class="manual-pay-method" v-if="payment_method.payment_method_id == 'dragon_pay'" >
94
95
  <div v-for="(onlines, ind) in available_payment_channel" class="dragon-pay-list" :key="ind">
95
- <q-radio dense v-model="dragon_pay_choice" :val="onlines" :label="onlines.shortName" />
96
+ <q-item tag="label" v-ripple>
97
+ <q-item-section avatar>
98
+ <!-- <q-radio v-model="color" val="orange" color="orange" /> -->
99
+ <q-radio v-model="dragon_pay_choice" :val="onlines" :label="onlines.shortName" />
100
+ </q-item-section>
101
+ <q-item-section>
102
+ <!-- <q-item-label>Orange</q-item-label> -->
103
+ <q-item-label caption>{{`${onlines.longName}`}}</q-item-label>
104
+ </q-item-section>
105
+ </q-item>
106
+ <!-- <q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" dense v-model="dragon_pay_choice" :val="onlines" :label="onlines.shortName" /> -->
96
107
  </div>
97
108
  </div>
98
109
  </div>
@@ -256,7 +267,8 @@
256
267
  <div class="order-total">
257
268
  <!-- <div>Order Total ({{product_list[i].quantity}} Item): {{main_currency}} {{order_total}}</div> -->
258
269
  <div class="shipping">Shipping Fee:<span> {{payment_method.payment_method_id =='gc_points' ? 'GC' : main_currency}} {{$_formatNumber(merch.shipping_fee, { decimal: 2})}}</span></div>
259
- <div class="total">Order Total ({{merch.total_quantity}} Item): <span> {{payment_method.payment_method_id =='gc_points' ? 'GC' : main_currency}} {{$_formatNumber(merch.order_total, { decimal: 2})}}</span></div>
270
+ <div class="g-cash-lable" v-if="show_gcash_fee">GCash Fee: PHP {{$_formatNumber(gcash_fee, { decimal: 2})}}</div>
271
+ <div class="total">Order Total ({{merch.total_quantity}} Item): <span> {{payment_method.payment_method_id =='gc_points' ? 'GC' : main_currency}} {{show_gcash_fee ? $_formatNumber(merch.order_total + gcash_fee, { decimal: 2}) : $_formatNumber(merch.order_total, { decimal: 2}) }}</span></div>
260
272
  </div>
261
273
  </div>
262
274
  </div>
@@ -421,6 +433,9 @@ export default {
421
433
  dragon_pay_choice:"",
422
434
  check:{},
423
435
  dragon_pay_amount:[],
436
+ filtered_payment_channel:[],
437
+ gcash_fee:0,
438
+ show_gcash_fee:false
424
439
  }),
425
440
  async mounted()
426
441
  {
@@ -529,6 +544,17 @@ export default {
529
544
  },
530
545
  watch:
531
546
  {
547
+ async dragon_pay_choice()
548
+ {
549
+ console.log(this.dragon_pay_choice.shortName);
550
+ this.gcash_fee = 0;
551
+ this.show_gcash_fee = false;
552
+ if(this.dragon_pay_choice.shortName == 'GCash' || this.dragon_pay_choice.shortName == 'GCash App')
553
+ {
554
+ this.show_gcash_fee = true;
555
+ this.addGcashFee(this.groupedProducts);
556
+ }
557
+ },
532
558
  async payment_method()
533
559
  {
534
560
  this.setDefaultCourier();
@@ -556,15 +582,44 @@ export default {
556
582
  },
557
583
  methods:
558
584
  {
585
+ async addGcashFee(product_list)
586
+ {
587
+ this.gcash_fee = 0;
588
+ if(this.dragon_pay_choice.shortName == 'GCash App')
589
+ {
590
+ this.gcash_fee = 20;
591
+ }
592
+ else if(this.dragon_pay_choice.shortName == 'GCash')
593
+ {
594
+ for (let i = 0; i < product_list.length; i++)
595
+ {
596
+ this.gcash_fee = (product_list[i].order_sub_total / 100 * 2) + 10;
597
+ }
598
+ }
599
+ },
559
600
  async getPaymentChannel()
560
601
  {
561
602
  if(this.public_settings.hasOwnProperty('dragonpay_details') && this.public_settings.dragonpay_details.active)
562
603
  {
563
- console.log('dragonpay:', this.public_settings.dragonpay_details.active );
604
+ this.filtered_payment_channel = this.public_settings.dragonpay_details.hasOwnProperty('active_payment') ? this.public_settings.dragonpay_details.active_payment : [];
564
605
  try
565
606
  {
566
607
  let ret = await this.$_fbCall('memberGetPaymentChannel', {amount:this.dragon_pay_amount});
567
- this.available_payment_channel = ret.data;
608
+ let return_payment = ret.data;
609
+ console.log(return_payment, 'All Dragonpay channel');
610
+ let x = 0;
611
+ let filtered_payment = [];
612
+ for (const element of return_payment)
613
+ {
614
+ if(this.filtered_payment_channel.includes(element.shortName))
615
+ {
616
+ filtered_payment.push(element);
617
+ }
618
+ x++;
619
+ }
620
+ this.available_payment_channel = filtered_payment;
621
+
622
+
568
623
  }
569
624
  catch (error)
570
625
  {
@@ -1536,6 +1591,15 @@ export default {
1536
1591
  },
1537
1592
  async proceedCheckout()
1538
1593
  {
1594
+ if(this.show_gcash_fee && this.gcash_fee > 0)
1595
+ {
1596
+ this.checkout_info.grand_total + this.gcash_fee;
1597
+ this.checkout_info.gcash_fee = this.gcash_fee;
1598
+ }
1599
+ else
1600
+ {
1601
+ this.checkout_info.gcash_fee = 0;
1602
+ }
1539
1603
  this.checkout_info.payment_method = this.payment_method;
1540
1604
  try
1541
1605
  {
package/GInvestment.vue CHANGED
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div v-if="this.user_info" class="investment-page">
2
+ <div class="investment-page">
3
3
  <div class="plan-grid">
4
4
  <!-- <div class="plan-item" v-for="(item, i) in investment_packages" :key="i" @click="choosePlan(item)" v-bind:class="{active : chosen_plan.key === item.key}">
5
5
  <div class="plan-title">
@@ -32,12 +32,9 @@
32
32
  </q-dialog>
33
33
 
34
34
  <q-dialog :maximized="$q.platform.is.mobile" transition-show="slide-up" transition-hide="slide-down" v-model="view_plan_dialog">
35
- <investment-view-dialog :investment_details="plan"></investment-view-dialog>
35
+ <investment-view-dialog :investment_details="plan" @closeDialog="view_plan_dialog = false"></investment-view-dialog>
36
36
  </q-dialog>
37
37
  </div>
38
- <div v-else>
39
- <span>You need to login to view this component.</span>
40
- </div>
41
38
  </template>
42
39
 
43
40
  <script>
@@ -48,6 +45,7 @@ export default
48
45
  {
49
46
  components: {AddInvestment, InvestmentViewDialog},
50
47
  mixins: [GlobalMixins],
48
+ props: ['profit_calculator'],
51
49
  filters: { },
52
50
  data:() =>(
53
51
  {
@@ -85,8 +83,19 @@ export default
85
83
  },
86
84
  choosePlan(plan)
87
85
  {
88
- this.plan = plan;
89
- this.is_investment_dialog_open = true;
86
+ if(this.profit_calculator)
87
+ {
88
+ this.plan = plan;
89
+ this.view_plan_dialog = true;
90
+ }
91
+ else
92
+ {
93
+ if(this.user_info)
94
+ {
95
+ this.plan = plan;
96
+ this.is_investment_dialog_open = true;
97
+ }
98
+ }
90
99
  },
91
100
  },
92
101
  computed: { }
@@ -0,0 +1,103 @@
1
+ <template>
2
+ <div class="leads-table">
3
+ <q-card class="full-width full-height form member-lead-list">
4
+ <div v-if="lead_list.length > 0" class="list">
5
+ <q-table :loading="loading_table" :pagination.sync="pagination" flat bordered :data="!loading_table ? lead_list : []" :columns="table_column">
6
+ </q-table>
7
+ </div>
8
+ <div v-else class="list">
9
+ <div class="icon" style="text-align: center">
10
+ <q-icon class="q-mr-sm" name="fas fa-exclamation-circle" style="font-size: 100px; color: #3887d1;"></q-icon>
11
+ </div>
12
+ <div class="no-leads" style="height: 50%; width: 100% !important; text-align: center; font-size: 40px; color: gray">
13
+ No Affiliate Yet
14
+ </div>
15
+ </div>
16
+ </q-card>
17
+ <q-dialog v-model="is_slot_create_dialog_open">
18
+ <g-code-vault @closePopup="is_slot_create_dialog_open = false;" :lead_info="lead_info"></g-code-vault>
19
+ </q-dialog>
20
+ <q-dialog v-model="is_profile_dialog_open">
21
+ <g-profile @closePopup="is_profile_dialog_open = false" :mode="'dialog'" :create_slot="true" :prop_user_info="lead_info.lead"></g-profile>
22
+ </q-dialog>
23
+ </div>
24
+ </template>
25
+
26
+ <script>
27
+ import DB_USER from './models/DB_USER';
28
+ import GlobalMixins from './mixins/global_mixins';
29
+ import {formatDate} from './utilities/DateUtils';
30
+ import GCodeVault from './GCodeVault';
31
+ import GProfile from './components/GProfile';
32
+ export default
33
+ {
34
+ name: "GLeadsComponent",
35
+ components: { GCodeVault, GProfile},
36
+ mixins: [GlobalMixins],
37
+ filters: { },
38
+ data:() =>(
39
+ {
40
+ pagination: { rowsPerPage: 10 },
41
+ loading_table:false,
42
+ is_profile_dialog_open: false,
43
+ db_user: new DB_USER(),
44
+ lead_list: [],
45
+ is_dialog_open : false,
46
+ is_slot_create_dialog_open:false,
47
+ lead_info:{},
48
+ table_column:
49
+ [
50
+ {
51
+ name : 'email',
52
+ label : 'Email',
53
+ field : row => row.email,
54
+ align : 'left',
55
+ required: true,
56
+ sortable: true,
57
+ },
58
+ {
59
+ name : 'full_name',
60
+ label : 'Name',
61
+ field : row => row.full_name,
62
+ align : 'left',
63
+ required: true,
64
+ sortable: true,
65
+ },
66
+ {
67
+ name : 'created_date',
68
+ label : 'Date Joined',
69
+ field : row => row.created_date,
70
+ format : val => formatDate(val, 'MM/DD/YY (hh:mm A)'),
71
+ align : 'left',
72
+ required: true,
73
+ sortable: true,
74
+ },
75
+ {
76
+ name : 'contact_number',
77
+ label : 'Contact Number',
78
+ field : row => row.contact_number,
79
+ align : 'center',
80
+ required: true,
81
+ sortable: true,
82
+ }
83
+ ],
84
+ }),
85
+ async mounted() {
86
+ await this.$_getSlotInfo();
87
+ await this.$bind('lead_list', this.db_user.collection().where('sponsor', '==', this.current_slot_info.slot_code));
88
+ console.log(this.lead_list);
89
+ },
90
+ methods: {
91
+ createSlot(lead)
92
+ {
93
+ this.lead_info.lead = lead;
94
+ this.is_profile_dialog_open = true;
95
+ },
96
+ open_dialog()
97
+ {
98
+ this.is_dialog_open=true;
99
+ }
100
+ },
101
+ computed: { }
102
+ }
103
+ </script>
@@ -9,7 +9,6 @@
9
9
  import GlobalMixins from './mixins/global_mixins';
10
10
  import PaymentProcessor from './contracts/PaymentProcessor.json';
11
11
  import USDT from './contracts/USDT.json';
12
- import settings from './settings';
13
12
  import { ethers, Contract } from 'ethers';
14
13
  export default
15
14
  {
@@ -24,10 +23,11 @@ export default
24
23
  usdt: null
25
24
  },
26
25
  hide_button:false,
26
+ public_settings:{}
27
27
  }),
28
- mounted()
28
+ async mounted()
29
29
  {
30
- console.log(sessionStorage.metamask_login);
30
+ this.public_settings = await this.$_getData('public_settings');
31
31
  if(sessionStorage.metamask_login)
32
32
  {
33
33
  this.hide_button = true;
@@ -43,13 +43,13 @@ export default
43
43
  this.metamask.signer = provider.getSigner();
44
44
 
45
45
  this.metamask.payment_processor = new Contract(
46
- settings.payment_processor,
46
+ this.public_settings.payment_processor,
47
47
  PaymentProcessor.abi,
48
48
  this.metamask.signer
49
49
  );
50
50
 
51
51
  this.metamask.usdt = new Contract(
52
- settings.usdt,
52
+ this.public_settings.usdt,
53
53
  USDT.abi,
54
54
  this.metamask.signer
55
55
  );
@@ -66,7 +66,7 @@ export default
66
66
  console.log(error);
67
67
  }
68
68
  // console.log(await this.metamask.usdt.balanceOf(await this.metamask.signer.getAddress()).then(result => ethers.utils.formatEther(result.toString())));
69
- // this.merchant_balance = await this.usdt.balanceOf(this.settings.merchant).then(result => ethers.utils.formatEther(result.toString()));
69
+ // this.merchant_balance = await this.usdt.balanceOf(this.public_settings.merchant).then(result => ethers.utils.formatEther(result.toString()));
70
70
  }
71
71
  else
72
72
  {
@@ -178,7 +178,6 @@ export default
178
178
  }),
179
179
  async mounted() {
180
180
  await this.getTableData();
181
- this.mbot = true;
182
181
  if(this.mbot)
183
182
  {
184
183
  await this.mbotLog();
@@ -188,29 +187,29 @@ export default
188
187
  {
189
188
  async mbotLog()
190
189
  {
191
- this.table_data.forEach(element =>
192
- {
193
- if(element.type == 'direct_invest')
194
- {
195
- element.message = `Your account <b>${element.current_owner_info.email}</b> earned direct referral amounting to <b>${element.amount} USDT</b> from invest a package ${element.cause_info.owner_info.email}`;
196
- }
197
- else if(element.type == 'unilevel_invest')
198
- {
199
- element.message = `Your account <b>${element.current_owner_info.email}</b> earned unilevel amounting to <b>${element.amount} USDT</b> from ${element.cause_info.owner_info.email}`;
200
- }
201
- else if(element.type == 'receive_interest')
202
- {
203
- // element.message = `Your account <b>${element.current_owner_info.email}</b> earned direct referral amounting to <b>USD 100.00</b> from invest a package IVABASNKNVL-PH`;
204
- }
205
- else if(element.type == 'capital_investment')
206
- {
207
- // element.message = `Your account <b>${element.current_owner_info.email}</b> earned direct referral amounting to <b>USD 100.00</b> from invest a package IVABASNKNVL-PH`;
208
- }
209
- else if(element.type == 'create_investment')
210
- {
211
- // element.message = `Your account <b>${element.current_owner_info.email}</b> earned direct referral amounting to <b>USD 100.00</b> from invest a package IVABASNKNVL-PH`;
212
- }
213
- });
190
+ // this.table_data.forEach(element =>
191
+ // {
192
+ // if(element.type == 'direct_invest')
193
+ // {
194
+ // element.message = `Your account <b>${element.current_owner_info.email}</b> earned direct referral amounting to <b>${element.amount} USDT</b> from invest a package ${element.cause_info.owner_info.email}`;
195
+ // }
196
+ // else if(element.type == 'unilevel_invest')
197
+ // {
198
+ // element.message = `Your account <b>${element.current_owner_info.email}</b> earned unilevel amounting to <b>${element.amount} USDT</b> from ${element.cause_info.owner_info.email}`;
199
+ // }
200
+ // else if(element.type == 'receive_interest')
201
+ // {
202
+ // // element.message = `Your account <b>${element.current_owner_info.email}</b> earned direct referral amounting to <b>USD 100.00</b> from invest a package IVABASNKNVL-PH`;
203
+ // }
204
+ // else if(element.type == 'capital_investment')
205
+ // {
206
+ // // element.message = `Your account <b>${element.current_owner_info.email}</b> earned direct referral amounting to <b>USD 100.00</b> from invest a package IVABASNKNVL-PH`;
207
+ // }
208
+ // else if(element.type == 'create_investment')
209
+ // {
210
+ // // element.message = `Your account <b>${element.current_owner_info.email}</b> earned direct referral amounting to <b>USD 100.00</b> from invest a package IVABASNKNVL-PH`;
211
+ // }
212
+ // });
214
213
  console.log(this.table_data);
215
214
  },
216
215
  async getTableData()
package/GLogin.vue CHANGED
@@ -2,7 +2,7 @@
2
2
  <div class="g-login">
3
3
  <q-form @submit="submitLogin()">
4
4
  <div class="g-login__fields">
5
- <div class="label">Emails Address / Slot Code</div>
5
+ <div class="label"> {{mbot ? 'Emails Address':'Emails Address / Slot Code'}}</div>
6
6
  <div class="input">
7
7
  <q-input :disable="is_submitting" v-model="form_data.email" dense placeholder="Enter Email" class="input input-email" outlined stack-label/>
8
8
  </div>
@@ -83,6 +83,7 @@ export default
83
83
  terms: String,
84
84
  val: Boolean,
85
85
  hide_registration: Boolean,
86
+ mbot:Boolean
86
87
 
87
88
  },
88
89
  components: { GRegistration,GForgotPassword },
package/GRegistration.vue CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
  <!-- create account -->
64
64
  <div class="g-registration__fields q-mt-md">
65
- <q-btn :loading="is_submitting" unelevated class="full-width" color="primary" type="submit">Sign Up</q-btn>
65
+ <q-btn :loading="is_submitting" unelevated class="full-width" color="primary" type="submit"> {{mbot ? 'Register' : 'Sign Up'}}</q-btn>
66
66
  </div>
67
67
  <div v-if="!mbot" class="term"><q-checkbox v-model="val" /> <span @click="is_term_and_condition_open =true" class="term_span"> By clicking sign-up, I have read and I agree to the Company Policies, Terms and Conditions, Rules and Regulation, Code of Conduct And Ethical Standards and the Privacy Policy</span></div>
68
68
  <!--
@@ -211,7 +211,7 @@ export default
211
211
 
212
212
  this.$q.dialog(
213
213
  {
214
- title: 'An Error Has Occured',
214
+ title: this.mbot ? 'Error': 'An Error Has Occured' ,
215
215
  message: error.message
216
216
  });
217
217
  }
@@ -83,6 +83,10 @@
83
83
  <div class="col-7 label">{{settings.custom_ecommerce_fee.label}}</div>
84
84
  <div class="col-5 value">{{ $_formatNumber(sale_info[settings.custom_ecommerce_fee.id], { decimal: 2}) }}<template v-if="settings.hasOwnProperty('custom_ecommerce_fee') && settings.custom_ecommerce_fee.percentage">(<b>{{settings.custom_ecommerce_fee.value}}%</b>)</template></div>
85
85
  </div>
86
+ <div class="row bordered" v-if="sale_info.gcash_fee > 0">
87
+ <div class="col-7 label">GCash Fee</div>
88
+ <div class="col-5 value text-right">{{ $_formatNumber(sale_info.gcash_fee, { decimal: 2}) }}</div>
89
+ </div>
86
90
  <div class="row">
87
91
  <div class="col-7 label">Grand Total</div>
88
92
  <div class="col-5 value text-primary text-bold">{{payment_method.payment_method_id =='gc_points' ? 'GC' : settings.main_currency }} {{ $_formatNumber(grand_total, { decimal: 2}) }}</div>
@@ -172,6 +176,10 @@
172
176
  <div class="col-7 label">Sub Total</div>
173
177
  <div class="col-5 value text-right">{{ $_formatNumber(sub_total, { decimal: 2}) }}</div>
174
178
  </div>
179
+ <div class="row bordered">
180
+ <div class="col-7 label">GCash Fee</div>
181
+ <div class="col-5 value text-right">{{ $_formatNumber(sale_info.gcash_fee, { decimal: 2}) }}</div>
182
+ </div>
175
183
  <div class="row bordered">
176
184
  <div class="col-7 label">Shipping Total</div>
177
185
  <div class="col-5 value text-right">{{ $_formatNumber(shipping_total, { decimal: 2}) }}</div>
@@ -31,7 +31,7 @@
31
31
  <input type="hidden" name="ResponseURL" :value="ipay88_response_url">
32
32
  <input type="hidden" name="BackendURL" :value="ipay88_backend_url">
33
33
  </form>
34
- <form v-if="sale.payment_method.payment_method_id == 'dragon_pay'" method="get" id="dragon_pay_form" name="ePayment" :action="public_settings.dragonpay_details.test_payment_request_url">
34
+ <form v-if="sale.payment_method.payment_method_id == 'dragon_pay'" method="get" id="dragon_pay_form" name="ePayment" :action="public_settings.dragonpay_details.payment_request_url">
35
35
  <input type="hidden" name="merchantid" :value="merchant_id">
36
36
  <input type="hidden" name="txnid" :value="txnid">
37
37
  <input type="hidden" name="amount" :value="amount">
@@ -51,11 +51,10 @@
51
51
  </template>
52
52
 
53
53
  <script>
54
- import GlobalMixins from '../../mixins/global_mixins';
55
- import PaymentProcessor from '../../contracts/PaymentProcessor.json';
56
- import USDT from '../../contracts/USDT.json';
57
- import settings from '../../settings/settings';
58
- import { ethers, Contract } from 'ethers';
54
+ import GlobalMixins from '../../mixins/global_mixins';
55
+ import PaymentProcessor from '../../contracts/PaymentProcessor.json';
56
+ import USDT from '../../contracts/USDT.json';
57
+ import { ethers, Contract } from 'ethers';
59
58
  import {QSpinnerFacebook } from 'quasar'
60
59
 
61
60
 
@@ -82,8 +81,8 @@ export default
82
81
  signer: null,
83
82
  payment_processor: null,
84
83
  usdt: null
85
- }
86
-
84
+ },
85
+ public_settings:{}
87
86
  }),
88
87
  components: { },
89
88
  props:
@@ -92,6 +91,7 @@ export default
92
91
  },
93
92
  async mounted()
94
93
  {
94
+ this.public_settings = await this.$_getData('public_settings');
95
95
  await this.$_getSlotInfo();
96
96
  // if (window.ethereum)
97
97
  // {
@@ -175,27 +175,27 @@ export default
175
175
  this.metamask.signer = provider.getSigner();
176
176
 
177
177
  this.metamask.payment_processor = new Contract(
178
- settings.payment_processor,
178
+ this.public_settings.payment_processor,
179
179
  PaymentProcessor.abi,
180
180
  this.metamask.signer
181
181
  );
182
182
 
183
183
  this.metamask.usdt = new Contract(
184
- settings.usdt,
184
+ this.public_settings.usdt,
185
185
  USDT.abi,
186
186
  this.metamask.signer
187
187
  );
188
188
 
189
189
  console.log(await this.metamask.usdt.balanceOf(await this.metamask.signer.getAddress()).then(result => ethers.utils.formatEther(result.toString())));
190
- // this.merchant_balance = await this.usdt.balanceOf(this.settings.merchant).then(result => ethers.utils.formatEther(result.toString()));
190
+ // this.merchant_balance = await this.usdt.balanceOf(this.this.public_settings.merchant).then(result => ethers.utils.formatEther(result.toString()));
191
191
  }
192
192
  const amount = Number(this.wallet_details.amount);
193
193
 
194
194
 
195
- const tx1 = await this.metamask.usdt.approve(settings.payment_processor, amount);
195
+ const tx1 = await this.metamask.usdt.approve(this.public_settings.payment_processor, amount);
196
196
  await tx1.wait();
197
197
 
198
- const tx2 = await this.metamask.payment_processor.pay(settings.usdt, amount, this.wallet_details.transaction_id);
198
+ const tx2 = await this.metamask.payment_processor.pay(this.public_settings.usdt, amount, this.wallet_details.transaction_id);
199
199
  await tx2.wait();
200
200
  }
201
201
  catch (e)
@@ -1,5 +1,13 @@
1
1
  <template>
2
- <q-card :style="`min-width: ${ $q.platform.is.mobile ? '100%' : '400px' };`" class="form add-slot">
2
+ <q-card :style="`min-width: ${ $q.platform.is.mobile ? '100%' : '400px' };`" class="investment-breakdown-dialog">
3
+ <q-bar class="bg-primary text-white q-pa-lg">
4
+ <q-icon class="q-mr-sm" name="trending_up"></q-icon>
5
+ <b>Profit Breakdown</b>
6
+ <q-space />
7
+ <q-btn dense flat icon="close" v-close-popup>
8
+ <q-tooltip content-class="bg-white text-primary">Close</q-tooltip>
9
+ </q-btn>
10
+ </q-bar>
3
11
  <q-card-section class='content text-center bg-primary my-card'>
4
12
  <q-card class="my-card" v-if="table_loading">
5
13
  <!-- <q-table flat :data="investment_preview" :columns="table_column"></q-table> -->
@@ -93,7 +93,7 @@ export default
93
93
  },
94
94
  {
95
95
  name : 'investment_duration',
96
- label : 'Investment Durtion (Days)',
96
+ label : 'Duration (Days)',
97
97
  field : row => row.plan.investment_duration,
98
98
  align : 'center',
99
99
  required: true,
@@ -1,8 +1,8 @@
1
1
  <template>
2
2
  <q-card :style="`min-width: ${ $q.platform.is.mobile ? '100%' : '600px' };`" class="form add-slot">
3
3
  <q-bar class='bg-primary text-white q-pa-lg'>
4
- <q-icon class='q-mr-sm' name='fa fa-heart'></q-icon>
5
- <b>Investment Status</b>
4
+ <q-icon class='q-mr-sm' name='stacked_line_chart'></q-icon>
5
+ <b>Trade Status</b>
6
6
  <q-space />
7
7
  <q-btn dense flat icon='close' v-close-popup><q-tooltip content-class='bg-white text-primary'>Close</q-tooltip></q-btn>
8
8
  </q-bar>
@@ -1,6 +1,6 @@
1
1
  <template>
2
- <q-card :style="`min-width: ${ $q.platform.is.mobile ? '100%' : '300px' };`" class="form add-slot">
3
- <q-card-section class='content text-center bg-primary my-card'>
2
+ <q-card :style="`min-width: ${ $q.platform.is.mobile ? '100%' : '300px' };`" class="profit-view">
3
+ <!-- <q-card-section class='content text-center bg-primary my-card'>
4
4
  <q-card class="my-card" v-if="investment_details">
5
5
  <q-card-section>
6
6
  <div class="text-h6 text-bold">{{investment_details.investment_name}}</div>
@@ -20,7 +20,7 @@
20
20
  <q-btn @click="showSample" flat>Sample Computation</q-btn>
21
21
  </q-card-actions>
22
22
  </q-card>
23
- </q-card-section>
23
+ </q-card-section> -->
24
24
  <q-dialog :maximized="$q.platform.is.mobile" transition-show="slide-up" transition-hide="slide-down" v-model="is_sample_computation_open">
25
25
  <investment-breakdown-dialog :investment_details="investment_details" @closeDialog="is_sample_computation_open = false"></investment-breakdown-dialog>
26
26
  </q-dialog>
@@ -50,14 +50,15 @@ export default
50
50
  async mounted()
51
51
  {
52
52
  await this.$_getSlotInfo()
53
+ this.showSample();
53
54
  },
54
55
  methods:
55
56
  {
56
57
  showSample()
57
58
  {
58
59
  this.$q.dialog({
59
- title: 'Sample Computation',
60
- message: 'Please Enter Amount',
60
+ title: 'Profit Calculator',
61
+ message: 'Enter Amount',
61
62
  prompt: {
62
63
  model: this.amount,
63
64
  type: 'number' // optional
@@ -67,7 +68,7 @@ export default
67
68
  }).onOk(data => {
68
69
  this.computeSample(data);
69
70
  }).onCancel(() => {
70
- // console.log('>>>> Cancel')
71
+ this.$emit('closeDialog');
71
72
  }).onDismiss(() => {
72
73
  // console.log('I am triggered on both OK and Cancel')
73
74
  })
@@ -90,7 +90,7 @@
90
90
  </div>
91
91
  <div v-if="list.status =='delivered' || list.status =='shipping'" style="background:white;text-align:right;padding:0px 20px 10px 0px;">
92
92
  <q-btn dense color="primary" no-caps @click="openTrackingDialog(i)" label="Trace Order" style="margin: 0 10px"></q-btn>
93
- <q-btn dense color="primary" v-if="list.status =='delivered' && list.payment_method.payment_method_id =='online_payment' || list.status =='delivered' && list.payment_method.payment_method_id =='cod' || list.status =='delivered' && list.payment_method.payment_method_id =='dragon_pay'" no-caps @click="orderReceived(i)" label="Order Received"></q-btn>
93
+ <q-btn dense color="primary" v-if="list.status =='delivered' && list.payment_method.payment_method_id =='online_payment' || list.status =='delivered' && list.payment_method.payment_method_id =='cod' || list.status =='delivered' && list.payment_method.payment_method_id =='dragon_pay' || list.status =='delivered' && list.payment_method.payment_method_id =='manual_pay'" no-caps @click="orderReceived(i)" label="Order Received"></q-btn>
94
94
  </div>
95
95
  </div>
96
96
  </div>
@@ -160,7 +160,7 @@
160
160
  </div>
161
161
  <div v-if="list.status =='delivered' || list.status =='shipping'" style="background:white;text-align:right;padding:10px">
162
162
  <q-btn dense color="primary" no-caps @click="openTrackingDialog(i)" label="Trace Order" style="margin: 0 10px"></q-btn>
163
- <q-btn dense color="primary" v-if="list.status =='delivered' && list.payment_method.payment_method_id =='online_payment' || list.status =='delivered' && list.payment_method.payment_method_id =='cod'" no-caps @click="orderReceived(i)" label="Order Received"></q-btn>
163
+ <q-btn dense color="primary" v-if="list.status =='delivered' && list.payment_method.payment_method_id =='online_payment' || list.status =='delivered' && list.payment_method.payment_method_id =='cod' || list.status =='delivered' && list.payment_method.payment_method_id =='dragon_pay' || list.status =='delivered' && list.payment_method.payment_method_id =='manual_pay'" no-caps @click="orderReceived(i)" label="Order Received"></q-btn>
164
164
  </div>
165
165
  </div>
166
166
  </div>
@@ -109,10 +109,10 @@
109
109
  <div class="slot-title">Direct: </div>
110
110
  <div class="slot-value">{{slot_info.personal_count}}</div>
111
111
  </div>
112
- <div class="items">
112
+ <!-- <div class="items">
113
113
  <div class="slot-title">Maintenance: </div>
114
114
  <div class="slot-value">{{slot_info.points.personal_pv - (slot_info.points.spent_ppv ? slot_info.points.spent_ppv : 0) - (slot_info.points.extra_spent_ppv ? slot_info.points.extra_spent_ppv : 0) }}</div>
115
- </div>
115
+ </div> -->
116
116
  <div class="items">
117
117
  <div class="slot-title">Sponsor: </div>
118
118
  <div class="slot-value">{{slot_info.sponsor}}</div>
@@ -131,10 +131,10 @@
131
131
  <div class="slot-title">Direct: </div>
132
132
  <div class="slot-value">{{slot_info.personal_count}}</div>
133
133
  </div>
134
- <div class="items">
134
+ <!-- <div class="items">
135
135
  <div class="slot-title">Maintenance: </div>
136
136
  <div class="slot-value">{{slot_info.points.personal_pv - (slot_info.points.spent_ppv ? slot_info.points.spent_ppv : 0) - (slot_info.points.extra_spent_ppv ? slot_info.points.extra_spent_ppv : 0) }}</div>
137
- </div>
137
+ </div> -->
138
138
  <div class="items">
139
139
  <div class="slot-title">Sponsor: </div>
140
140
  <div class="slot-value">{{slot_info.sponsor}}</div>
@@ -2,10 +2,9 @@
2
2
  <q-card :style="`min-width: ${ $q.platform.is.mobile ? '100%' : '400px' };`" class="form add-slot">
3
3
  <!-- HEADER -->
4
4
  <q-bar class="bg-primary text-white q-pa-lg">
5
- <q-icon class="q-mr-sm" name="fa fa-splotch"></q-icon>
6
- <b>Add Investment</b>
5
+ <q-icon class="q-mr-sm" name="credit_card"></q-icon>
6
+ <b>DEPOSIT</b>
7
7
  <q-space />
8
-
9
8
  <q-btn dense flat icon="close" v-close-popup>
10
9
  <q-tooltip content-class="bg-white text-primary">Close</q-tooltip>
11
10
  </q-btn>
@@ -13,11 +12,10 @@
13
12
  <div class="desktop-only">
14
13
  <q-card-section class="content">
15
14
  <q-stepper flat v-model="step" vertical color="primary" animated>
16
- <q-step :name="1" title="Create your plan" icon="settings" :done="step > 1">
17
15
  <q-form @submit.prevent="confirmPlan()">
18
16
  <div class="row justify-center">
19
17
  <div class="q-py-md col-12 plan-amount-text text-center">
20
- <b>Current Wallet </b> :
18
+ <b>Available Balance</b> :
21
19
  <div class="text-primary" v-if="current_slot_info">
22
20
  {{ $_formatNumber(current_slot_info.wallet ? current_slot_info.wallet : 0, { decimal: 2 }) }} USDT
23
21
  </div>
@@ -30,9 +28,8 @@
30
28
  </div>
31
29
  <q-btn type="submit" :loading="submit_loading" unelevated class="full-width q-mt-md" color="primary"><q-icon name="fa fa-check q-mr-sm" size="14px"></q-icon> Confirm</q-btn>
32
30
  </q-form>
33
- </q-step>
34
31
 
35
- <q-step :name="2" title="Verify All Details" icon="assignment" :done="step > 2">
32
+ <!-- <q-step :name="2" title="Verify All Details" icon="assignment" :done="step > 2">
36
33
  <div class="add-slot__verify-details">
37
34
  <q-table flat :data="investment_preview" :columns="table_column"></q-table>
38
35
  </div>
@@ -48,18 +45,21 @@
48
45
  <div class="q-pt-sm q-mr-lg q-ml-lg">Your investment has been successfully created!</div>
49
46
  </div>
50
47
  <q-btn @click="emitClose" v-close-popup type="button" :loading="submit_loading" unelevated class="full-width q-mt-md" color="primary"><q-icon name="fa fa-check q-mr-sm" size="14px"></q-icon> Transaction Complete</q-btn>
51
- </q-step>
48
+ </q-step> -->
52
49
  </q-stepper>
53
50
  </q-card-section>
54
51
  </div>
52
+ <q-dialog :maximized="$q.platform.is.mobile" transition-show="slide-up" transition-hide="slide-down" v-model="is_investment_breakdown_open">
53
+ <investment-breakdown :breakdown_details="investment_info" @closeDialog="confirmDetails"></investment-breakdown>
54
+ </q-dialog>
55
55
  </q-card>
56
56
  </template>
57
57
 
58
58
  <script>
59
59
  import GlobalMixins from '../mixins/global_mixins';
60
60
  import GRegistration from './../GRegistration';
61
- import { formatDate } from '../utilities/DateUtils';
62
- import { log } from 'console';
61
+ import InvestmentBreakdown from './InvestmentBreakdown.vue';
62
+ import {QSpinnerFacebook } from 'quasar'
63
63
 
64
64
 
65
65
  export default
@@ -67,6 +67,7 @@ export default
67
67
  mixins: [GlobalMixins],
68
68
  data: () =>
69
69
  ({
70
+ is_investment_breakdown_open:false,
70
71
  investment_packages:'',
71
72
  submit_loading : false,
72
73
  step : 1,
@@ -108,9 +109,12 @@ export default
108
109
  format: val => `${val.toFixed(2)}`,
109
110
  sortable: true,
110
111
  }
111
- ]
112
+ ],
113
+ investment_info:{
114
+ investment_preview:[]
115
+ }
112
116
  }),
113
- components: { GRegistration },
117
+ components: { GRegistration, InvestmentBreakdown },
114
118
  props:
115
119
  {
116
120
  is_show: Boolean,
@@ -136,13 +140,17 @@ export default
136
140
  {
137
141
  this.$q.dialog({ title: "Something's not quite right", message: "Please choose a plan." });
138
142
  }
139
- else if(this.investment_amount < this.chosen_plan.minimum_investment)
143
+ else if(this.investment_amount < 1)
144
+ {
145
+ this.$q.dialog({ title: "Something's not quite right", message: "Please enter a valid amount" });
146
+ }
147
+ else if(this.investment_amount < this.plan.investment_minimum)
140
148
  {
141
149
  this.$q.dialog({ title: "Something's not quite right", message: "Investment amount is below the minimum required." });
142
150
  }
143
151
  else
144
152
  {
145
- this.step++;
153
+ // this.step++;
146
154
  let days_left = this.plan.investment_duration
147
155
  let ctr = 0;
148
156
  let start_date = new Date();
@@ -163,10 +171,13 @@ export default
163
171
  ctr++;
164
172
  }
165
173
  while(days_left > 0)
166
- }
167
174
 
175
+ this.investment_info.investment_preview = this.investment_preview;
176
+ this.investment_info.plan = this.plan;
177
+ this.investment_info.amount = this.investment_amount;
178
+ this.is_investment_breakdown_open = true;
179
+ }
168
180
  this.submit_loading = false;
169
-
170
181
  },
171
182
  addDaysToDate(days)
172
183
  {
@@ -174,12 +185,13 @@ export default
174
185
  res.setDate(res.getDate() + days);
175
186
  return res;
176
187
  },
177
- async confirmDetails()
188
+ async confirmDetails(details)
178
189
  {
190
+ this.is_investment_breakdown_open = false
179
191
  this.submit_loading = true;
180
192
  let fields = {}
181
- fields.plan = this.plan;
182
- fields.amount = this.investment_amount;
193
+ fields.plan = details.plan;
194
+ fields.amount = Number(details.amount);
183
195
  fields.slot_id = this.current_slot_info.id;
184
196
 
185
197
  if(fields.amount < this.plan.invesment_minimum)
@@ -194,6 +206,14 @@ export default
194
206
  }
195
207
  else
196
208
  {
209
+ this.$q.loading.show({
210
+ spinner: QSpinnerFacebook,
211
+ spinnerColor: 'white',
212
+ spinnerSize: 140,
213
+ backgroundColor: 'primary',
214
+ message: 'Some important process is in progress. Hang on...',
215
+ messageColor: 'black'
216
+ })
197
217
  try
198
218
  {
199
219
  let res = await this.$_fbCall('memberCreateInvestment', { data: fields});
@@ -204,8 +224,9 @@ export default
204
224
  this.submit_loading = false;
205
225
  this.step --;
206
226
  }
207
- this.step++
208
227
  this.submit_loading = false;
228
+ this.$q.loading.hide();
229
+ this.$emit('closeDialog');
209
230
  }
210
231
  }
211
232
  }
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <q-card class="direct-downline" style="width: 1300px; height: 700px;max-width: 1700px;">
3
3
  <div class="downline-container">
4
- <div class="title text-primary">Cashout List</div>
4
+ <div class="title text-primary"> {{metamask ? 'Withdrawal List': 'Cashout List'}}</div>
5
5
  <q-table :loading="table_loading"
6
6
  separator="cell"
7
7
  flat
@@ -0,0 +1,83 @@
1
+ <template>
2
+ <q-card class="investment-breakdown">
3
+ <div class="table-holder">
4
+ <q-table :pagination.sync="pagination" flat :data="investment_breakdown" :columns="table_column"></q-table>
5
+ </div>
6
+ <div class="button-holder">
7
+ <q-btn color="primary" @click="emitFields" icon="check" label="confirm" class="confirm-button q-mr-sm"/>
8
+ <q-btn color="primary" icon="arrow_back" label="back" v-close-popup class="cancel-button"/>
9
+ </div>
10
+ </q-card>
11
+ </template>
12
+
13
+ <script>
14
+ export default
15
+ {
16
+ props: {
17
+ breakdown_details: Object,
18
+ },
19
+ filters: { },
20
+ data:() =>(
21
+ {
22
+ pagination:
23
+ {
24
+ rowsPerPage: 10 // current rows per page being displayed
25
+ },
26
+ investment_breakdown:[],
27
+ table_column :
28
+ [
29
+ {
30
+ name : 'interest_date',
31
+ label : 'Date of Interest',
32
+ field : row => row.interest_date,
33
+ align : 'center',
34
+ required: true,
35
+ format: val => `${val.toLocaleDateString()}`,
36
+ sortable: true,
37
+ },
38
+ {
39
+ name : 'projection',
40
+ label : 'Projected Interest',
41
+ field : row => row.projection,
42
+ align : 'center',
43
+ required: true,
44
+ format: val => `${val}`,
45
+ sortable: true,
46
+ },
47
+ {
48
+ name : 'projected_income',
49
+ label : 'Projected Income',
50
+ field : row => row.projected_income,
51
+ align : 'center',
52
+ required: true,
53
+ format: val => `${val.toFixed(2)}`,
54
+ sortable: true,
55
+ }
56
+ ]
57
+ }),
58
+ mounted()
59
+ {
60
+ this.investment_breakdown = this.breakdown_details.investment_preview ? this.breakdown_details.investment_preview : [] ;
61
+ },
62
+ methods:
63
+ {
64
+ emitFields()
65
+ {
66
+ this.$emit('closeDialog', this.breakdown_details);
67
+ },
68
+ },
69
+ computed: { }
70
+ }
71
+ </script>
72
+
73
+ <style lang="scss">
74
+ .investment-breakdown
75
+ {
76
+ padding: 20px;
77
+ .table-holder{
78
+ }
79
+ .button-holder{
80
+ text-align: end;
81
+ }
82
+ }
83
+ </style>
@@ -1,8 +1,8 @@
1
1
  <template>
2
2
  <q-card class="investment-logs">
3
3
  <q-bar class='bg-primary text-white q-pa-lg'>
4
- <q-icon class='q-mr-sm' name='fa fa-heart'></q-icon>
5
- <b>{{investment_info.plan.investment_name}} Logs</b>
4
+ <q-icon class='q-mr-sm' name='stacked_line_chart'></q-icon>
5
+ <b>{{investment_info.plan.investment_name}} History</b>
6
6
  <q-space />
7
7
  <q-btn dense flat icon='close' v-close-popup><q-tooltip content-class='bg-white text-primary'>Close</q-tooltip></q-btn>
8
8
  </q-bar>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geer-builder",
3
- "version": "1.2.531",
3
+ "version": "1.2.534",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {