HIMA-790 add a new article

This commit is contained in:
Adrian Toczydlowski
2020-02-04 16:14:47 +01:00
parent ca1a8b3d6f
commit 20cdbcba95
10 changed files with 177 additions and 95 deletions

View File

@@ -6,7 +6,7 @@ export interface Remission {
remissionProcessCreated?: boolean;
remissionProcessStarted?: boolean;
remissionProcessCompleted?: boolean;
remissionProcess?: RemissionProcess;
remissionProcess?: any;
remissionProducts?: RemissionProduct[];
target?: string;
source?: RemissionResourceType;
@@ -16,8 +16,8 @@ export interface Remission {
blockReminder?: boolean;
remissionFinishingProcessStatus?: RemissionFinishingProcessStatus;
containerId?: string;
zentral: RemissionTypeFilters;
ueberlauf: RemissionTypeFilters;
// zentral: RemissionTypeFilters;
// ueberlauf: RemissionTypeFilters;
}
export interface RemissionTypeFilters {

View File

@@ -59,8 +59,11 @@ export class RemissionSelectors {
static getRemissionFilters(resourceType, resourceTarget) {
return state => {
const { remission } = state.remission;
return remission[resourceType]
? remission[resourceType][resourceTarget]
console.log('getRemissionFilters', resourceTarget, resourceType);
console.log('remission', remission.remissionProcess[resourceType][resourceTarget]);
return remission && remission.remissionProcess && remission.remissionProcess[resourceType]
? remission.remissionProcess[resourceType][resourceTarget]
: {
abteilungen: {
filterGroups: [],
@@ -101,10 +104,10 @@ export class RemissionSelectors {
static getRemissionSelectedGroups(filterId = 'abteilungen') {
return state => {
const { remission } = state.remission;
if (remission) {
if (remission && remission.remissionProcess) {
const source = remission.source;
const target = remission.target;
return remission[source][target][filterId].filterGroups;
return remission.remissionProcess[source][target][filterId].filterGroups;
}
};
}
@@ -112,23 +115,23 @@ export class RemissionSelectors {
@Selector([RemissionState])
static getRemissionSelectedOptions(remissionState: RemissionStateModel) {
const remission = remissionState.remission;
if (remission) {
if (remission && remission.remissionProcess) {
const source = remission.source;
const target = remission.target;
return remission[source][target].abteilungen.filterOptions;
return remission.remissionProcess[source][target].abteilungen.filterOptions;
}
}
@Selector([RemissionState])
static getRemissionSelectedFilters(remissionState: RemissionStateModel) {
const remission = remissionState.remission;
if (remission) {
if (remission && remission.remissionProcess) {
const source = remission.source;
const target = remission.target;
if (source === RemissionResourceType.Overflow) {
return remission[source][target].abteilungen.filterGroups;
return remission.remissionProcess[source][target].abteilungen.filterGroups;
} else {
const filters = remission[source][target];
const filters = remission.remissionProcess[source][target];
const centralSelectedAktionenFilters = filters.aktionen.filterGroups || [];
return [
...centralSelectedAktionenFilters,

View File

@@ -86,6 +86,7 @@ export class RemissionState {
...remissionProcess
}
};
console.log('SetRemissionProcess#', remission);
ctx.patchState({ remission });
this.syncApiState(remission);
}
@@ -117,35 +118,74 @@ export class RemissionState {
const currentRemission = state.remission;
let remission: Remission;
const target = currentRemission.target;
const selectedFilters: any = {
[filterId]: {
filterGroups,
filterOptions
}
};
if (source === RemissionResourceType.Central) {
remission = {
...currentRemission,
zentral: {
...currentRemission.zentral,
[target]: {
...currentRemission.zentral[target],
[filterId]: {
filterGroups,
filterOptions
remissionProcess: {
...currentRemission.remissionProcess,
zentral: {
...currentRemission.remissionProcess.zentral,
[target]: {
...currentRemission.remissionProcess.zentral[target],
...selectedFilters
}
}
}
// remissionProcess: {
// ...currentRemission.remissionProcess,
// filter: {
// ...currentRemission.remissionProcess.filter,
// filter: {
// [filterId]: selectedFilters[filterId].filterOptions.map(option => option.id)
// }
// }
// },
// zentral: {
// ...currentRemission.zentral,
// [target]: {
// ...currentRemission.zentral[target],
// ...selectedFilters
// }
// }
};
} else {
remission = {
...currentRemission,
ueberlauf: {
...currentRemission.ueberlauf,
[target]: {
...currentRemission.ueberlauf[target],
[filterId]: {
filterGroups,
filterOptions
remissionProcess: {
...currentRemission.remissionProcess,
ueberlauf: {
...currentRemission.remissionProcess.ueberlauf,
[target]: {
...currentRemission.remissionProcess.ueberlauf[target],
...selectedFilters
}
}
}
// filter: {
// ...currentRemission.remissionProcess.filter,
// filter: {
// [filterId]: selectedFilters[filterId].filterGroups.map(option => option.id)
// }
// }
// },
// ueberlauf: {
// ...currentRemission.ueberlauf,
// [target]: {
// ...currentRemission.ueberlauf[target],
// ...selectedFilters
// }
// }
};
}
console.log('filterGroups', filterGroups);
console.log('filterOptions', filterOptions);
console.log('remission filters', remission);
ctx.patchState({ remission });
this.syncApiState(remission);
}
@@ -319,8 +359,7 @@ export class RemissionState {
source: RemissionResourceType.Central,
shippingDocumentCreated: false,
blockReminder: true,
remissionFinishingProcessStatus: RemissionFinishingProcessStatus.notSet,
...intitialFiltersValue
remissionFinishingProcessStatus: RemissionFinishingProcessStatus.notSet
};
ctx.patchState({ remission });
this.syncApiState(remission);
@@ -337,8 +376,7 @@ export class RemissionState {
source: RemissionResourceType.Central,
shippingDocumentCreated: false,
blockReminder: true,
remissionFinishingProcessStatus: RemissionFinishingProcessStatus.notSet,
...intitialFiltersValue
remissionFinishingProcessStatus: RemissionFinishingProcessStatus.notSet
};
ctx.patchState({ remission });
this.syncApiState(remission);

View File

@@ -148,7 +148,7 @@ export class RemissionListComponent implements OnInit, OnDestroy {
if (!this.remissionProcess) {
return;
}
console.log('changes', changes);
this.remissionService
.updateRemissionFilter({
remissionProcessId: this.remissionProcess.id,

View File

@@ -202,18 +202,10 @@ export class RemissionFinishComponent implements OnInit, OnDestroy {
}
finishRemission() {
this.remissionService
.completeRemission({
remissionProcessId: this.remissionProcess.id
})
.subscribe(remissionFinished => {
if (!isNullOrUndefined(remissionFinished)) {
this.appService.clearIdleReminder();
this.pageStatus = RemissionFinishingProcessStatus.finished;
this.store.dispatch(new SetRemissionFinishedProcessStatus(this.pageStatus));
this.store.dispatch(new ResetRemissionState());
}
});
this.appService.clearIdleReminder();
this.pageStatus = RemissionFinishingProcessStatus.finished;
this.store.dispatch(new SetRemissionFinishedProcessStatus(this.pageStatus));
this.store.dispatch(new ResetRemissionState());
}
continueRemission() {

View File

@@ -202,6 +202,7 @@ export class RemissionListCreateComponent implements OnInit, OnDestroy {
this.remissionProcessStatuses = remissionProcessStatuses;
this.remissionProcess$ = !this.remissionProcessStatuses.created ? this.createProcess() : this.continueProcess();
this.remissionProcess$.pipe(takeUntil(this.destroy$)).subscribe(remissionProcess => {
console.log('remissionProcess#', remissionProcess);
(!isNullOrUndefined(remissionProcess.capacities)).ifTrue(() => this.capacitiesBinder(remissionProcess.capacities));
});
@@ -380,7 +381,7 @@ export class RemissionListCreateComponent implements OnInit, OnDestroy {
}
openStartRemissionDialog() {
if (this.isNative) {
if (this.isIPad) {
this.startRemission();
} else {
this.remissionStartDialog.openDialog();
@@ -508,15 +509,37 @@ export class RemissionListCreateComponent implements OnInit, OnDestroy {
? filters.abteilungen.filterOptions
: filters.abteilungen.filterGroups;
const aktionenFilters = this.selectedRemissionResourceType === RemissionResourceType.Central ? filters.aktionen.filterGroups : [];
this.remissionHelper.updateFilters({
target: resourceTarget,
source: this.selectedRemissionResourceType,
filters: {
abteilungen: abteilungenFilters,
...(aktionenFilters.length > 0 && {
aktionen: aktionenFilters
})
const selectedFilters = {
abteilungen: abteilungenFilters,
...(aktionenFilters.length > 0 && {
aktionen: aktionenFilters
})
};
if (!this.listLoaded) {
console.log('ZAPISUJ FILTRY KURWO');
const updateFilters = {};
if (selectedFilters) {
Object.keys(selectedFilters).forEach(filterId => {
updateFilters[filterId] = [...selectedFilters[filterId].map(op => op.id)];
});
}
});
this.remissionService
.updateRemissionFilter({
remissionProcessId: this.remissionProcess.id,
changes: {
target: resourceTarget,
source: this.selectedRemissionResourceType,
filter: updateFilters
}
})
.subscribe();
} else {
this.remissionHelper.updateFilters({
target: resourceTarget,
source: this.selectedRemissionResourceType,
filters: selectedFilters
});
}
}
}

View File

@@ -179,14 +179,17 @@ export class RemissionListStartedComponent implements OnInit, OnDestroy {
remissionSubsribtionInitialisation() {
this.loadCurrentRemissionProcessStatuses().then(remissionProcessStatuses => {
console.log('loadCurrentRemissionProcessStatuses');
this.remissionProcessStatuses = remissionProcessStatuses;
this.remissionProcess$ = !this.remissionProcessStatuses.created ? this.createProcess() : this.continueProcess();
this.remissionProcess$.pipe(takeUntil(this.destroy$), distinctUntilChanged()).subscribe(remissionProcess => {
console.log('remissionProcess', remissionProcess);
(!isNullOrUndefined(remissionProcess.capacities)).ifTrue(() => this.capacitiesBinder(remissionProcess.capacities));
});
of(this.remissionSuppliers$.pipe(filter(this.remissionSuppliersFilter)), this.remissionProcess$)
.pipe(combineAll(), take(1), takeUntil(this.destroy$))
.subscribe(([suppliers, process]: [any, any]) => {
console.log('process', process);
this.remissionSuppliersSubscriptionHandler(suppliers, process);
});
});
@@ -252,6 +255,7 @@ export class RemissionListStartedComponent implements OnInit, OnDestroy {
remisionProcessSubscriptionHandler = (remissionProcess: RemissionProcess) => {
this.remissionProcess = remissionProcess;
console.log('set', remissionProcess);
this.store.dispatch(new SetRemissionProcess(remissionProcess));
this.processNeedsToBeRestoredFromCache.ifTrue(() => this.restoreProcess());
this.selectedRemissionResourceType =
@@ -427,15 +431,37 @@ export class RemissionListStartedComponent implements OnInit, OnDestroy {
? filters.abteilungen.filterOptions
: filters.abteilungen.filterGroups;
const aktionenFilters = this.selectedRemissionResourceType === RemissionResourceType.Central ? filters.aktionen.filterGroups : [];
this.remissionHelper.updateFilters({
target: resourceTarget,
source: this.selectedRemissionResourceType,
filters: {
abteilungen: abteilungenFilters,
...(aktionenFilters.length > 0 && {
aktionen: aktionenFilters
})
const selectedFilters = {
abteilungen: abteilungenFilters,
...(aktionenFilters.length > 0 && {
aktionen: aktionenFilters
})
};
if (!this.listLoaded) {
console.log('ZAPISUJ FILTRY KURWO');
const updateFilters = {};
if (selectedFilters) {
Object.keys(selectedFilters).forEach(filterId => {
updateFilters[filterId] = [...selectedFilters[filterId].map(op => op.id)];
});
}
});
this.remissionService
.updateRemissionFilter({
remissionProcessId: this.remissionProcess.id,
changes: {
target: resourceTarget,
source: this.selectedRemissionResourceType,
filter: updateFilters
}
})
.subscribe();
} else {
this.remissionHelper.updateFilters({
target: resourceTarget,
source: this.selectedRemissionResourceType,
filters: selectedFilters
});
}
}
}

View File

@@ -25,7 +25,7 @@ export class RemissionShippingDocumentScannerScanditComponent implements AfterVi
destroy$ = new Subject();
public settings = new ScanSettings({
enabledSymbologies: [Barcode.Symbology.CODE128, Barcode.Symbology.EAN13]
enabledSymbologies: [Barcode.Symbology.CODE128, Barcode.Symbology.EAN13, Barcode.Symbology.INTERLEAVED_2_OF_5]
});
@ViewChild('scanner') scanner: ScanditSdkBarcodePickerComponent;

48
package-lock.json generated
View File

@@ -1039,65 +1039,65 @@
}
},
"@cmf/catalog-api": {
"version": "0.1.19",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@cmf/catalog-api/-/catalog-api-0.1.19.tgz",
"integrity": "sha1-meUray5zaYrqJiYnTv36qWAXGgw=",
"version": "0.1.21",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@cmf/catalog-api/-/catalog-api-0.1.21.tgz",
"integrity": "sha1-aQDFHvaBHmcLi56nDZPwf+wXb2o=",
"requires": {
"tslib": "^1.9.0"
}
},
"@cmf/core": {
"version": "0.1.19",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@cmf/core/-/core-0.1.19.tgz",
"integrity": "sha1-1Jxn7V3CcsDnmgyRCD7j4GIQkoQ=",
"version": "0.1.21",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@cmf/core/-/core-0.1.21.tgz",
"integrity": "sha1-y45JHSNu6eoyWygfh9DONqR2XPw=",
"requires": {
"tslib": "^1.9.0"
}
},
"@cmf/inventory-api": {
"version": "0.1.19",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@cmf/inventory-api/-/inventory-api-0.1.19.tgz",
"integrity": "sha1-HqNa6KmqAogR5sahnc9sIwrldY8=",
"version": "0.1.21",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@cmf/inventory-api/-/inventory-api-0.1.21.tgz",
"integrity": "sha1-3WjqXk2UgyFPGse1cHgu1EpqX9Q=",
"requires": {
"tslib": "^1.9.0"
}
},
"@cmf/trade-api": {
"version": "0.1.19",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@cmf/trade-api/-/trade-api-0.1.19.tgz",
"integrity": "sha1-OQKQRhCjhk3j3sTnuEqd8kuiVJM=",
"version": "0.1.21",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@cmf/trade-api/-/trade-api-0.1.21.tgz",
"integrity": "sha1-S+lF5LzZ6tdzE55OtyukqJ29nPM=",
"requires": {
"tslib": "^1.9.0"
}
},
"@isa/catsearch-api": {
"version": "0.0.47",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@isa/catsearch-api/-/catsearch-api-0.0.47.tgz",
"integrity": "sha1-Uk/wka6Jd/ba9w1Kg4VUKOO3Rko=",
"version": "0.0.48",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@isa/catsearch-api/-/catsearch-api-0.0.48.tgz",
"integrity": "sha1-QWfLRl8iBKs+KTlG5REm75z1vw8=",
"requires": {
"tslib": "^1.9.0"
}
},
"@isa/print-api": {
"version": "0.0.47",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@isa/print-api/-/print-api-0.0.47.tgz",
"integrity": "sha1-lQCmG4/zfN1VQzKAJjMMIQBFgmA=",
"version": "0.0.48",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@isa/print-api/-/print-api-0.0.48.tgz",
"integrity": "sha1-UOn5UBCGRJhmACii0h+oVnVPAmU=",
"requires": {
"tslib": "^1.9.0"
}
},
"@isa/remi-api": {
"version": "0.0.47",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@isa/remi-api/-/remi-api-0.0.47.tgz",
"integrity": "sha1-m20rJHpHDdYVbZAkKLqwaTu3j80=",
"version": "0.0.48",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@isa/remi-api/-/remi-api-0.0.48.tgz",
"integrity": "sha1-uEdj6PJg/Bl5qvRCltml1wzoh18=",
"requires": {
"tslib": "^1.9.0"
}
},
"@isa/remission": {
"version": "0.2.22",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@isa/remission/-/remission-0.2.22.tgz",
"integrity": "sha1-+ERnzxaMen7gpnvU9mJH7obyuTE=",
"version": "0.2.23",
"resolved": "https://pkgs.dev.azure.com/hugendubel/_packaging/hugendubel/npm/registry/@isa/remission/-/remission-0.2.23.tgz",
"integrity": "sha1-5vzKfx1VW2rpZP1UWQqyr5lxszg=",
"requires": {
"tslib": "^1.9.0"
}

View File

@@ -30,14 +30,14 @@
"@angular/pwa": "^0.13.4",
"@angular/router": "~7.2.12",
"@angular/service-worker": "~7.2.12",
"@cmf/catalog-api": "^0.1.19",
"@cmf/core": "^0.1.19",
"@cmf/inventory-api": "^0.1.19",
"@cmf/trade-api": "^0.1.19",
"@isa/catsearch-api": "^0.0.47",
"@isa/print-api": "0.0.47",
"@isa/remi-api": "^0.0.47",
"@isa/remission": "^0.2.22",
"@cmf/catalog-api": "^0.1.21",
"@cmf/core": "^0.1.21",
"@cmf/inventory-api": "^0.1.21",
"@cmf/trade-api": "^0.1.21",
"@isa/catsearch-api": "^0.0.48",
"@isa/print-api": "0.0.48",
"@isa/remi-api": "^0.0.48",
"@isa/remission": "^0.2.23",
"@ng-idle/core": "^8.0.0-beta.4",
"@ng-idle/keepalive": "^8.0.0-beta.4",
"@ngxs/store": "^3.4.1",