Commit 7a18b8c8 by Adarsh K

order

parent 55b5532e
...@@ -3,6 +3,11 @@ import { Router, ActivatedRoute } from '@angular/router'; ...@@ -3,6 +3,11 @@ import { Router, ActivatedRoute } from '@angular/router';
import { Platform } from '@ionic/angular'; import { Platform } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx'; import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx'; import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AngularFirestore, AngularFirestoreDocument, AngularFirestoreCollection } from '@angular/fire/firestore';
import * as firebase from 'firebase';
import { ModalController } from '@ionic/angular';
import { DeliverypopPage } from './deliverypop/deliverypop.page';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
...@@ -14,9 +19,12 @@ export class AppComponent { ...@@ -14,9 +19,12 @@ export class AppComponent {
private platform: Platform, private platform: Platform,
private splashScreen: SplashScreen, private splashScreen: SplashScreen,
private statusBar: StatusBar, private statusBar: StatusBar,
private router: Router private router: Router,
public afs: AngularFirestore,
public modalController: ModalController
) { ) {
this.initializeApp(); this.initializeApp();
this.orderState();
} }
...@@ -27,6 +35,49 @@ export class AppComponent { ...@@ -27,6 +35,49 @@ export class AppComponent {
}); });
} }
async finishpop(data: any) {
const modal = await this.modalController.create({
component: DeliverypopPage,
componentProps: data
});
return await modal.present();
}
orderState() {
console.log('called');
const custId = 'WwHnLICVY2dvZGUHuKqasiTB91a2';
firebase.firestore().collection('orders').where('custId', '==', custId)
.onSnapshot((snapData) => {
snapData.docChanges().forEach((change) => {
if (change.type === 'modified') {
const data = change.doc.data();
if (data.orderStatus === 7) {
this.finishpop(data);
}
}
});
});
/*
.onSnapshot(function(snapshot) {
snapshot.docChanges().forEach(function(change) {
if (change.type === "added") {
console.log("New city: ", change.doc.data());
}
if (change.type === "modified") {
console.log("Modified city: ", change.doc.data());
}
if (change.type === "removed") {
console.log("Removed city: ", change.doc.data());
}
});
}); */
}
vieworder(path, data = null) { vieworder(path, data = null) {
......
...@@ -14,18 +14,18 @@ ...@@ -14,18 +14,18 @@
</div> </div>
<img src="../assets/white_tick.png"> <img src="../assets/white_tick.png">
<h4>RIDER HAS<br> DELIVERED YOUR ORDER </h4> <h4>RIDER HAS<br> DELIVERED YOUR ORDER </h4>
<p>June 26th 2019, 03:00 PM</p> <p>{{currDate | date: 'MMM d, y, h:mm:ss a'}}</p>
</div> </div>
</div> </div>
</ion-content> </ion-content>
<ion-footer padding> <ion-footer padding>
<div class="row"> <div class="row">
<button class="login_btn">I GOT MY ORDER</button> <button class="login_btn" (click)="changeOrder(9)">I GOT MY ORDER</button>
</div> </div>
<div class="row"> <div class="row">
<button class="resend_btn">I DIDN'T GOT THE ORDER</button> <button class="resend_btn" (click)="changeOrder(10)">I DIDN'T GOT THE ORDER</button>
</div> </div>
<div class="row"> <div class="row">
<button class="cancel_btn">CANCEL THIS ORDER</button> <button class="cancel_btn" (click)="changeOrder(0)">CANCEL THIS ORDER</button>
</div> </div>
</ion-footer> </ion-footer>
\ No newline at end of file
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { ModalController, NavParams } from '@ionic/angular'; import { ModalController, NavParams } from '@ionic/angular';
import { OrdersService } from './../../config/order.service';
@Component({ @Component({
selector: 'app-deliverypop', selector: 'app-deliverypop',
...@@ -7,18 +8,30 @@ import { ModalController, NavParams } from '@ionic/angular'; ...@@ -7,18 +8,30 @@ import { ModalController, NavParams } from '@ionic/angular';
styleUrls: ['./deliverypop.page.scss'], styleUrls: ['./deliverypop.page.scss'],
}) })
export class DeliverypopPage implements OnInit { export class DeliverypopPage implements OnInit {
currDate = new Date();
params: any;
orderId: string;
constructor( constructor(
private modalController: ModalController, private modalController: ModalController,
private navParams: NavParams private navParams: NavParams,
public orderService: OrdersService
) { } ) { }
ngOnInit() { ngOnInit() {
this.params = this.navParams.data;
console.log(this.navParams.data);
} }
async closeModal() { async closeModal() {
const onClosedData: string = "Wrapped Up!"; const onClosedData = 'Wrapped Up!';
await this.modalController.dismiss(onClosedData); await this.modalController.dismiss(onClosedData);
} }
changeOrder(status: number) {
this.orderId = this.params.orderId;
this.orderService.changeOrder(this.orderId, status).then(() => {
this.closeModal();
});
}
} }
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
</div> </div>
<div class="order_other"> <div class="order_other">
<h6 class="floatRight">{{ order.bookDate.seconds * 1000 | date:'MMMM dd, y' }}</h6> <h6 class="floatRight">{{ order.bookDate.seconds * 1000 | date:'MMMM dd, y' }}</h6>
<span class="floatRight" *ngIf="order.orderStatus < 3 || order.orderStatus >= 7">{{getStatus(order.orderStatus)}}</span> <span class="floatRight" *ngIf="order.orderStatus < 3 || order.orderStatus >= 7" (click)="acceptOrder(order)">{{getStatus(order.orderStatus)}}</span>
<div class="clear"></div> <div class="clear"></div>
<button class="track_btn" *ngIf="order.orderStatus >= 3 && order.orderStatus < 7" (click)="orderDetails(i)">TRACK</button> <button class="track_btn" *ngIf="order.orderStatus >= 3 && order.orderStatus < 7" (click)="orderDetails(i)">TRACK</button>
<div class="clear"></div> <div class="clear"></div>
......
...@@ -21,12 +21,12 @@ export class MyorderPage implements OnInit { ...@@ -21,12 +21,12 @@ export class MyorderPage implements OnInit {
) { } ) { }
ngOnInit() { ngOnInit() {
this.finishpop();
} }
async finishpop() { async finishpop(data: any) {
const modal = await this.modalController.create({ const modal = await this.modalController.create({
component: DeliverypopPage component: DeliverypopPage,
componentProps: data
}); });
return await modal.present(); return await modal.present();
} }
...@@ -46,6 +46,12 @@ export class MyorderPage implements OnInit { ...@@ -46,6 +46,12 @@ export class MyorderPage implements OnInit {
document.body.scrollTop = document.documentElement.scrollTop = 0; document.body.scrollTop = document.documentElement.scrollTop = 0;
} }
acceptOrder(order: any) {
if (order.orderStatus === 7) {
this.finishpop(order);
}
}
getStatus(status: number) { getStatus(status: number) {
switch (status) { switch (status) {
case 1: case 1:
...@@ -69,9 +75,18 @@ export class MyorderPage implements OnInit { ...@@ -69,9 +75,18 @@ export class MyorderPage implements OnInit {
case 7: case 7:
return 'Delivered'; return 'Delivered';
break; break;
case 9:
return 'Completed';
break;
case 8: case 8:
return 'Rejected'; return 'Rejected';
break; break;
case 10:
return 'Not Received';
break;
case 0:
return 'Cancelled';
break;
default: default:
return 'Finished'; return 'Finished';
} }
......
...@@ -55,6 +55,7 @@ export class MyordersService { ...@@ -55,6 +55,7 @@ export class MyordersService {
deliveryLocation: item.deliveryLocation, deliveryLocation: item.deliveryLocation,
pickupLocation: item.pickupLocation, pickupLocation: item.pickupLocation,
riderName: 'John', riderName: 'John',
orderId: item.orderId,
size: item.size, size: item.size,
time: '60' time: '60'
}; };
......
...@@ -99,6 +99,11 @@ export class OrdersService { ...@@ -99,6 +99,11 @@ export class OrdersService {
} }
public async changeOrder(orderId, status) {
console.log(orderId, status);
this.afs.collection('orders').doc(orderId).update({orderStatus: status});
}
public async buyNow(product: Products) { public async buyNow(product: Products) {
// //
} }
......
...@@ -11,6 +11,7 @@ export interface Myorder { ...@@ -11,6 +11,7 @@ export interface Myorder {
status: number; status: number;
orderStatus: number; orderStatus: number;
riderName: string; riderName: string;
orderId: string;
time: string; time: string;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment