Unverified Commit d6f18369 authored by Ruslan Konviser's avatar Ruslan Konviser Committed by GitHub
Browse files

Merge pull request #1061 from ever-co/feature/cancel-order-carrier-app#1030

Feature/cancel order carrier app#1030
parents d9db789b 93ae5f79
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -20,7 +20,10 @@ export class GeoLocationOrdersResolver {
			geoLocation: IGeoLocation;
			skippedOrderIds: string[];
			options: GeoLocationOrdersOptions;
			searchObj?: { byRegex: Array<{ key: string; value: string }> };
			searchObj?: {
				isCancelled?: boolean;
				byRegex?: Array<{ key: string; value: string }>;
			};
		}
	) {
		const orders = await this.geoLocationsOrdersService.getOrdersForWork(
+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ type Query {
}

input SearchOrdersForWork {
	isCancelled: Boolean
	byRegex: [SearchByRegex]
}

+18 −5
Original line number Diff line number Diff line
@@ -151,7 +151,10 @@ export class GeoLocationsOrdersService
		geoLocation: IGeoLocation,
		skippedOrderIds: string[] = [],
		options: GeoLocationOrdersOptions,
		searchObj?: { byRegex: Array<{ key: string; value: string }> }
		searchObj?: {
			isCancelled?: boolean;
			byRegex?: Array<{ key: string; value: string }>;
		}
	): Promise<Order[]> {
		const merchants = await this.geoLocationsWarehousesService.getMerchants(
			geoLocation,
@@ -163,12 +166,22 @@ export class GeoLocationsOrdersService

		let searchByRegex = [];

		if (searchObj && searchObj.byRegex.length > 0) {
			searchByRegex = searchObj.byRegex.map((s) => {
		if (searchObj) {
			const byRegex = searchObj.byRegex;

			if (byRegex && byRegex.length > 0) {
				searchByRegex = byRegex.map((s) => {
					return { [s.key]: { $regex: s.value, $options: 'i' } };
				});
			}

			const isCancelled = searchObj.isCancelled;

			if (isCancelled != null) {
				searchByRegex.push({ isCancelled });
			}
		}

		const orders = await this.ordersService.Model.aggregate([
			{
				$match: _.assign(
+15 −3
Original line number Diff line number Diff line
<div class="money-amount-container" *ngIf="!selectedOrder?.isPaid">
<div
	class="money-amount-container"
	*ngIf="!selectedOrder?.isPaid && !selectedOrder?. isCancelled"
>
	<div class="money-amount">
		{{ 'DELIVERY_VIEW.THE_CUSTOMER_HAS_TO_PAY' | translate }} ${{
		selectedOrder?.totalPrice }}!
	</div>
</div>

<div class="already-paid-container" *ngIf="selectedOrder?.isPaid">
<div
	class="already-paid-container"
	*ngIf="selectedOrder?.isPaid && !selectedOrder?. isCancelled"
>
	<div class="already-paid">
		{{ 'DELIVERY_VIEW.CUSTOMER_ALREADY_PAID_WITH_CARD' | translate }}
	</div>
@@ -24,6 +30,7 @@
	<div class="buttons">
		<div class="button-bar">
			<button
				*ngIf="!selectedOrder?.isCancelled"
				[disabled]="disabledButtons"
				class="button button-brand"
				(click)="delivered()"
@@ -36,7 +43,12 @@
				class="button button-assertive"
				(click)="cancel()"
			>
				{{ 'DELIVERY_VIEW.CANCEL' | translate }}
				<span *ngIf="!selectedOrder?.isCancelled"
					>{{ 'DELIVERY_VIEW.CANCEL' | translate }}</span
				>
				<span *ngIf="selectedOrder?.isCancelled"
					>{{ 'OK' | translate }}</span
				>
			</button>
		</div>
	</div>
+62 −56
Original line number Diff line number Diff line
import { Component, ViewChild, AfterViewInit } from '@angular/core';
import { Component, ViewChild, AfterViewInit, OnDestroy } from '@angular/core';
import IOrder from '@modules/server.common/interfaces/IOrder';
import { OrderRouter } from '@modules/client.common.angular2/routers/order-router.service';
import OrderCarrierStatus from '@modules/server.common/enums/OrderCarrierStatus';
@@ -9,9 +9,10 @@ import IGeoLocation from '@modules/server.common/interfaces/IGeoLocation';
import GeoLocation from '@modules/server.common/entities/GeoLocation';
import { GeoLocationService } from '../../../services/geo-location.service';
import { MapComponent } from '../common/map/map.component';
import { Router } from '@angular/router';
import { Store } from 'services/store.service';
import { first } from 'rxjs/operators';
import { first, takeUntil } from 'rxjs/operators';
import { Subject } from 'rxjs';
import { NavController } from '@ionic/angular';

declare var google: any;

@@ -19,7 +20,7 @@ declare var google: any;
	selector: 'page-delivery',
	templateUrl: 'delivery.html'
})
export class DeliveryPage implements AfterViewInit {
export class DeliveryPage implements AfterViewInit, OnDestroy {
	@ViewChild('map', { static: false })
	carrierMap: MapComponent;

@@ -27,6 +28,8 @@ export class DeliveryPage implements AfterViewInit {
	carrierUserDistance: string;
	disabledButtons: boolean = true;

	private destroy$ = new Subject<void>();

	get fullAddress() {
		return this.selectedOrder.user.fullAddress;
	}
@@ -36,16 +39,14 @@ export class DeliveryPage implements AfterViewInit {
		private mixpanel: Mixpanel,
		private geoLocationService: GeoLocationService,
		private geolocation: Geolocation,
		private router: Router,
		private navCtrl: NavController,
		private store: Store
	) {}

	async delivered() {
		this.disabledButtons = true;
		if (this.selectedOrder) {
			this.router.navigateByUrl('/main/home', {
				skipLocationChange: false
			});
			this.navCtrl.navigateRoot('/main/home');

			this.unselectOrder();

@@ -64,9 +65,7 @@ export class DeliveryPage implements AfterViewInit {
	cancel() {
		this.disabledButtons = true;
		this.store.driveToWarehouseFrom = 'delivery';
		this.router.navigateByUrl('/main/drive-to-warehouse', {
			skipLocationChange: false
		});
		this.navCtrl.navigateRoot('/main/drive-to-warehouse');
	}

	ngAfterViewInit(): void {
@@ -79,15 +78,16 @@ export class DeliveryPage implements AfterViewInit {

	private unselectOrder() {
		localStorage.removeItem('orderId');
		this.store.selectedOrder = null;
	}

	private async loadData() {
		const order = await this.orderRouter
	private loadData() {
		this.orderRouter
			.get(localStorage.getItem('orderId'), { populateWarehouse: true })
			.pipe(first())
			.toPromise();

			.pipe(takeUntil(this.destroy$))
			.subscribe(async (order) => {
				this.selectedOrder = order;
				this.store.selectedOrder = order;
				// const carrier = await this.carrierRouter
				// 	.get(order.carrierId)
				// 	.pipe(first())
@@ -127,5 +127,11 @@ export class DeliveryPage implements AfterViewInit {
				this.carrierMap.setCenter(origin);
				this.carrierMap.drawRoute(origin, destination);
				this.disabledButtons = false;
			});
	}

	ngOnDestroy(): void {
		this.destroy$.next();
		this.destroy$.complete();
	}
}
Loading