Commit 28058f8c authored by Valentin's avatar Valentin
Browse files

feat: optionally disable customer's order cancelation

parent 137ee5ae
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ export type WarehouseBasicInfo = Pick<
	| 'useOnlyRestrictedCarriersForDelivery'
	| 'preferRestrictedCarriersForDelivery'
	| 'ordersShortProcess'
	| 'orderCancelation'
>;

@Component({
@@ -138,6 +139,7 @@ export class BasicInfoFormComponent implements OnInit {
						preferRestrictedCarriersForDelivery: false,
				  }),
			ordersShortProcess: basicInfo.ordersShortProcess,
			orderCancelation: { enabled: false, onState: 0 },
		};
	}

+31 −0
Original line number Diff line number Diff line
@@ -142,6 +142,37 @@
			</div>
		</div>

		<div class="form-group row">
			<div class="col-sm-4 offset-sm-2">
				<div class="checkbox">
					<nb-checkbox
						status="success"
						formControlName="enabledOrderCancelation"
						>{{
							'WAREHOUSE_VIEW.MUTATION.UNALLOWED_ORDER_CANCELATION'
								| translate
						}}</nb-checkbox
					>
				</div>
			</div>
			<div class="col-sm-4" *ngIf="enabledOrderCancelation.value">
				<select
					class="form-control"
					formControlName="stateOrderCancelation"
				>
					<option
						*ngFor="let option of orderCancelationOptions"
						value="{{ option.value }}"
					>
						{{
							'WAREHOUSE_VIEW.MUTATION.ORDER_CANCELATION_OPTIONS.' +
								option.text | translate
						}}
					</option>
				</select>
			</div>
		</div>

		<div class="form-group row">
			<label class="col-sm-2 control-label">{{
				'WAREHOUSE_VIEW.MUTATION.CARRIERS' | translate
+43 −1
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ export type WarehouseManageTabsDetails = Pick<
	| 'useOnlyRestrictedCarriersForDelivery'
	| 'preferRestrictedCarriersForDelivery'
	| 'ordersShortProcess'
	| 'orderCancelation'
>;

@Component({
@@ -57,6 +58,20 @@ export class WarehouseManageTabsDetailsComponent

	private _delivery: 'all' | 'onlyStore' | 'preferStore' = 'all';

	// orderCancelationOptions can be moved to a separate file
	orderCancelationOptions = [
		{ text: 'ORDERING', value: 1 },
		{ text: 'START_PROCESSING', value: 2 },
		{ text: 'START_ALLOCATION', value: 3 },
		{ text: 'ALLOCATED', value: 4 },
		{ text: 'START_PACKAGING', value: 5 },
		{ text: 'PACKAGED', value: 6 },
		{ text: 'CARRIER_TAKE_WORK', value: 7 },
		{ text: 'CARRIER_GOT_IT', value: 8 },
		{ text: 'CARRIER_START_DELIVERY', value: 9 },
		{ text: 'DELIVERED', value: 11 },
	];

	constructor(
		private readonly _carrierRouter: CarrierRouter,
		private readonly _translateService: TranslateService
@@ -105,6 +120,10 @@ export class WarehouseManageTabsDetailsComponent
		return this.form.get('ordersShortProcess');
	}

	get enabledOrderCancelation() {
		return this.form.get('enabledOrderCancelation');
	}

	get delivery() {
		return this._delivery;
	}
@@ -157,6 +176,9 @@ export class WarehouseManageTabsDetailsComponent
			preferRestrictedCarriersForDelivery: [false],
			carriersIds: [[]],
			ordersShortProcess: [false],

			enabledOrderCancelation: [false],
			stateOrderCancelation: [0],
		});
	}

@@ -181,6 +203,9 @@ export class WarehouseManageTabsDetailsComponent
			useOnlyRestrictedCarriersForDelivery: boolean;
			preferRestrictedCarriersForDelivery: boolean;
			ordersShortProcess: boolean;

			enabledOrderCancelation: boolean;
			stateOrderCancelation: number;
		};

		return {
@@ -209,6 +234,10 @@ export class WarehouseManageTabsDetailsComponent
						useOnlyRestrictedCarriersForDelivery: false,
						preferRestrictedCarriersForDelivery: false,
				  }),
			orderCancelation: {
				enabled: basicInfo.enabledOrderCancelation,
				onState: Number(basicInfo.stateOrderCancelation),
			},
		};
	}

@@ -220,17 +249,30 @@ export class WarehouseManageTabsDetailsComponent
				useOnlyRestrictedCarriersForDelivery: false,
				preferRestrictedCarriersForDelivery: false,
				ordersShortProcess: false,
				enabledOrderCancelation: basicInfo.orderCancelation
					? basicInfo.orderCancelation.enabled
					: false,
				stateOrderCancelation: basicInfo.orderCancelation
					? basicInfo.orderCancelation.onState
					: 0,
			},
			basicInfo
		);

		//Remove orderCancelation from the list becouse its  not actually form control
		//can be improved
		const filteredValues = Object.keys(this.getValue());
		_.remove(filteredValues, (e) => e === 'orderCancelation');

		this.form.setValue(
			_.pick(basicInfo, [
				...Object.keys(this.getValue()),
				...filteredValues,
				'hasRestrictedCarriers',
				'carriersIds',
				'useOnlyRestrictedCarriersForDelivery',
				'preferRestrictedCarriersForDelivery',
				'enabledOrderCancelation',
				'stateOrderCancelation',
			])
		);

+14 −1
Original line number Diff line number Diff line
@@ -461,6 +461,19 @@
			"ADD": "Add",
			"EDIT": "Edit",
			"ZONE_NAME": "Zone name",
			"UNALLOWED_ORDER_CANCELATION": "Unallowed Order Cancelation",
			"ORDER_CANCELATION_OPTIONS": {
				"ORDERING": "After Ordering",
				"START_PROCESSING": "After Start Processing",
				"START_ALLOCATION": "After Start Allocation",
				"ALLOCATED": "After Allocated",
				"START_PACKAGING": "After Start Packaging",
				"PACKAGED": "After Packaged",
				"CARRIER_TAKE_WORK": "After Carrier Take Work",
				"CARRIER_GOT_IT": "After Carrier Got It",
				"CARRIER_START_DELIVERY": "After Carrier Start Delivery",
				"DELIVERED": "After Delivered"
			},
			"ERRORS": {
				"NAME_IS_REQUIRED": "Warehouse name is required",
				"NAME_ATLEAST_3_CHARS": "Name must be at least 3 characters long",
+14 −1
Original line number Diff line number Diff line
@@ -461,6 +461,19 @@
			"ADD": "Add",
			"EDIT": "Edit",
			"ZONE_NAME": "Zone name",
			"UNALLOWED_ORDER_CANCELATION": "Unallowed Order Cancelation",
			"ORDER_CANCELATION_OPTIONS": {
				"ORDERING": "After Ordering",
				"START_PROCESSING": "After Start Processing",
				"START_ALLOCATION": "After Start Allocation",
				"ALLOCATED": "After Allocated",
				"START_PACKAGING": "After Start Packaging",
				"PACKAGED": "After Packaged",
				"CARRIER_TAKE_WORK": "After Carrier Take Work",
				"CARRIER_GOT_IT": "After Carrier Got It",
				"CARRIER_START_DELIVERY": "After Carrier Start Delivery",
				"DELIVERED": "After Delivered"
			},
			"ERRORS": {
				"NAME_IS_REQUIRED": "Warehouse name is required",
				"NAME_ATLEAST_3_CHARS": "Name must be at least 3 characters long",
Loading