-
+
+
-
{{ basicStats.today_sum / (basicStats.today_count ? basicStats.today_count : 1) | currency:'GBP':'symbol':'1.2-2' }}
-
Avg. Spend Today
-
+
+
+
+
+ -
+
+
+
{{ sectorNames [sector] || 'N/A' }}
+
+
+
Bought
+
{{ sectorPurchases[i] || 'N/A' }}
+
+
+ - 10 && disableSectorButton == false" class="divider text-center">
+
+
+
-
Lorem ipsum dolor sit amet enim. -->
-
-
-
-
-
-
-
{{ basicStats.week_sum | currency:'GBP':'symbol':'1.2-2' }}
-
Last Week Total
-
-
-
-
-
-
-
-
{{ basicStats.week_sum / (basicStats.week_count ? basicStats.week_count : 1) | currency:'GBP':'symbol':'1.2-2' }}
-
Last Week Avg. Spend
-
-
-
-
-
-
-
-
{{ basicStats.month_sum | currency:'GBP':'symbol':'1.2-2' }}
-
Last Month Total
-
-
-
-
-
-
-
-
{{ basicStats.month_sum / (basicStats.month_count ? basicStats.month_count : 1) | currency:'GBP':'symbol':'1.2-2' }}
-
Last Month Avg. Spend
-
-
-
-
-
-
-
-
{{ basicStats.user_sum | currency:'GBP':'symbol':'1.2-2' }}
-
User Total
-
-
-
-
-
-
-
-
{{ basicStats.user_sum / (basicStats.user_count ? basicStats.user_count : 1) | currency:'GBP':'symbol':'1.2-2' }}
-
User Avg. Spend
-
diff --git a/src/app/dashboard/dashboard-customer.component.ts b/src/app/dashboard/dashboard-customer.component.ts
index 39230e3..54867f2 100644
--- a/src/app/dashboard/dashboard-customer.component.ts
+++ b/src/app/dashboard/dashboard-customer.component.ts
@@ -2,15 +2,14 @@ import { Directive, Component, OnInit } from '@angular/core';
import { ApiService } from '../providers/api-service';
import { Router } from '@angular/router';
import { GraphWidget } from '../widgets/graph-widget.component';
+import { CustBarSnippetComponent } from '../snippets/cust-snippet-bar.component';
+import { PiePanel } from '../panels/pie-panel.component';
+import { DataType } from '../shared/data-types.enum';
@Component({
templateUrl: 'dashboard-customer.component.html'
})
export class DashboardCustomerComponent implements OnInit {
- customersThisMonth: any;
- moneySpentThisMonth: any;
- pointsTotal: any;
- averageTransactionToday: any;
/* Setting up dashboard's main variables*/
name: any;
@@ -19,27 +18,133 @@ export class DashboardCustomerComponent implements OnInit {
trends: any;
myRank: any;
username: any;
+ maxPurchase: number = 0;
- basicStats = {
- today_sum: 0,
- today_count: 0,
- week_sum: 0,
- week_count: 0,
- month_sum: 0,
- month_count: 0,
- user_sum: 0,
- user_count: 0,
- global_sum: 0,
- global_count: 0,
- user_position: 0,
+ disableSectorButton: boolean = false;
+
+ weekPurchaseList = {
+ first: 0,
+ second: 0,
+ max: 0,
+ sum: 0,
+ count: 0,
};
+ sectorNames = {
+ A: 'Agriculture, Forestry & Fishing',
+ B: 'Mining & Quarrying',
+ C: 'Manufacturing',
+ D: 'Electricity, Gas, Steam & Air Conditioning',
+ E: 'Water & Waste Management',
+ F: 'Construction',
+ G: 'Wholesale & Retail Trade',
+ H: 'Transportation & Storage',
+ I: 'Accomodation & Food Services',
+ J: 'Information & Communication',
+ K: 'Financial & Insurance Activities',
+ L: 'Real Estate',
+ M: 'Professional, Scientfic & Technical',
+ N: 'Administrative & Support Services',
+ O: 'Public Administration, Defence & Social Security',
+ P: 'Education',
+ Q: 'Human Health & Social Work',
+ R: 'Arts, Entertainment & Recreation',
+ S: 'Other Service Activities',
+ T: 'Household Domestic Business',
+ U: 'Extraterritorial Organisations and Bodies'
+ }
+
+ sectorIcons = {
+ A: 'icon-drop',
+ B: 'icon-diamond',
+ C: 'icon-settings',
+ D: 'icon-energy',
+ E: 'icon-trash',
+ F: 'icon-wrench',
+ G: 'icon-tag',
+ H: 'icon-speedometer',
+ I: 'icon-cup',
+ J: 'icon-feed',
+ K: 'icon-credit-card',
+ L: 'icon-graph',
+ M: 'icon-chemistry',
+ N: 'icon-drawer',
+ O: 'icon-pie-chart',
+ P: 'icon-graduation',
+ Q: 'icon-support',
+ R: 'icon-film',
+ S: 'icon-calendar',
+ T: 'icon-home',
+ U: 'icon-globe',
+ }
+
+ sectorClasses = {
+ A: 'bg-primary',
+ B: 'bg-success',
+ C: 'bg-danger',
+ D: 'bg-warning',
+ E: 'bg-info',
+ F: 'bg-primary',
+ G: 'bg-success',
+ H: 'bg-danger',
+ I: 'bg-warning',
+ J: 'bg-info',
+ K: 'bg-primary',
+ L: 'bg-success',
+ M: 'bg-danger',
+ N: 'bg-warning',
+ O: 'bg-info',
+ P: 'bg-primary',
+ Q: 'bg-success',
+ R: 'bg-danger',
+ S: 'bg-warning',
+ T: 'bg-info',
+ U: 'bg-primary',
+ }
+
+ sectorLetters: string[] = [];
+ sectorPurchases: number[] = [];
+ sectorLimit: number = 10;
+
+ sectorList: any;
+
+ // Graph widgets
+ public widgetList = [
+ {
+ type: 'graph',
+ name: 'total_last_week',
+ icon: 'icon-diamond',
+ title: 'Last Week Total',
+ dataType: DataType.currency,
+ },
+ {
+ type: 'graph',
+ name: 'avg_spend_last_week',
+ icon: 'icon-diamond',
+ title: 'Last Week Avg. Spend',
+ dataType: DataType.currency,
+ },
+ {
+ type: 'graph',
+ name: 'total_last_month',
+ title: 'Last Month Total',
+ dataType: DataType.currency,
+ },
+ {
+ type: 'graph',
+ name: 'avg_spend_last_month',
+ title: 'Last Month Avg. Spend',
+ dataType: DataType.currency,
+ },
+ ];
+
constructor(
private api: ApiService,
) {
- this.api.basicStats().subscribe(
+ this.api.customerStats().subscribe(
result => {
- this.basicStats = result;
+ this.setWeekPurchaseList(result.weeks);
+ this.setSectorList(result.sectors);
},
error => {
console.log('Retrieval Error');
@@ -48,6 +153,26 @@ export class DashboardCustomerComponent implements OnInit {
);
}
+ public setWeekPurchaseList (data: any) {
+ this.weekPurchaseList = {
+ first: data.first,
+ second: data.second,
+ max: data.max,
+ sum: data.sum,
+ count: data.count,
+ };
+ }
+
+ public setSectorList (data: any) {
+ this.sectorLetters = Object.keys(data.sectors).map(key => data.sectors[key]);
+ this.sectorPurchases = Object.keys(data.purchases).map(key => data.purchases[key]);
+ }
+
+ public loadMore () {
+ this.disableSectorButton = true;
+ this.sectorLimit = 22;
+ }
+
ngOnInit(): void {
}
}
diff --git a/src/app/dashboard/dashboard.component.html b/src/app/dashboard/dashboard.component.html
index 4ee858b..ff6f092 100644
--- a/src/app/dashboard/dashboard.component.html
+++ b/src/app/dashboard/dashboard.component.html
@@ -6,7 +6,8 @@
[graphName]="widget.name"
[graphTitle]="widget.title"
[graphIcon]="widget.icon"
- [dataType]="widget.dataType">
+ [dataType]="widget.dataType">
+