mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-28 22:42:11 +01:00
HIMa-841, HIMA-790, HIMA-702 remission tasks
This commit is contained in:
@@ -54,6 +54,18 @@ export class RemissionSelectors {
|
||||
return remission.containerId;
|
||||
}
|
||||
|
||||
@Selector([RemissionState])
|
||||
static getCentralSelectedFilters(remissionState: RemissionStateModel) {
|
||||
const remission = remissionState.remission;
|
||||
return remission.centralSelectedOptions;
|
||||
}
|
||||
|
||||
@Selector([RemissionState])
|
||||
static getOverviewSelectedFilters(remissionState: RemissionStateModel) {
|
||||
const remission = remissionState.remission;
|
||||
return remission.overflowSelectedOptions;
|
||||
}
|
||||
|
||||
@Selector([RemissionState])
|
||||
static shouldRemindForRemission(remissionState: RemissionStateModel) {
|
||||
const remission = remissionState.remission;
|
||||
|
||||
@@ -22,7 +22,7 @@ import { ReloadGoodsIn } from '../actions/goods-in.actions';
|
||||
import { ReloadBranchProcess } from '../actions/branch-process.actions';
|
||||
import { ReloadRemission } from '../actions/remission.actions';
|
||||
|
||||
export const SYNC_DATA_VERSION = 133;
|
||||
export const SYNC_DATA_VERSION = 135;
|
||||
|
||||
export class AppStateModel {
|
||||
currentProcesssId: number;
|
||||
|
||||
@@ -31,8 +31,8 @@ export class FilterStateModel {
|
||||
negativeProcessesSelectedFilters: [],
|
||||
dropdownFilters: [],
|
||||
negativeDropdownFilters: [],
|
||||
filterType: [],
|
||||
},
|
||||
filterType: []
|
||||
}
|
||||
})
|
||||
export class FilterState {
|
||||
constructor(private filterService: FilterService, private store: Store) {}
|
||||
@@ -70,7 +70,7 @@ export class FilterState {
|
||||
return <FilterItem>{ ...eit, selected: filterItemExistingState.selected };
|
||||
}
|
||||
return eit;
|
||||
}),
|
||||
})
|
||||
};
|
||||
}
|
||||
return t;
|
||||
@@ -89,7 +89,7 @@ export class FilterState {
|
||||
ctx.patchState({
|
||||
filters: [...newFilterState],
|
||||
dropdownFilters: filterType === FilterType.Negative ? state.dropdownFilters : items,
|
||||
negativeDropdownFilters: filterType === FilterType.Negative ? items : state.negativeDropdownFilters,
|
||||
negativeDropdownFilters: filterType === FilterType.Negative ? items : state.negativeDropdownFilters
|
||||
});
|
||||
this.syncApiState(
|
||||
[...newFilterState],
|
||||
@@ -150,7 +150,7 @@ export class FilterState {
|
||||
return { ...processFilter, dropdownFilters: [], selectedFilters: [] };
|
||||
}
|
||||
return processFilter;
|
||||
}),
|
||||
})
|
||||
];
|
||||
|
||||
const negativeProcessSelectedFilters = ctx.getState().negativeProcessesSelectedFilters;
|
||||
@@ -160,14 +160,14 @@ export class FilterState {
|
||||
return { ...processFilter, dropdownFilters: [], selectedFilters: [] };
|
||||
}
|
||||
return processFilter;
|
||||
}),
|
||||
})
|
||||
];
|
||||
ctx.patchState({
|
||||
filters: [...filters],
|
||||
dropdownFilters: items,
|
||||
negativeDropdownFilters: neagtiveItems,
|
||||
processesSelectedFilters: updatedProcessesSelectedFilters,
|
||||
negativeProcessesSelectedFilters: updatedNegativeProcessesSelectedFilters,
|
||||
negativeProcessesSelectedFilters: updatedNegativeProcessesSelectedFilters
|
||||
});
|
||||
this.syncApiState(
|
||||
[...filters],
|
||||
@@ -203,7 +203,7 @@ export class FilterState {
|
||||
}
|
||||
ctx.patchState({
|
||||
dropdownFilters: filterType === FilterType.Negative ? state.dropdownFilters : items,
|
||||
negativeDropdownFilters: filterType === FilterType.Negative ? items : state.negativeDropdownFilters,
|
||||
negativeDropdownFilters: filterType === FilterType.Negative ? items : state.negativeDropdownFilters
|
||||
});
|
||||
this.syncApiState(
|
||||
state.filters,
|
||||
@@ -239,7 +239,7 @@ export class FilterState {
|
||||
}
|
||||
ctx.patchState({
|
||||
dropdownFilters: filterType === FilterType.Negative ? state.dropdownFilters : items,
|
||||
negativeDropdownFilters: filterType === FilterType.Negative ? items : state.negativeDropdownFilters,
|
||||
negativeDropdownFilters: filterType === FilterType.Negative ? items : state.negativeDropdownFilters
|
||||
});
|
||||
this.syncApiState(
|
||||
state.filters,
|
||||
@@ -275,7 +275,7 @@ export class FilterState {
|
||||
}
|
||||
ctx.patchState({
|
||||
dropdownFilters: filterType === FilterType.Negative ? state.dropdownFilters : items,
|
||||
negativeDropdownFilters: filterType === FilterType.Negative ? items : state.negativeDropdownFilters,
|
||||
negativeDropdownFilters: filterType === FilterType.Negative ? items : state.negativeDropdownFilters
|
||||
});
|
||||
this.syncApiState(
|
||||
state.filters,
|
||||
@@ -318,7 +318,7 @@ export class FilterState {
|
||||
const updatedNegativeDropdownFilters = filterType === FilterType.Negative ? items : state.negativeDropdownFilters;
|
||||
ctx.patchState({
|
||||
dropdownFilters: updatedDropDownFilter,
|
||||
negativeDropdownFilters: updatedNegativeDropdownFilters,
|
||||
negativeDropdownFilters: updatedNegativeDropdownFilters
|
||||
});
|
||||
this.syncApiState(
|
||||
state.filters,
|
||||
@@ -369,7 +369,7 @@ export class FilterState {
|
||||
}
|
||||
ctx.patchState({
|
||||
processesSelectedFilters: updatedProcessesSelectedFilters,
|
||||
negativeProcessesSelectedFilters: updatedNegativeProcessesSelectedFilters,
|
||||
negativeProcessesSelectedFilters: updatedNegativeProcessesSelectedFilters
|
||||
});
|
||||
this.syncApiState(
|
||||
state.filters,
|
||||
@@ -398,7 +398,7 @@ export class FilterState {
|
||||
return <FilterItem>{ ...i, selected: false };
|
||||
}
|
||||
return i;
|
||||
}),
|
||||
})
|
||||
};
|
||||
});
|
||||
return { ...processSelectedFilters, selectedFilters: updatedFilters };
|
||||
@@ -408,7 +408,7 @@ export class FilterState {
|
||||
ctx.patchState({
|
||||
processesSelectedFilters: filterType === FilterType.Negative ? state.processesSelectedFilters : updatedProcessesSelectedFilters,
|
||||
negativeProcessesSelectedFilters:
|
||||
filterType === FilterType.Negative ? updatedProcessesSelectedFilters : state.negativeProcessesSelectedFilters,
|
||||
filterType === FilterType.Negative ? updatedProcessesSelectedFilters : state.negativeProcessesSelectedFilters
|
||||
});
|
||||
this.syncApiState(
|
||||
state.filters,
|
||||
@@ -451,7 +451,7 @@ export class FilterState {
|
||||
processesSelectedFilters,
|
||||
negativeProcessesSelectedFilters: negativeProcessesSelectedFilters,
|
||||
dropdownFilters: items,
|
||||
negativeDropdownFilters: negativeItems,
|
||||
negativeDropdownFilters: negativeItems
|
||||
});
|
||||
this.syncApiState(
|
||||
state.filters,
|
||||
@@ -492,7 +492,7 @@ export class FilterState {
|
||||
const updatedNegativeDropdownFilters = { ...negativeDropdownFilters, [currenProcessId]: undefined };
|
||||
ctx.patchState({
|
||||
negativeProcessesSelectedFilters: updatedNegativeProcessesSelectedFilters,
|
||||
negativeDropdownFilters: updatedNegativeDropdownFilters,
|
||||
negativeDropdownFilters: updatedNegativeDropdownFilters
|
||||
});
|
||||
this.syncApiState(
|
||||
state.filters,
|
||||
@@ -513,7 +513,7 @@ export class FilterState {
|
||||
negativeProcessesSelectedFilters,
|
||||
dropdownFilters,
|
||||
negativeDropdownFilters,
|
||||
filterType,
|
||||
filterType
|
||||
}: actions.ReloadFiltersData
|
||||
) {
|
||||
ctx.setState({
|
||||
@@ -522,7 +522,7 @@ export class FilterState {
|
||||
negativeProcessesSelectedFilters: negativeProcessesSelectedFilters,
|
||||
dropdownFilters: dropdownFilters,
|
||||
negativeDropdownFilters: negativeDropdownFilters,
|
||||
filterType: filterType,
|
||||
filterType: filterType
|
||||
});
|
||||
}
|
||||
|
||||
@@ -540,7 +540,7 @@ export class FilterState {
|
||||
negativeProcessesSelectedFilters: negativeProcessesSelectedFilters,
|
||||
dropdownFilters: dropdownFilters,
|
||||
negativeDropdownFilters: negativeDropdownFilters,
|
||||
filterType: filterType,
|
||||
filterType: filterType
|
||||
};
|
||||
const userData = JSON.stringify(userSyncData);
|
||||
this.store.dispatch(new AppUserDataSync(userData));
|
||||
|
||||
@@ -82,6 +82,7 @@ export class RemissionState {
|
||||
const state = ctx.getState();
|
||||
const currentRemission = state.remission;
|
||||
let remission: Remission;
|
||||
console.count('setRemissionFilters#');
|
||||
if (source === RemissionResourceType.Central) {
|
||||
remission = { ...currentRemission, centralSelectedGroups: filterGroups, centralSelectedOptions: filterOptions };
|
||||
} else {
|
||||
|
||||
@@ -227,7 +227,6 @@ export class ProductResultsComponent implements OnInit, OnDestroy, AfterViewInit
|
||||
}
|
||||
|
||||
updateSearch() {
|
||||
console.log('updateSearch');
|
||||
const fil = this.store.selectSnapshot(SharedSelectors.getProcessFilters);
|
||||
if (fil) {
|
||||
const currentSearch = this.store.selectSnapshot(SharedSelectors.getCurrentSearch);
|
||||
@@ -253,7 +252,6 @@ export class ProductResultsComponent implements OnInit, OnDestroy, AfterViewInit
|
||||
}
|
||||
|
||||
authorFilter(author: string) {
|
||||
console.log('authorFilter');
|
||||
// Needed for virtual scroller
|
||||
this.loading = true;
|
||||
|
||||
@@ -280,7 +278,6 @@ export class ProductResultsComponent implements OnInit, OnDestroy, AfterViewInit
|
||||
}
|
||||
|
||||
filtersClicked(filtersData: ProductSerachFilters) {
|
||||
console.log('filtersClicked');
|
||||
if (this.radioButtonGroup) {
|
||||
this.loading = true;
|
||||
this.radioButtonGroup = filtersData.radioButtonGroup;
|
||||
@@ -377,7 +374,6 @@ export class ProductResultsComponent implements OnInit, OnDestroy, AfterViewInit
|
||||
}
|
||||
|
||||
clearSearch() {
|
||||
console.log('clearSearch');
|
||||
this.doNotFireNegativeSearch = false;
|
||||
const currentSearch = this.store.selectSnapshot(SharedSelectors.getCurrentSearch);
|
||||
this.loading = true;
|
||||
|
||||
@@ -38,7 +38,6 @@ export class AddProductToRemissionDialogComponent implements OnInit, OnDestroy {
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
console.log(this.product);
|
||||
this.subscriptions();
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<ng-container *ngIf="expanded">
|
||||
<div id="options" class="options" [style.top]="optionsTopPosition" [@fadeIn]="expanded">
|
||||
<div id="options" class="options" [@fadeIn]="expanded">
|
||||
<ng-container *ngFor="let option of filter.options">
|
||||
<div class="option" [ngClass]="{ selected: isFirstLevelItemSelected(option) }">
|
||||
<span class="check-icon" (click)="toggleFirstLevelItem(option)">
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
:host {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.filter {
|
||||
.filter-title {
|
||||
cursor: pointer;
|
||||
@@ -21,6 +25,7 @@
|
||||
|
||||
.options {
|
||||
position: absolute;
|
||||
top: 35px;
|
||||
z-index: 999;
|
||||
background-color: white;
|
||||
-moz-box-shadow: 0 0 20px 1px #dde5ec;
|
||||
@@ -31,7 +36,7 @@
|
||||
width: 307px;
|
||||
overflow: scroll;
|
||||
z-index: 10;
|
||||
|
||||
max-height: 375px;
|
||||
.option {
|
||||
display: flex;
|
||||
padding-top: 10px;
|
||||
|
||||
@@ -3,12 +3,12 @@ import { Filter, FilterOption } from '@isa/remission';
|
||||
import { fadeInAnimation } from '../../animations/fadeIn.animation';
|
||||
import { growShrinkAnimation } from '../../animations/grow-shrink.animation';
|
||||
import { RemissionResourceType } from '../../models/remission-resource-type.model';
|
||||
import { Store, Select } from '@ngxs/store';
|
||||
import { Store } from '@ngxs/store';
|
||||
import { SetRemissionFilters } from 'apps/sales/src/app/core/store/actions/remission.actions';
|
||||
import { RemissionSelectors } from 'apps/sales/src/app/core/store/selectors/remission.selectors';
|
||||
import { Observable, Subject } from 'rxjs';
|
||||
import { Subject } from 'rxjs';
|
||||
import { isNullOrUndefined } from 'util';
|
||||
import { filter, take, map, takeUntil } from 'rxjs/operators';
|
||||
import { filter, take, takeUntil } from 'rxjs/operators';
|
||||
import { RemissionHelperService } from '../../services/remission-helper.service';
|
||||
|
||||
@Component({
|
||||
@@ -29,15 +29,15 @@ export class RemissionFilterItemComponent implements OnInit, OnDestroy {
|
||||
selectedOptions: FilterOption[] = [];
|
||||
hideSubFilters = false;
|
||||
|
||||
get optionsTopPosition() {
|
||||
let value = 680;
|
||||
const filterEl = document.getElementById('filter');
|
||||
if (filterEl) {
|
||||
const topPosition = filterEl.getBoundingClientRect().top;
|
||||
value = topPosition + 47;
|
||||
}
|
||||
return value + 'px';
|
||||
}
|
||||
// get optionsTopPosition() {
|
||||
// let value = 680;
|
||||
// const filterEl = document.getElementById('filter');
|
||||
// if (filterEl) {
|
||||
// const topPosition = filterEl.getBoundingClientRect().top;
|
||||
// value = topPosition + 47;
|
||||
// }
|
||||
// return value + 'px';
|
||||
// }
|
||||
|
||||
constructor(private store: Store, private remissionHelper: RemissionHelperService, private cdrf: ChangeDetectorRef) {}
|
||||
|
||||
@@ -102,7 +102,9 @@ export class RemissionFilterItemComponent implements OnInit, OnDestroy {
|
||||
filter(data => !isNullOrUndefined(data) && data === this.remissionResourceType),
|
||||
takeUntil(this.destroy$)
|
||||
)
|
||||
.subscribe(() => this.updateFilters());
|
||||
.subscribe(() => {
|
||||
this.updateFilters();
|
||||
});
|
||||
|
||||
this.remissionHelper.closeFilters$.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
||||
this.expanded = false;
|
||||
@@ -223,7 +225,6 @@ export class RemissionFilterItemComponent implements OnInit, OnDestroy {
|
||||
}
|
||||
|
||||
toggleExpandedGrouping(group: FilterOption) {
|
||||
console.log(group);
|
||||
const isGroupExpanded = this.isGroupExpanded(group);
|
||||
if (isGroupExpanded) {
|
||||
this.removeGroupFromExpanded(group);
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<div class="filter-group">
|
||||
<div class="filter" *ngFor="let filter of filters">
|
||||
<app-remission-filter-item
|
||||
[remissionResourceType]="_remissionResourceType"
|
||||
[remissionResourceType]="remissionResourceType"
|
||||
(closeOtherFilters)="closeOtherFilters($event)"
|
||||
[filter]="filter"
|
||||
#filterItem
|
||||
></app-remission-filter-item>
|
||||
</div>
|
||||
</div>
|
||||
<app-remission-selected-filter-items [inputRemissionResourceType]="_remissionResourceType"></app-remission-selected-filter-items>
|
||||
<app-remission-selected-filter-items [inputRemissionResourceType]="remissionResourceType"></app-remission-selected-filter-items>
|
||||
</ng-container>
|
||||
</div>
|
||||
|
||||
@@ -1,38 +1,49 @@
|
||||
import { Component, OnInit, Input, ViewChildren, QueryList } from '@angular/core';
|
||||
import { Filter, RemissionService } from '@isa/remission';
|
||||
import { RemissionResourceType } from '../../models/remission-resource-type.model';
|
||||
import { ChangeDetectionStrategy, Component, OnInit, Input, ViewChildren, QueryList, ChangeDetectorRef } from '@angular/core';
|
||||
import { take } from 'rxjs/operators';
|
||||
|
||||
import { Filter, RemissionService } from '@isa/remission';
|
||||
|
||||
import { RemissionResourceType } from '../../models/remission-resource-type.model';
|
||||
import { RemissionFilterItemComponent } from '../remission-filter-item/remission-filter-item.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-remission-filters',
|
||||
templateUrl: './remission-filters.component.html',
|
||||
styleUrls: ['./remission-filters.component.scss']
|
||||
styleUrls: ['./remission-filters.component.scss'],
|
||||
changeDetection: ChangeDetectionStrategy.OnPush
|
||||
})
|
||||
export class RemissionFiltersComponent implements OnInit {
|
||||
@Input() set remissionResourceType(val: RemissionResourceType) {
|
||||
@Input() remissionProcessId: number;
|
||||
|
||||
@Input()
|
||||
set remissionResourceType(val: RemissionResourceType) {
|
||||
this._remissionResourceType = val;
|
||||
this.subscriptions();
|
||||
}
|
||||
get remissionResourceType(): RemissionResourceType {
|
||||
return this._remissionResourceType;
|
||||
}
|
||||
@ViewChildren('filterItem') filterItems: QueryList<RemissionFilterItemComponent>;
|
||||
_remissionResourceType: RemissionResourceType;
|
||||
filters: Filter[];
|
||||
loadItems = true;
|
||||
constructor(private remissionService: RemissionService) {}
|
||||
private _remissionResourceType: RemissionResourceType;
|
||||
constructor(private cdr: ChangeDetectorRef, private remissionService: RemissionService) {}
|
||||
|
||||
ngOnInit() {}
|
||||
|
||||
subscriptions() {
|
||||
this.loadItems = false;
|
||||
this.remissionService
|
||||
.getFilters({ remissionSourceType: this._remissionResourceType })
|
||||
.getFilters({ remissionProcessId: this.remissionProcessId })
|
||||
.pipe(take(1))
|
||||
.subscribe(this.remissionFiltersSubscription);
|
||||
}
|
||||
|
||||
remissionFiltersSubscription = (remissionFilters: Filter[]) => {
|
||||
this.filters = remissionFilters;
|
||||
// Remove an empty filter
|
||||
this.filters = remissionFilters.filter(filter => filter.options.length > 0);
|
||||
this.loadItems = true;
|
||||
this.cdr.markForCheck();
|
||||
};
|
||||
|
||||
closeOtherFilters(currentFilterId: string) {
|
||||
|
||||
@@ -87,7 +87,8 @@ export class RemissionListCardStartedComponent implements OnInit {
|
||||
remissionProductId: this.product.id,
|
||||
shippingDocumentId: currentShippingDocument.id,
|
||||
quantity: this.product.remissionQuantity,
|
||||
placementType: this.product.placementType
|
||||
placementType: this.product.placementType,
|
||||
inStock: this.product.inStock
|
||||
})
|
||||
.toPromise()
|
||||
.then(() => {
|
||||
@@ -106,7 +107,8 @@ export class RemissionListCardStartedComponent implements OnInit {
|
||||
remissionProductId: this.product.id,
|
||||
shippingDocumentId: currentShippingDocument.id,
|
||||
quantity: partialRemission.quantity > this.product.remissionQuantity ? this.product.remissionQuantity : partialRemission.quantity,
|
||||
placementType: partialRemission.placementType
|
||||
placementType: partialRemission.placementType,
|
||||
inStock: this.product.inStock
|
||||
})
|
||||
.toPromise()
|
||||
.then(() => {
|
||||
|
||||
@@ -2,9 +2,8 @@ import { Component, OnInit, Input, OnDestroy } from '@angular/core';
|
||||
import { FilterOption } from '@isa/remission';
|
||||
import { RemissionResourceType } from '../../models/remission-resource-type.model';
|
||||
import { Store, Select } from '@ngxs/store';
|
||||
import { SetRemissionFilters } from 'apps/sales/src/app/core/store/actions/remission.actions';
|
||||
import { RemissionSelectors } from 'apps/sales/src/app/core/store/selectors/remission.selectors';
|
||||
import { map, filter, takeUntil } from 'rxjs/operators';
|
||||
import { filter, takeUntil, distinctUntilChanged } from 'rxjs/operators';
|
||||
import { Subject, Observable } from 'rxjs';
|
||||
import { isNullOrUndefined } from 'util';
|
||||
import { RemissionHelperService } from '../../services/remission-helper.service';
|
||||
@@ -35,6 +34,7 @@ export class RemissionSelectedFilterItemsComponent implements OnInit, OnDestroy
|
||||
filters$
|
||||
.pipe(
|
||||
filter(data => !isNullOrUndefined(data)),
|
||||
distinctUntilChanged(),
|
||||
takeUntil(this.destroy$)
|
||||
)
|
||||
.subscribe(filterOptions => {
|
||||
|
||||
@@ -5,4 +5,5 @@ export interface UpdateFilter {
|
||||
options?: FilterOption[];
|
||||
source?: RemissionSourceType;
|
||||
target?: RemissionSupplier;
|
||||
remissionProcessId?: number;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="filters">
|
||||
<app-remission-filters [remissionResourceType]="selectedRemissionResourceType"></app-remission-filters>
|
||||
<app-remission-filters
|
||||
*ngIf="remissionProcess"
|
||||
[remissionProcessId]="remissionProcess.id"
|
||||
[remissionResourceType]="selectedRemissionResourceType"
|
||||
></app-remission-filters>
|
||||
</div>
|
||||
<div
|
||||
class="note"
|
||||
|
||||
@@ -163,7 +163,7 @@ export class RemissionListCreateComponent implements OnInit, OnDestroy {
|
||||
this.selectedRemissionResourceType = source;
|
||||
this.selectedResourceTypeSpecificModel = RESOURCE_TYPE_SPECIFIC_MODEL_OPTIONS[source];
|
||||
this.resourceTypeSwitch.isFirstSwitchedOn = source === RemissionResourceType.Central;
|
||||
this.remissionHelper.updateFilters({ source: source });
|
||||
this.remissionHelper.updateFilters({ remissionProcessId: this.remissionProcess.id });
|
||||
};
|
||||
|
||||
loadCurrentRemissionTarget() {
|
||||
@@ -187,6 +187,7 @@ export class RemissionListCreateComponent implements OnInit, OnDestroy {
|
||||
if (remissionProcessStatuses.started && !remissionProcessStatuses.completed) {
|
||||
this.navigateToStartedRemission();
|
||||
} else {
|
||||
this.reinitializeFilters();
|
||||
this.remissionProcessStatuses = remissionProcessStatuses;
|
||||
this.remissionProcess$ = !this.remissionProcessStatuses.created ? this.createProcess() : this.continueProcess();
|
||||
this.remissionProcess$.pipe(takeUntil(this.destroy$)).subscribe(this.remisionProcessSubscriptionHandler);
|
||||
@@ -311,11 +312,8 @@ export class RemissionListCreateComponent implements OnInit, OnDestroy {
|
||||
this.selectedRemissionResourceType = model.isFirstSwitchedOn ? RemissionResourceType.Central : RemissionResourceType.Overflow;
|
||||
this.selectedResourceTypeSpecificModel = RESOURCE_TYPE_SPECIFIC_MODEL_OPTIONS[this.selectedRemissionResourceType];
|
||||
this.store.dispatch(new SetRemissionSource(this.selectedRemissionResourceType));
|
||||
this.remissionHelper.updateFilters({
|
||||
source: this.selectedRemissionResourceType
|
||||
});
|
||||
this.reinitializeFilters();
|
||||
this.loadCurrentRemissionTarget();
|
||||
this.remissionHelper.reApplyFilters(this.selectedRemissionResourceType);
|
||||
}
|
||||
|
||||
supplierUpdated(side: Side) {
|
||||
@@ -479,4 +477,17 @@ export class RemissionListCreateComponent implements OnInit, OnDestroy {
|
||||
this.toTopToBottomActions.showTopAction(topValue);
|
||||
this.toTopToBottomActions.showBottomAction(bottomValue);
|
||||
}
|
||||
|
||||
private reinitializeFilters() {
|
||||
const options =
|
||||
this.selectedRemissionResourceType === RemissionResourceType.Central
|
||||
? this.store.selectSnapshot(RemissionSelectors.getCentralSelectedFilters)
|
||||
: this.store.selectSnapshot(RemissionSelectors.getOverviewSelectedFilters);
|
||||
this.remissionHelper.updateFilters({
|
||||
source: this.selectedRemissionResourceType,
|
||||
// Change it when Aktionen filter will be ready
|
||||
filterId: 'abteilungen',
|
||||
options
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,11 @@
|
||||
<span>{{ selectedSupplierName }}</span>
|
||||
</div>
|
||||
<div class="filters">
|
||||
<app-remission-filters [remissionResourceType]="selectedRemissionResourceType"></app-remission-filters>
|
||||
<app-remission-filters
|
||||
*ngIf="remissionProcess"
|
||||
[remissionProcessId]="remissionProcess.id"
|
||||
[remissionResourceType]="selectedRemissionResourceType"
|
||||
></app-remission-filters>
|
||||
</div>
|
||||
<div class="note" *ngIf="!listLoaded">
|
||||
<span class="align-center">Wählen Sie die Abteilung aus, die Sie remittieren möchten.</span>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Component, OnInit, OnDestroy, HostListener, AfterViewInit, ViewChild, ChangeDetectorRef, ElementRef } from '@angular/core';
|
||||
import { Component, OnInit, OnDestroy, ViewChild, ChangeDetectorRef, ElementRef } from '@angular/core';
|
||||
import { Subject, Observable } from 'rxjs';
|
||||
import { takeUntil, filter, take, tap, switchMap, catchError, delay } from 'rxjs/operators';
|
||||
import { takeUntil, filter, take, tap, switchMap, catchError, delay, distinctUntilChanged } from 'rxjs/operators';
|
||||
import { DoubleChoiceSwitch } from '@libs/ui';
|
||||
import { RemissionResourceType } from '../../models/remission-resource-type.model';
|
||||
import { ResourceTypeSpecificModel } from '../../models/resource-type-specific-model.model';
|
||||
@@ -17,7 +17,6 @@ import {
|
||||
SetRemissionCreated,
|
||||
SetRemissionSource,
|
||||
SetRemissionTarget,
|
||||
SetRemissionStarted,
|
||||
SetRemissionFinishedProcessStatus
|
||||
} from 'apps/sales/src/app/core/store/actions/remission.actions';
|
||||
import { RemissionHelperService } from '../../services/remission-helper.service';
|
||||
@@ -174,9 +173,10 @@ export class RemissionListStartedComponent implements OnInit, OnDestroy {
|
||||
|
||||
remissionSubsribtionInitialisation() {
|
||||
this.loadCurrentRemissionProcessStatuses().then(remissionProcessStatuses => {
|
||||
this.reinitializeFilters();
|
||||
this.remissionProcessStatuses = remissionProcessStatuses;
|
||||
this.remissionProcess$ = !this.remissionProcessStatuses.created ? this.createProcess() : this.continueProcess();
|
||||
this.remissionProcess$.pipe(takeUntil(this.destroy$)).subscribe(this.remisionProcessSubscriptionHandler);
|
||||
this.remissionProcess$.pipe(distinctUntilChanged(), takeUntil(this.destroy$)).subscribe(this.remisionProcessSubscriptionHandler);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -245,14 +245,14 @@ export class RemissionListStartedComponent implements OnInit, OnDestroy {
|
||||
remissionProcess.filter.source === 'zentral' ? RemissionResourceType.Central : RemissionResourceType.Overflow;
|
||||
this.resourceTypeSwitch.isFirstSwitchedOn = this.selectedRemissionResourceType === RemissionResourceType.Central;
|
||||
this.selectedResourceTypeSpecificModel = RESOURCE_TYPE_SPECIFIC_MODEL_OPTIONS[this.selectedRemissionResourceType];
|
||||
(this.selectedRemissionResourceType === RemissionResourceType.Overflow).ifTrue(() =>
|
||||
this.shouldShowOverflowInitialMessage(remissionProcess.filter)
|
||||
);
|
||||
if (this.suppliers) {
|
||||
setTimeout(() => {
|
||||
this.selectedSupplier = remissionProcess.filter.target.name === this.suppliers.leftSupplier.name ? Side.LEFT : Side.RIGHT;
|
||||
});
|
||||
}
|
||||
(this.selectedRemissionResourceType === RemissionResourceType.Overflow).ifTrue(() =>
|
||||
this.shouldShowOverflowInitialMessage(remissionProcess.filter)
|
||||
);
|
||||
this.store.dispatch(new SetRemissionProcess(remissionProcess));
|
||||
};
|
||||
|
||||
@@ -293,9 +293,8 @@ export class RemissionListStartedComponent implements OnInit, OnDestroy {
|
||||
this.selectedRemissionResourceType = model.isFirstSwitchedOn ? RemissionResourceType.Central : RemissionResourceType.Overflow;
|
||||
this.selectedResourceTypeSpecificModel = RESOURCE_TYPE_SPECIFIC_MODEL_OPTIONS[this.selectedRemissionResourceType];
|
||||
this.store.dispatch(new SetRemissionSource(this.selectedRemissionResourceType));
|
||||
this.remissionHelper.updateFilters({ source: this.selectedRemissionResourceType });
|
||||
this.reinitializeFilters();
|
||||
this.loadCurrentRemissionTarget();
|
||||
this.remissionHelper.reApplyFilters(this.selectedRemissionResourceType);
|
||||
}
|
||||
|
||||
supplierUpdated(side: Side) {
|
||||
@@ -388,4 +387,17 @@ export class RemissionListStartedComponent implements OnInit, OnDestroy {
|
||||
this.toTopToBottomActions.showTopAction(topValue);
|
||||
this.toTopToBottomActions.showBottomAction(bottomValue);
|
||||
}
|
||||
|
||||
private reinitializeFilters() {
|
||||
const options =
|
||||
this.selectedRemissionResourceType === RemissionResourceType.Central
|
||||
? this.store.selectSnapshot(RemissionSelectors.getCentralSelectedFilters)
|
||||
: this.store.selectSnapshot(RemissionSelectors.getOverviewSelectedFilters);
|
||||
this.remissionHelper.updateFilters({
|
||||
source: this.selectedRemissionResourceType,
|
||||
// Change it when Aktionen filter will be ready
|
||||
filterId: 'abteilungen',
|
||||
options
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +66,6 @@ export class DropdownComponent {
|
||||
|
||||
public setTop(scrollTop: number) {
|
||||
this.top = -scrollTop + 152 * this.index - this.index * 15;
|
||||
console.log(this.index, scrollTop, this.top);
|
||||
this.cdrf.detectChanges();
|
||||
}
|
||||
|
||||
|
||||
6
package-lock.json
generated
6
package-lock.json
generated
@@ -1095,9 +1095,9 @@
|
||||
}
|
||||
},
|
||||
"@isa/remission": {
|
||||
"version": "0.2.4",
|
||||
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@isa/remission/-/remission-0.2.4.tgz",
|
||||
"integrity": "sha1-FM9gaYwn1tAgJhFtZZE6Mm2V4Wk=",
|
||||
"version": "0.2.5",
|
||||
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@isa/remission/-/remission-0.2.5.tgz",
|
||||
"integrity": "sha1-PigSAG3FCSqrE+MX+oI3JtGd+KI=",
|
||||
"requires": {
|
||||
"tslib": "^1.9.0"
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
"@isa/catsearch-api": "^0.0.35",
|
||||
"@isa/print-api": "^0.0.35",
|
||||
"@isa/remi-api": "^0.0.35",
|
||||
"@isa/remission": "^0.2.4",
|
||||
"@isa/remission": "^0.2.5",
|
||||
"@ng-idle/core": "^8.0.0-beta.4",
|
||||
"@ng-idle/keepalive": "^8.0.0-beta.4",
|
||||
"@ngxs/store": "^3.4.1",
|
||||
|
||||
Reference in New Issue
Block a user