@colijnit/transaction 12.0.5 → 12.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/app/component/core/base/default-ok-cancel-buttons.component.d.ts +13 -0
  2. package/app/component/core/base/transaction-base.component.d.ts +48 -0
  3. package/app/component/{shopping-cart → core}/characteristic-answer/characteristic-answer.component.d.ts +0 -0
  4. package/app/component/core/directive/template-wrapper.directive.d.ts +13 -0
  5. package/app/component/{shopping-cart → core}/stock-status-indicator/stock-status-indicator.component.d.ts +0 -0
  6. package/app/component/core/warehouse/warehouse.component.d.ts +35 -0
  7. package/app/component/service-order/ione-service-order-module.d.ts +2 -0
  8. package/app/component/service-order/ione-service-order.component.d.ts +25 -0
  9. package/app/component/service-order/service-order.component.d.ts +53 -0
  10. package/app/component/service-order/summary/transaction-article-summary.component.d.ts +17 -0
  11. package/app/component/service-order/summary/transaction-delivery-summary.component.d.ts +20 -0
  12. package/app/component/service-order/summary/transaction-order-summary.component.d.ts +16 -0
  13. package/app/component/service-order/summary/transaction-payment-info.component.d.ts +14 -0
  14. package/app/component/service-order/summary/transaction-product-contract-summary.component.d.ts +7 -0
  15. package/app/component/service-order/summary/transaction-product-summary.component.d.ts +15 -0
  16. package/app/component/service-order/summary/transaction-service-status.component.d.ts +15 -0
  17. package/app/component/service-order/summary/transaction-service-summary.component.d.ts +15 -0
  18. package/app/component/service-order/summary/transaction-summary-block.component.d.ts +16 -0
  19. package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +24 -0
  20. package/app/component/service-order/transaction-header-block/transaction-header-block.component.d.ts +15 -0
  21. package/app/component/service-order/transaction-manager/transaction-manager.component.d.ts +63 -0
  22. package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.d.ts +16 -0
  23. package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.d.ts +25 -0
  24. package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.d.ts +6 -0
  25. package/app/component/service-order/transaction-relation/transaction-relation-address.component.d.ts +22 -0
  26. package/app/component/service-order/transaction-relation/transaction-relation-edit.component.d.ts +29 -0
  27. package/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.d.ts +11 -0
  28. package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.d.ts +26 -0
  29. package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +1 -1
  30. package/app/service/ione-connector-adapter.service.d.ts +1 -0
  31. package/app/service/transaction-event.service.d.ts +5 -0
  32. package/app/service/transaction.service.d.ts +19 -8
  33. package/bundles/colijnit-transaction.umd.js +2396 -63
  34. package/bundles/colijnit-transaction.umd.js.map +1 -1
  35. package/colijnit-transaction.d.ts +26 -2
  36. package/colijnit-transaction.metadata.json +1 -1
  37. package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +2 -2
  38. package/esm2015/app/component/checkout/ione-checkout.module.js +3 -3
  39. package/esm2015/app/component/common/icon/icon.component.js +2 -1
  40. package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +39 -0
  41. package/esm2015/app/component/core/base/transaction-base.component.js +146 -0
  42. package/esm2015/app/component/core/characteristic-answer/characteristic-answer.component.js +100 -0
  43. package/esm2015/app/component/core/directive/template-wrapper.directive.js +69 -0
  44. package/esm2015/app/component/{shopping-cart → core}/stock-status-indicator/stock-status-indicator.component.js +1 -1
  45. package/esm2015/app/component/core/warehouse/warehouse.component.js +133 -0
  46. package/esm2015/app/component/service-order/ione-service-order-module.js +108 -0
  47. package/esm2015/app/component/service-order/ione-service-order.component.js +96 -0
  48. package/esm2015/app/component/service-order/service-order.component.js +195 -0
  49. package/esm2015/app/component/service-order/summary/transaction-article-summary.component.js +55 -0
  50. package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +59 -0
  51. package/esm2015/app/component/service-order/summary/transaction-order-summary.component.js +43 -0
  52. package/esm2015/app/component/service-order/summary/transaction-payment-info.component.js +35 -0
  53. package/esm2015/app/component/service-order/summary/transaction-product-contract-summary.component.js +38 -0
  54. package/esm2015/app/component/service-order/summary/transaction-product-summary.component.js +41 -0
  55. package/esm2015/app/component/service-order/summary/transaction-service-status.component.js +37 -0
  56. package/esm2015/app/component/service-order/summary/transaction-service-summary.component.js +38 -0
  57. package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +53 -0
  58. package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +194 -0
  59. package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +83 -0
  60. package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js +305 -0
  61. package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +76 -0
  62. package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +71 -0
  63. package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +36 -0
  64. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-address.component.js +116 -0
  65. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +225 -0
  66. package/esm2015/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.js +172 -0
  67. package/esm2015/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.js +120 -0
  68. package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +4 -6
  69. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +1 -1
  70. package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +1 -1
  71. package/esm2015/app/service/ione-connector-adapter.service.js +24 -6
  72. package/esm2015/app/service/transaction-event.service.js +4 -1
  73. package/esm2015/app/service/transaction.service.js +122 -37
  74. package/esm2015/assets/dictionary/text.properties.js +37 -1
  75. package/esm2015/colijnit-transaction.js +27 -3
  76. package/esm2015/public_api.js +3 -1
  77. package/fesm2015/colijnit-transaction.js +2625 -50
  78. package/fesm2015/colijnit-transaction.js.map +1 -1
  79. package/package.json +3 -3
  80. package/public_api.d.ts +2 -0
  81. package/esm2015/app/component/shopping-cart/characteristic-answer/characteristic-answer.component.js +0 -99
@@ -1,12 +1,13 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { Injectable, EventEmitter, Component, Input, Output, ChangeDetectorRef, ViewChild, Pipe, HostBinding, NgModule } from '@angular/core';
3
+ import { Injectable, EventEmitter, Component, Input, Output, ChangeDetectorRef, ViewChild, Pipe, HostBinding, NgModule, Directive, ContentChild, ViewContainerRef } from '@angular/core';
4
4
  import { BehaviorSubject, Subject, throwError } from 'rxjs';
5
5
  import { Options } from '@colijnit/ioneconnector/build/model/options';
6
6
  import { CustomerFullObject } from '@colijnit/transactionapi/build/model/customer-full-object.bo';
7
7
  import { TransactionInfoResponse } from '@colijnit/transactionapi/build/model/transaction-info-response.bo';
8
8
  import { RelationPrivacySetting } from '@colijnit/transactionapi/build/model/relation-privacy-setting.bo';
9
9
  import { GetPostalCodeRetrievalOutputParams } from '@colijnit/transactionapi/build/model/get-postal-code-retrieval-output-params';
10
+ import { RelationListObject } from '@colijnit/transactionapi/build/model/relation-list-object.bo';
10
11
  import { ArticleFullObject } from '@colijnit/transactionapi/build/model/article-full-object';
11
12
  import { LineOperationResponse } from '@colijnit/transactionapi/build/model/line-operation-response.bo';
12
13
  import { Transaction } from '@colijnit/transactionapi/build/transaction';
@@ -24,7 +25,7 @@ import { BooleanTextDecorator as BooleanTextDecorator$1 } from '@colijnit/transa
24
25
  import { JsonFieldFieldDecorator } from '@colijnit/transactionapi/build/factory/decorators/json.decorator';
25
26
  import { ComplexArrayDecorator as ComplexArrayDecorator$1 } from '@colijnit/transactionapi/build/factory/decorators/complex-array.decorator';
26
27
  import { ImageUtils } from '@colijnit/transactionapi/build/utils/image-utils';
27
- import { NULL_RELATION_OBJECT } from '@colijnit/transactionapi/build/model/nul-relation-object';
28
+ import { NULL_RELATION_OBJECT, NULL_CUSTOMER_FULL_OBJECT, NULL_RELATION_LIST_OBJECT } from '@colijnit/transactionapi/build/model/nul-relation-object';
28
29
  import { TransactionKind } from '@colijnit/transactionapi/build/enum/transaction-kind.enum';
29
30
  import { SequenceName } from '@colijnit/transactionapi/build/enum/sequence-name.enum';
30
31
  import { ArrayUtils as ArrayUtils$1 } from '@colijnit/transactionapi/build/utils/array-utils';
@@ -34,16 +35,15 @@ import { TransactionLineType } from '@colijnit/transactionapi/build/enum/transac
34
35
  import { LineOperationStatus } from '@colijnit/transactionapi/build/model/line-operation-status.bo';
35
36
  import { TransactionInfo } from '@colijnit/transactionapi/build/model/transaction-info.bo';
36
37
  import { PendingReasonType } from '@colijnit/transactionapi/build/enum/pending-reason-type.enum';
38
+ import { PromptService, FormComponent, CoSidebarComponent, CoreComponentsIcon, IconCacheService, IconModule, InputTextModule, InputCheckboxModule, InputRadioButtonModule, FormModule, InputComboBoxModule, InputDatePickerModule, InputNumberPickerModule, CoDialogModule, CoDialogPromptModule, ButtonModule, MultiSelectListModule, DropDownModule, PopupModule, CoSidebarModule, CoGridModule } from '@colijnit/corecomponents_v12';
37
39
  import { CommunicationType } from '@colijnit/transactionapi/build/enum/communication-type.enum';
38
40
  import { ContactOption } from '@colijnit/transactionapi/build/model/contact-option.bo';
39
41
  import { RelationNameKind } from '@colijnit/transactionapi/build/enum/relation-name-kind.enum';
40
42
  import { AddressType } from '@colijnit/transactionapi/build/enum/address-type.enum';
41
43
  import { GenderType } from '@colijnit/transactionapi/build/enum/gender-type.enum';
42
44
  import { BusinessObjectUtils } from '@colijnit/transactionapi/build/utils/business-object-utils';
43
- import { FormComponent, CoSidebarComponent, PromptService, CoreComponentsIcon, IconCacheService, IconModule, InputTextModule, InputCheckboxModule, InputRadioButtonModule, FormModule, InputComboBoxModule, InputDatePickerModule, InputNumberPickerModule, CoDialogModule, CoDialogPromptModule, ButtonModule, MultiSelectListModule, DropDownModule, PopupModule, CoSidebarModule, CoGridModule } from '@colijnit/corecomponents_v12';
44
45
  import { FunctionUtils } from '@colijnit/transactionapi/build/utils/function-utils';
45
46
  import { Address } from '@colijnit/transactionapi/build/model/address.bo';
46
- import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
47
47
  import { FlexModule } from '@angular/flex-layout';
48
48
  import { MatStepperModule } from '@angular/material/stepper';
49
49
  import { CommonModule } from '@angular/common';
@@ -52,6 +52,14 @@ import { ResolvePendingLineReasonRequest } from '@colijnit/transactionapi/build/
52
52
  import { SortDirection } from '@colijnit/transactionapi/build/enum/sort-direction';
53
53
  import { SortType } from '@colijnit/transactionapi/build/enum/sort-type.enum';
54
54
  import { StockStatus } from '@colijnit/transactionapi/build/enum/refcode/stock-status.enum';
55
+ import { trigger, state, style, transition, animate } from '@angular/animations';
56
+ import { RelationRequest } from '@colijnit/transactionapi/build/model/relation-request';
57
+ import { DropDownButtonModule } from '@syncfusion/ej2-angular-splitbuttons';
58
+ import { ChipListModule, CheckBoxModule } from '@syncfusion/ej2-angular-buttons';
59
+ import { DropDownListModule } from '@syncfusion/ej2-angular-dropdowns';
60
+ import { Sidebar, Accordion } from '@syncfusion/ej2-navigations';
61
+ import { TabModule } from '@syncfusion/ej2-angular-navigations';
62
+ import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
55
63
 
56
64
  class OptionsService {
57
65
  constructor() {
@@ -848,14 +856,19 @@ class IOneConnectorAdapterService {
848
856
  return new Promise((resolve, reject) => {
849
857
  return this.connector.getSingleImage(nodeId, publication, includeMimetype, thumb).then((result) => {
850
858
  if (result.validationResult && result.validationResult.success) {
851
- if (result.resultObject.filePath !== null && result.resultObject.filePath !== "") {
859
+ if (result.resultObject && result.resultObject.filePath !== null && result.resultObject.filePath !== "") {
852
860
  return resolve(ImageUtils.getFixedImageFilepathUrl(result.resultObject.filePath));
853
861
  }
854
862
  else {
855
- if (includeMimetype) {
856
- return resolve(ImageUtils.getDocBodyWithMimeTypeDefinition(result.resultObject.fileName, thumb ? result.resultObject.thumbnailBody : result.resultObject.documentBody));
863
+ if (result.resultObject) {
864
+ if (includeMimetype) {
865
+ return resolve(ImageUtils.getDocBodyWithMimeTypeDefinition(result.resultObject.fileName, thumb ? result.resultObject.thumbnailBody : result.resultObject.documentBody));
866
+ }
867
+ return resolve(thumb ? result.resultObject.thumbnailBody : result.resultObject.documentBody);
868
+ }
869
+ else {
870
+ reject(result.validationMessagesAsString);
857
871
  }
858
- return resolve(thumb ? result.resultObject.thumbnailBody : result.resultObject.documentBody);
859
872
  }
860
873
  }
861
874
  else {
@@ -959,6 +972,18 @@ class IOneConnectorAdapterService {
959
972
  });
960
973
  });
961
974
  }
975
+ getTransactionById(transactionId) {
976
+ return new Promise((resolve, reject) => {
977
+ return this.connector.getTransactionById(transactionId).then((result) => {
978
+ if (result.validationResult && result.validationResult.success) {
979
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
980
+ }
981
+ else {
982
+ reject(result.validationMessagesAsString);
983
+ }
984
+ });
985
+ });
986
+ }
962
987
  saveTransaction(uuid) {
963
988
  return new Promise((resolve, reject) => {
964
989
  return this.connector.saveTransaction(uuid).then((result) => {
@@ -1119,7 +1144,7 @@ class IOneConnectorAdapterService {
1119
1144
  return new Promise((resolve, reject) => {
1120
1145
  return this.connector.getRelationListObjects(relationRequest).then((result) => {
1121
1146
  if (result.validationResult && result.validationResult.success) {
1122
- resolve(result.resultObjects);
1147
+ resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(RelationListObject, result.resultObjects));
1123
1148
  }
1124
1149
  else {
1125
1150
  reject(result.validationMessagesAsString);
@@ -1292,9 +1317,11 @@ IOneConnectorAdapterService.decorators = [
1292
1317
  IOneConnectorAdapterService.ctorParameters = () => [];
1293
1318
 
1294
1319
  class TransactionService {
1295
- constructor(_connector) {
1320
+ constructor(_connector, _prompt) {
1296
1321
  this._connector = _connector;
1322
+ this._prompt = _prompt;
1297
1323
  this.transactionUpdated = new EventEmitter();
1324
+ this.transactionLoaded = new EventEmitter();
1298
1325
  this.applicationUser = false;
1299
1326
  this.articleAmount = 0;
1300
1327
  this._currentLines = [];
@@ -1338,6 +1365,11 @@ class TransactionService {
1338
1365
  && line.pendingReasonType !== PendingReasonType.NON_CRITICAL_DISCONTINUATION);
1339
1366
  return status;
1340
1367
  }
1368
+ pendingLineOperationStatus(lineOperationStatuses) {
1369
+ const status = lineOperationStatuses.find(line => line.pendingReasonType !== PendingReasonType.NONE
1370
+ && line.pendingReasonType !== PendingReasonType.NON_CRITICAL_DISCONTINUATION);
1371
+ return status;
1372
+ }
1341
1373
  getArticleFullObject(goodId) {
1342
1374
  return __awaiter(this, void 0, void 0, function* () {
1343
1375
  return yield this._connector.getArticleFullObject(goodId);
@@ -1418,11 +1450,10 @@ class TransactionService {
1418
1450
  });
1419
1451
  });
1420
1452
  }
1421
- resolvePendingLineReason(pendingLineValues) {
1453
+ resolvePendingLineReason(pendingLineValues, remember = true) {
1422
1454
  return new Promise((resolve) => {
1423
1455
  this._connector.resolvePendingLineReason(pendingLineValues).then((response) => __awaiter(this, void 0, void 0, function* () {
1424
- this._rememberCurrentTransaction(response);
1425
- this._rememberCurrentTransactionLineStatus(response);
1456
+ this._rememberResponse(remember, response);
1426
1457
  resolve(response);
1427
1458
  })).catch((reason) => {
1428
1459
  resolve();
@@ -1438,8 +1469,25 @@ class TransactionService {
1438
1469
  return new Promise((resolve, reject) => {
1439
1470
  this._connector.getTransactionByNrAndKind(kind, transactionNr)
1440
1471
  .then((response) => __awaiter(this, void 0, void 0, function* () {
1441
- this._rememberCurrentTransaction(response);
1442
1472
  if (response.isSuccess) {
1473
+ this.transactionLoaded.emit(response);
1474
+ resolve(true);
1475
+ }
1476
+ else {
1477
+ reject(false);
1478
+ }
1479
+ }))
1480
+ .catch((reason) => {
1481
+ reject(false);
1482
+ });
1483
+ });
1484
+ }
1485
+ getTransactionById(transactionId) {
1486
+ return new Promise((resolve, reject) => {
1487
+ this._connector.getTransactionById(transactionId)
1488
+ .then((response) => __awaiter(this, void 0, void 0, function* () {
1489
+ if (response.isSuccess) {
1490
+ this.transactionLoaded.emit(response);
1443
1491
  resolve(true);
1444
1492
  }
1445
1493
  else {
@@ -1459,6 +1507,28 @@ class TransactionService {
1459
1507
  }
1460
1508
  });
1461
1509
  }
1510
+ saveTransactionByUuid(transactionUuid) {
1511
+ return __awaiter(this, void 0, void 0, function* () {
1512
+ return new Promise((resolve, reject) => {
1513
+ this._connector.saveTransaction(transactionUuid)
1514
+ .then((response) => __awaiter(this, void 0, void 0, function* () {
1515
+ if (response.isSuccess) {
1516
+ this.transactionLoaded.emit(response);
1517
+ resolve(true);
1518
+ }
1519
+ else {
1520
+ reject(false);
1521
+ }
1522
+ }))
1523
+ .catch((reason) => {
1524
+ if (reason) {
1525
+ this._prompt.showError(reason.getFullErrorString());
1526
+ }
1527
+ reject(false);
1528
+ });
1529
+ });
1530
+ });
1531
+ }
1462
1532
  addRelationToTransaction(relationId) {
1463
1533
  return __awaiter(this, void 0, void 0, function* () {
1464
1534
  const success = yield this._connector.addRelationToTransaction(this._currentTransaction.uuid, relationId);
@@ -1538,7 +1608,17 @@ class TransactionService {
1538
1608
  }
1539
1609
  retrieveLineImage(line) {
1540
1610
  return __awaiter(this, void 0, void 0, function* () {
1541
- const goodId = yield this._connector.getGoodIdFromArticleNr(line.articleNumber);
1611
+ return yield this.getArticleImageByArticleNumber(line.articleNumber);
1612
+ });
1613
+ }
1614
+ getArticleImageByArticleNumber(articleNumber) {
1615
+ return __awaiter(this, void 0, void 0, function* () {
1616
+ const goodId = yield this._connector.getGoodIdFromArticleNr(articleNumber);
1617
+ return this.getArticleImageByGoodId(goodId);
1618
+ });
1619
+ }
1620
+ getArticleImageByGoodId(goodId) {
1621
+ return __awaiter(this, void 0, void 0, function* () {
1542
1622
  if (!isNaN(goodId)) {
1543
1623
  return this._connector.getSingleImage(goodId, 1, true, true);
1544
1624
  }
@@ -1562,13 +1642,29 @@ class TransactionService {
1562
1642
  });
1563
1643
  });
1564
1644
  }
1565
- addTransactionLine(lineType, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr) {
1645
+ addArticleToTransaction(transactionUuid, articleNo, amount = 1, warehouseNo = 1, commissionCode = "2", isReturn = false, aboveLineNr = 0, belowLineNr = 0) {
1646
+ return __awaiter(this, void 0, void 0, function* () {
1647
+ return new Promise((resolve, reject) => {
1648
+ this._connector.addTransactionLine(transactionUuid, TransactionLineType.ArticleLine, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr)
1649
+ .then((response) => __awaiter(this, void 0, void 0, function* () {
1650
+ resolve(response);
1651
+ }), (error) => {
1652
+ this._prompt.showError(error);
1653
+ reject(error);
1654
+ })
1655
+ .catch((reason) => {
1656
+ this._prompt.showError(reason.getFullErrorString());
1657
+ resolve(null);
1658
+ });
1659
+ });
1660
+ });
1661
+ }
1662
+ addTransactionLine(lineType, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr, remember = true) {
1566
1663
  return __awaiter(this, void 0, void 0, function* () {
1567
1664
  return new Promise((resolve, reject) => {
1568
1665
  this._connector.addTransactionLine(this.currentTransaction.uuid, lineType, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr)
1569
1666
  .then((response) => __awaiter(this, void 0, void 0, function* () {
1570
- this._rememberCurrentTransaction(response);
1571
- this._rememberCurrentTransactionLineStatus(response);
1667
+ this._rememberResponse(remember, response);
1572
1668
  resolve(response);
1573
1669
  }), (error) => {
1574
1670
  reject(error);
@@ -1579,13 +1675,12 @@ class TransactionService {
1579
1675
  });
1580
1676
  });
1581
1677
  }
1582
- addTextLineToTransaction(showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr) {
1678
+ addTextLineToTransaction(showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr, remember = true) {
1583
1679
  return __awaiter(this, void 0, void 0, function* () {
1584
1680
  return new Promise((resolve, reject) => {
1585
1681
  this._connector.addTextLineToTransaction(this.currentTransaction.uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr)
1586
1682
  .then((response) => __awaiter(this, void 0, void 0, function* () {
1587
- this._rememberCurrentTransaction(response);
1588
- this._rememberCurrentTransactionLineStatus(response);
1683
+ this._rememberResponse(remember, response);
1589
1684
  resolve(response);
1590
1685
  }), (error) => {
1591
1686
  reject(error);
@@ -1596,12 +1691,11 @@ class TransactionService {
1596
1691
  });
1597
1692
  });
1598
1693
  }
1599
- changeLineSequence(lineUuid, aboveLineNr, belowLineNr) {
1694
+ changeLineSequence(lineUuid, aboveLineNr, belowLineNr, remember = true) {
1600
1695
  return new Promise((resolve, reject) => {
1601
1696
  this._connector.changeLineSequence(this.currentTransaction.uuid, lineUuid, aboveLineNr, belowLineNr)
1602
1697
  .then((response) => __awaiter(this, void 0, void 0, function* () {
1603
- this._rememberCurrentTransaction(response);
1604
- this._rememberCurrentTransactionLineStatus(response);
1698
+ this._rememberResponse(remember, response);
1605
1699
  resolve(response);
1606
1700
  }), (error) => {
1607
1701
  reject(error);
@@ -1611,12 +1705,14 @@ class TransactionService {
1611
1705
  });
1612
1706
  });
1613
1707
  }
1614
- cancelAddTransactionLine(lineUuid) {
1708
+ cancelAddTransactionLine(lineUuid, remember = true) {
1615
1709
  return __awaiter(this, void 0, void 0, function* () {
1616
1710
  return new Promise((resolve, reject) => {
1617
1711
  this._connector.cancelAddTransactionLine(lineUuid)
1618
1712
  .then((response) => __awaiter(this, void 0, void 0, function* () {
1619
- this._rememberCurrentTransaction(response);
1713
+ if (remember) {
1714
+ this._rememberCurrentTransaction(response);
1715
+ }
1620
1716
  if (response.isSuccess) {
1621
1717
  resolve(response);
1622
1718
  }
@@ -1630,13 +1726,12 @@ class TransactionService {
1630
1726
  });
1631
1727
  });
1632
1728
  }
1633
- deleteTransactionLine(transactionUuid, TransactionLineUuid) {
1729
+ deleteTransactionLine(transactionUuid, TransactionLineUuid, remember = true) {
1634
1730
  return __awaiter(this, void 0, void 0, function* () {
1635
1731
  return new Promise((resolve, reject) => {
1636
1732
  this._connector.deleteTransactionLine(transactionUuid, TransactionLineUuid)
1637
1733
  .then((response) => __awaiter(this, void 0, void 0, function* () {
1638
- this._rememberCurrentTransaction(response);
1639
- this._rememberCurrentTransactionLineStatus(response);
1734
+ this._rememberResponse(remember, response);
1640
1735
  if (response.isSuccess) {
1641
1736
  resolve(response);
1642
1737
  }
@@ -1650,14 +1745,13 @@ class TransactionService {
1650
1745
  });
1651
1746
  });
1652
1747
  }
1653
- changeTransactionLineQuantity(lineUuid, newQuantity) {
1748
+ changeTransactionLineQuantity(lineUuid, newQuantity, remember = true) {
1654
1749
  return __awaiter(this, void 0, void 0, function* () {
1655
1750
  return new Promise((resolve) => {
1656
1751
  this._connector.changeTransactionLineQuantity(this.currentTransaction.uuid, lineUuid, newQuantity)
1657
1752
  .then((response) => __awaiter(this, void 0, void 0, function* () {
1658
1753
  if (response.isSuccess) {
1659
- this._rememberCurrentTransaction(response);
1660
- this._rememberCurrentTransactionLineStatus(response);
1754
+ this._rememberResponse(remember, response);
1661
1755
  }
1662
1756
  resolve(response);
1663
1757
  })).catch((reason) => {
@@ -1678,6 +1772,15 @@ class TransactionService {
1678
1772
  });
1679
1773
  });
1680
1774
  }
1775
+ getCustomerFulObjectByRelationId(relationId) {
1776
+ return __awaiter(this, void 0, void 0, function* () {
1777
+ const relationNr = yield this._connector.getRelationNumber(relationId);
1778
+ if (relationNr) {
1779
+ return yield this._connector.getCustomerFullObject(Number(relationNr));
1780
+ }
1781
+ return NULL_CUSTOMER_FULL_OBJECT;
1782
+ });
1783
+ }
1681
1784
  // public async setRelationByUser(username: string, password: string): Promise<boolean> {
1682
1785
  // const response: boolean = await this._connector.setRelationByUser(this.currentTransaction.uuid, username, password);
1683
1786
  // return response;
@@ -1688,13 +1791,15 @@ class TransactionService {
1688
1791
  }
1689
1792
  }
1690
1793
  _rememberCurrentTransaction(value) {
1691
- this._currentTransaction = value.transactionInfo;
1692
- this._initializeTransaction();
1693
- this.currentLines = value.transactionLines;
1694
- this.currentTotals = value.transactionTotal;
1695
- this.currentLineOperationStatuses = value.lineOperationStatuses;
1696
- this._updateRelation();
1697
- this.transactionUpdated.emit();
1794
+ return __awaiter(this, void 0, void 0, function* () {
1795
+ this._currentTransaction = value.transactionInfo;
1796
+ this._initializeTransaction();
1797
+ this.currentLines = value.transactionLines;
1798
+ this.currentTotals = value.transactionTotal;
1799
+ this.currentLineOperationStatuses = value.lineOperationStatuses;
1800
+ yield this._updateRelation();
1801
+ this.transactionUpdated.emit();
1802
+ });
1698
1803
  }
1699
1804
  _rememberCurrentTransactionLineStatus(value) {
1700
1805
  // this._currentLineOperationStatus.uuid = value.lineUuid;
@@ -1705,10 +1810,7 @@ class TransactionService {
1705
1810
  return __awaiter(this, void 0, void 0, function* () {
1706
1811
  if (this.currentTransaction && this.currentTransaction.relation && this.currentTransaction.relation.relationId) {
1707
1812
  if (!this._currentRelation || this._currentRelation.relationId !== this.currentTransaction.relation.relationId) {
1708
- const relationNr = yield this._connector.getRelationNumber(this.currentTransaction.relation.relationId);
1709
- if (relationNr) {
1710
- this._currentRelation = yield this._connector.getCustomerFullObject(Number(relationNr));
1711
- }
1813
+ this._currentRelation = yield this.getCustomerFulObjectByRelationId(this.currentTransaction.relation.relationId);
1712
1814
  }
1713
1815
  }
1714
1816
  });
@@ -1730,12 +1832,19 @@ class TransactionService {
1730
1832
  transactionDeliveryOptionsRequest.invoiceAddress = this._currentTransaction.invoiceAddress.nawNr;
1731
1833
  return transactionDeliveryOptionsRequest;
1732
1834
  }
1835
+ _rememberResponse(remember, response) {
1836
+ if (remember) {
1837
+ this._rememberCurrentTransaction(response);
1838
+ this._rememberCurrentTransactionLineStatus(response);
1839
+ }
1840
+ }
1733
1841
  }
1734
1842
  TransactionService.decorators = [
1735
1843
  { type: Injectable }
1736
1844
  ];
1737
1845
  TransactionService.ctorParameters = () => [
1738
- { type: IOneConnectorAdapterService }
1846
+ { type: IOneConnectorAdapterService },
1847
+ { type: PromptService }
1739
1848
  ];
1740
1849
 
1741
1850
  var LanguageCode;
@@ -1828,8 +1937,10 @@ class Dictionary {
1828
1937
  "ADDRESS_CHANGE": "Adres wijzigen",
1829
1938
  "ALWAYS_SHOW_LOGISTICS_POPUP": "Controleer magazijn en commissiecode",
1830
1939
  "ARTICLE": "Artikel",
1940
+ "ARTICLE_DESCRIPTION": "Artikelomschrijving",
1831
1941
  "ARTICLE_IN_OUT_COLLECTION": "Status van artikel is '|~'. Weet u zeker dat u door wilt gaan?",
1832
1942
  "ARTICLE_NR": "Artikelnummer",
1943
+ "ARTICLE_UNKNOWN": "Onbekend artikel",
1833
1944
  "ASSEMBLY_COSTS": "Montagekosten",
1834
1945
  "ASSEMBLY_DATE": "Montagedatum",
1835
1946
  "AMOUNT": "Aantal",
@@ -1868,12 +1979,15 @@ class Dictionary {
1868
1979
  "DELIVERY_OPTARTICLE_NRIONS": "Bezorgopties",
1869
1980
  "DELIVERY_TIME_PERIOD": "Levertijd",
1870
1981
  "DESCRIPTION": "Omschrijving",
1982
+ "DETAILS": "Details",
1871
1983
  "DISCOUNT": "Korting",
1872
1984
  "DISCOUNT_AMOUNT": "Kortingsbedrag",
1873
1985
  "DISCOUNT_PERCENTAGE": "Kortings %",
1874
1986
  "DROPSHIPMENT": "Dropshipment",
1875
1987
  "EMAIL_ADDRESS": "E-mailadres",
1876
1988
  "EXISTING_CUSTOMERS": "Bestaande klanten",
1989
+ "EXPECTED_DELIVERY_DATE": "Verwachte bezorgdatum",
1990
+ "EXPECTED_DELIVERY_WEEK": "Verwachte leverweek",
1877
1991
  "FEMALE": "Vrouw",
1878
1992
  "FIRST_NAME": "Voornaam",
1879
1993
  "GOOD_DESCRIPTION": "Artikelomschrijving",
@@ -1900,11 +2014,14 @@ class Dictionary {
1900
2014
  "NUMBER": "Aantal",
1901
2015
  "ON_DATE": "Op datum",
1902
2016
  "OPEN_SHOPPING_CART": "Open winkelwagen",
2017
+ "ORDER_DATE": "Orderdatum",
1903
2018
  "ORDER_GROSS": "Ordertotaal bruto",
1904
2019
  "ORDER_NET": "Ordertotaal netto",
2020
+ "ORDER_NUMBER": "Ordernummer",
1905
2021
  "ORDER_TYPE": "Type bestelling",
1906
2022
  "OVERVIEW": "Overzicht",
1907
2023
  "OWN_REFERENCE": "Eigen referentie",
2024
+ "PAID_DOWN2": "Aanbetaald",
1908
2025
  "PART_DELIVERIES": "Deelleveringen",
1909
2026
  "PASSWORD": "Wachtwoord",
1910
2027
  "PAYMENT": "Betaling",
@@ -1917,6 +2034,8 @@ class Dictionary {
1917
2034
  "PRICE_LIST": "Prijslijst",
1918
2035
  "PRIVACY_PREFERENCES": "Privacyvoorkeuren",
1919
2036
  "PRIVATE_PERSON": "Particulier",
2037
+ "PRODUCT": "Product",
2038
+ "PRODUCT_TYPE": "Productsoort",
1920
2039
  "QUANTITY_CANNOT_BE_ZERO_OR_EMPTY": "Het aantal mag geen 0 zijn.",
1921
2040
  "QUANTITY_CANNOT_BE_LESS_THAN_DELIVERED": "Het aantal moet gelijk zijn aan het geleverde aantal",
1922
2041
  "QUANTITY_CANNOT_BE_MORE_THAN_DELIVERED": "Het aantal moet gelijk zijn aan het geleverde aantal",
@@ -1932,6 +2051,9 @@ class Dictionary {
1932
2051
  "SALUTATION": "Aanhef",
1933
2052
  "SAVE": "Opslaan",
1934
2053
  "SELECT": "Selecteren",
2054
+ "SERVICE_NUMBER": "Servicenummer",
2055
+ "SERVICE_REQUEST_DATE": "Datum aanvraag",
2056
+ "SERVICE_STATE": "Service status",
1935
2057
  "SHOPPING_CART": "Winkelwagen",
1936
2058
  "SHOPPING_CART_CHECKOUT": "Bestellen",
1937
2059
  "SHOPPING_CART_OVERVIEW": "Overzicht van uw bestelling",
@@ -1943,17 +2065,22 @@ class Dictionary {
1943
2065
  "SUBTOTAL": "Subtotaal",
1944
2066
  "SUGGESTIONS": "Suggesties",
1945
2067
  "SURCHARGE_AMOUNT": "Toeslag",
2068
+ "STATE": "Status",
1946
2069
  "STREET": "Straatnaam",
2070
+ "TOTAL_AMOUNT": "Totaalbedrag",
1947
2071
  "TOTAL_GROSS": "Totaal bruto",
1948
2072
  "TOTAL_ASSEMBLY_TIME": "Totale montagetijd",
1949
2073
  "TRANSACTION_DISCOUNT": "Totale transactie korting",
1950
2074
  "TRANSACTION_DISCOUNT_PERC": "% Trans. korting",
1951
2075
  "TRANSACTION_PRICE_DECLARATION": "Order prijsverklaring",
2076
+ "TRANSACTION_SUM_I": "Ordertotaal incl. BTW",
1952
2077
  "TRANSACTION_TOTAL": "Transactie totaal",
1953
2078
  "UNKNOWN": "Onbekend",
1954
2079
  "UNKNOWN_ADDRESS_CHECK_IT": "Onbekend adres",
1955
2080
  "VAT": "Btw",
2081
+ "VAT_AMOUNT": "BTW-bedrag",
1956
2082
  "VALUE": "Waarde",
2083
+ "WHERE_ARE_YOU_LOOKING_FOR": "Waar ben je naar op zoek?",
1957
2084
  "WAREHOUSE": "Magazijn",
1958
2085
  "YOUR_DATA": "Uw gegevens",
1959
2086
  },
@@ -1973,8 +2100,10 @@ class Dictionary {
1973
2100
  "ADDRESS_CHANGE": "Change address",
1974
2101
  "ALWAYS_SHOW_LOGISTICS_POPUP": "Check warehouse and commissioncode",
1975
2102
  "ARTICLE": "Article",
2103
+ "ARTICLE_DESCRIPTION": "Article description",
1976
2104
  "ARTICLE_IN_OUT_COLLECTION": "Status of article is '|~'. Are you sure to proceed?",
1977
2105
  "ARTICLE_NR": "Article number",
2106
+ "ARTICLE_UNKNOWN": "Article unknown",
1978
2107
  "ASSEMBLY_COSTS": "Assembly costs",
1979
2108
  "ASSEMBLY_DATE": "Assembly date",
1980
2109
  "AMOUNT": "Amount",
@@ -2013,12 +2142,15 @@ class Dictionary {
2013
2142
  "DELIVERY_OPTARTICLE_NRIONS": "Delivery options",
2014
2143
  "DELIVERY_TIME_PERIOD": "Delivery time period",
2015
2144
  "DESCRIPTION": "Description",
2145
+ "DETAILS": "Details",
2016
2146
  "DISCOUNT": "Discount",
2017
2147
  "DISCOUNT_AMOUNT": "Discount amount",
2018
2148
  "DISCOUNT_PERCENTAGE": "Discount %",
2019
2149
  "DROPSHIPMENT": "Dropshipment",
2020
2150
  "EMAIL_ADDRESS": "E-mailadres",
2021
2151
  "EXISTING_CUSTOMERS": "Existing customers",
2152
+ "EXPECTED_DELIVERY_DATE": "Expected delivery date",
2153
+ "EXPECTED_DELIVERY_WEEK": "Expected delivery week",
2022
2154
  "FEMALE": "Female",
2023
2155
  "FIRST_NAME": "First name",
2024
2156
  "GOOD_DESCRIPTION": "Article description",
@@ -2045,11 +2177,14 @@ class Dictionary {
2045
2177
  "NUMBER": "Amount",
2046
2178
  "ON_DATE": "On date",
2047
2179
  "OPEN_SHOPPING_CART": "Open shopping cart",
2180
+ "ORDER_DATE": "Order date",
2048
2181
  "ORDER_GROSS": "Total gross amount",
2049
2182
  "ORDER_NET": "Total net amount",
2183
+ "ORDER_NUMBER": "Order number",
2050
2184
  "ORDER_TYPE": "Order type",
2051
2185
  "OVERVIEW": "Overview",
2052
2186
  "OWN_REFERENCE": "Own reference",
2187
+ "PAID_DOWN2": "Prepaid",
2053
2188
  "PART_DELIVERIES": "Partial deliveries",
2054
2189
  "PASSWORD": "Password",
2055
2190
  "PAYMENT": "Payment",
@@ -2062,6 +2197,8 @@ class Dictionary {
2062
2197
  "PRICE_LIST": "Pricelist",
2063
2198
  "PRIVACY_PREFERENCES": "Privacy preferences",
2064
2199
  "PRIVATE_PERSON": "Private",
2200
+ "PRODUCT": "Product",
2201
+ "PRODUCT_TYPE": "Product type",
2065
2202
  "QUANTITY_CANNOT_BE_ZERO_OR_EMPTY": "Quantity cannot be zero or empty",
2066
2203
  "QUANTUM_DISCOUNT": "Quantum discount",
2067
2204
  "REFERENCE_RELATION": "Ref. relation",
@@ -2069,6 +2206,9 @@ class Dictionary {
2069
2206
  "SALUTATION": "Salutation",
2070
2207
  "SAVE": "Save",
2071
2208
  "SELECT": "Select",
2209
+ "SERVICE_NUMBER": "Service number",
2210
+ "SERVICE_REQUEST_DATE": "Service request data",
2211
+ "SERVICE_STATE": "Service state",
2072
2212
  "SHOPPING_CART": "Shopping cart",
2073
2213
  "SHOPPING_CART_CHECKOUT": "Checkout",
2074
2214
  "SHOPPING_CART_OVERVIEW": "Order overview",
@@ -2080,18 +2220,23 @@ class Dictionary {
2080
2220
  "SUBTOTAL": "Subtotal",
2081
2221
  "SUGGESTIONS": "Suggestions",
2082
2222
  "SURCHARGE_AMOUNT": "Surcharge",
2223
+ "STATE": "STATUS",
2083
2224
  "STREET": "Streetname",
2225
+ "TOTAL_AMOUNT": "Total amount",
2084
2226
  "TOTAL_GROSS": "Gross total",
2085
2227
  "TOTAL_ASSEMBLY_TIME": "Total assembly time",
2086
2228
  "TRANSACTION_DISCOUNT": "Total transaction discount",
2087
2229
  "TRANSACTION_DISCOUNT_PERC": "% Trans. discount",
2088
2230
  "TRANSACTION_PRICE_DECLARATION": "Transaction price declaration",
2231
+ "TRANSACTION_SUM_I": "Ordertotal incl VAT",
2089
2232
  "TRANSACTION_TOTAL": "Transaction total",
2090
2233
  "UNKNOWN": "unknown",
2091
2234
  "UNKNOWN_ADDRESS_CHECK_IT": "Unknown address",
2092
2235
  "VALUE": "Value",
2093
2236
  "VAT": "VAT",
2237
+ "VAT_AMOUNT": "VAT amount",
2094
2238
  "WAREHOUSE": "Warehouse",
2239
+ "WHERE_ARE_YOU_LOOKING_FOR": "Where are you looking for?",
2095
2240
  "YOUR_DATA": "Your data",
2096
2241
  },
2097
2242
  };
@@ -2171,6 +2316,9 @@ class TransactionEventService {
2171
2316
  this.addArticleLineAt = new Subject();
2172
2317
  this.addTextLineAt = new Subject();
2173
2318
  this.changeLineSequence = new Subject();
2319
+ this.transactionLineClicked = new Subject();
2320
+ this.rightSidebarClose = new Subject();
2321
+ this.scrollContent = new Subject();
2174
2322
  }
2175
2323
  }
2176
2324
  TransactionEventService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TransactionEventService_Factory() { return new TransactionEventService(); }, token: TransactionEventService, providedIn: "root" });
@@ -3166,7 +3314,7 @@ CheckoutOverviewComponent.decorators = [
3166
3314
  (editModeChange)="handleEditChangeRelation($event)">
3167
3315
  <ng-container edit-mode-content>
3168
3316
  <checkout-overview-relation-edit #relationForm
3169
- *ngIf="currentStep == steps.Relation && editMode"
3317
+ *ngIf="currentStep === steps.Relation && editMode"
3170
3318
  [relation]="relation"
3171
3319
  [transaction]="transaction"
3172
3320
  (validSubmit)="onRelationValid()"
@@ -4147,6 +4295,7 @@ class IconComponent {
4147
4295
  }
4148
4296
  IconComponent.decorators = [
4149
4297
  { type: Component, args: [{
4298
+ // eslint-disable-next-line @angular-eslint/component-selector
4150
4299
  selector: "icon",
4151
4300
  template: "",
4152
4301
  styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.circle:host{border-radius:50%}.flex-center{display:flex}:host{display:inline-flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.no-shrink:host{flex-shrink:0}:host.action ::ng-deep{cursor:pointer}:host ::ng-deep svg{width:100%}:host ::ng-deep svg{height:100%}.massive:host{width:100px;height:100px}.humongous:host{width:70px;height:70px}.very-big:host{width:45px;height:45px}.big:host{width:40px;height:40px}:host{width:30px;height:30px}.small:host{width:25px;height:25px}.nano:host{width:18px;height:18px}.pico:host{width:14px;height:14px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host.dark ::ng-deep [fill]{fill:#22313c}:host.light ::ng-deep [fill]{fill:#fff}:host.red ::ng-deep [fill]{fill:#c1002a}:host.grey ::ng-deep [fill]{fill:#dad9d9}:host.action-color ::ng-deep [fill]{fill:#2b60a7}:host.inactive{opacity:.25}:host.disabled{opacity:.25!important}:host:hover.action ::ng-deep [fill]{fill:#2b60a7}\n"]
@@ -4197,7 +4346,6 @@ class IoneCheckoutModule {
4197
4346
  IoneCheckoutModule.decorators = [
4198
4347
  { type: NgModule, args: [{
4199
4348
  imports: [
4200
- BrowserAnimationsModule,
4201
4349
  IconModule,
4202
4350
  InputTextModule,
4203
4351
  InputCheckboxModule,
@@ -4217,6 +4365,7 @@ IoneCheckoutModule.decorators = [
4217
4365
  CoSidebarModule,
4218
4366
  CoGridModule,
4219
4367
  CoreModule,
4368
+ CommonModule,
4220
4369
  ],
4221
4370
  declarations: [
4222
4371
  CheckoutComponent,
@@ -5311,7 +5460,7 @@ ShoppingCartLineComponent.decorators = [
5311
5460
  [textContent]="line.text">
5312
5461
  </div>
5313
5462
  `,
5314
- styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.cart-line-r .cart-line-description .cart-line-description-artnr{font-size:10px}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}:host{padding-bottom:20px}:host{padding-top:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-r .cart-line-image,.cart-line-r .cart-line-right .cart-line-stock,.cart-line-r .cart-line-right .cart-line-totals{margin-top:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-r .cart-line-image,.cart-line-r .cart-line-right .cart-line-stock,.cart-line-r .cart-line-right .cart-line-totals{margin-bottom:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-t,.cart-line-r .cart-line-right .cart-line-totals{margin-left:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-t{margin-right:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:flex;flex-wrap:wrap;border-bottom:1px solid #DBE3E8;width:100%}:host.overlayed.is-text{display:none!important}:host.overlayed.is-selected{background-color:#add8e6}:host.overview.is-text{display:none!important}:host.overview.is-selected{background-color:#add8e6}.cart-line-r{display:flex;justify-content:stretch;flex-direction:row}@media (max-width: 800px){.cart-line-r{flex-direction:column}}.cart-line-r co-button{border:0;padding:0}.cart-line-r .cart-line-image{display:flex;flex:1 0 auto!important;flex-direction:column;align-items:center;justify-content:center}.cart-line-r .cart-line-image image-display{width:6em;height:6em}.cart-line-r .cart-line-description{display:flex;flex-direction:column;width:100%}.cart-line-r .cart-line-description .cart-line-description-main{font-weight:bold}.cart-line-r .cart-line-right{justify-content:flex-end}.cart-line-r .cart-line-right .cart-line-stock{width:10em}.cart-line-r .cart-line-right .cart-line-amount{width:10em}.cart-line-r .cart-line-right .cart-line-totals{display:flex;justify-content:flex-end;min-width:100px;font-weight:bold}.cart-line-r .cart-line-right .cart-line-totals span{text-align:right}.cart-line-t.article-text{padding-left:10em}\n"]
5463
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.cart-line-r .cart-line-description .cart-line-description-artnr{font-size:10px}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}:host{padding-bottom:20px}:host{padding-top:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-r .cart-line-image,.cart-line-r .cart-line-right .cart-line-stock,.cart-line-r .cart-line-right .cart-line-totals{margin-top:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-r .cart-line-image,.cart-line-r .cart-line-right .cart-line-stock,.cart-line-r .cart-line-right .cart-line-totals{margin-bottom:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-t,.cart-line-r .cart-line-right .cart-line-totals{margin-left:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-t{margin-right:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:flex;flex-wrap:wrap;border-bottom:1px solid #DBE3E8;width:100%}:host.overlayed.is-text{display:none!important}:host.overlayed.is-selected{background-color:#add8e6}:host.overview.is-text{display:none!important}:host.overview.is-selected{background-color:#add8e6}.horizontal{display:flex;flex-direction:row}.cart-line-r{display:flex;justify-content:stretch;flex-direction:row}@media (max-width: 800px){.cart-line-r{flex-direction:column}}.cart-line-r co-button{border:0;padding:0}.cart-line-r .cart-line-image{display:flex;flex:1 0 auto!important;flex-direction:column;align-items:center;justify-content:center}.cart-line-r .cart-line-image image-display{width:6em;height:6em}.cart-line-r .cart-line-description{display:flex;flex-direction:column;width:100%}.cart-line-r .cart-line-description .cart-line-description-main{font-weight:bold}.cart-line-r .cart-line-right{justify-content:flex-end}.cart-line-r .cart-line-right .cart-line-stock{width:10em}.cart-line-r .cart-line-right .cart-line-amount{width:10em}.cart-line-r .cart-line-right .cart-line-totals{display:flex;justify-content:flex-end;min-width:100px;font-weight:bold}.cart-line-r .cart-line-right .cart-line-totals span{text-align:right}.cart-line-t.article-text{padding-left:10em}\n"]
5315
5464
  },] }
5316
5465
  ];
5317
5466
  ShoppingCartLineComponent.ctorParameters = () => [
@@ -5385,6 +5534,7 @@ class CharacteristicAnswerComponent {
5385
5534
  }
5386
5535
  CharacteristicAnswerComponent.decorators = [
5387
5536
  { type: Component, args: [{
5537
+ // eslint-disable-next-line @angular-eslint/component-selector
5388
5538
  selector: "characteristic-answer",
5389
5539
  template: `
5390
5540
  <co-dialog
@@ -5461,7 +5611,6 @@ IoneShoppingCartModule.decorators = [
5461
5611
  CharacteristicAnswerComponent,
5462
5612
  ],
5463
5613
  imports: [
5464
- BrowserAnimationsModule,
5465
5614
  CommonModule,
5466
5615
  IconModule,
5467
5616
  InputTextModule,
@@ -5491,16 +5640,2442 @@ IoneShoppingCartModule.decorators = [
5491
5640
  entryComponents: [
5492
5641
  IoneShoppingCartComponent
5493
5642
  ],
5494
- exports: [IoneShoppingCartComponent],
5643
+ exports: [IoneShoppingCartComponent, StockStatusIndicatorComponent, CharacteristicAnswerComponent],
5495
5644
  bootstrap: [IoneShoppingCartComponent]
5496
5645
  },] }
5497
5646
  ];
5498
5647
 
5648
+ class IoneServiceOrderComponent {
5649
+ constructor(_changeDetector, _optionsService, _connector, _dictionary, _service) {
5650
+ this._changeDetector = _changeDetector;
5651
+ this._optionsService = _optionsService;
5652
+ this._connector = _connector;
5653
+ this._dictionary = _dictionary;
5654
+ this._service = _service;
5655
+ this.upAndLoaded = false;
5656
+ this._subscriptions = [];
5657
+ this._remoteOptions = true;
5658
+ this._publicOptions = true;
5659
+ this._orderId = 0;
5660
+ this._subscriptions.push(this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)));
5661
+ }
5662
+ set orderId(value) {
5663
+ this._orderId = value;
5664
+ this._getTransactionById(this._orderId);
5665
+ }
5666
+ ;
5667
+ set options(value) {
5668
+ if (value) {
5669
+ let options;
5670
+ if (typeof value === "string") {
5671
+ options = JSON.parse(value);
5672
+ }
5673
+ else {
5674
+ options = value;
5675
+ }
5676
+ this._publicOptions = true;
5677
+ this._optionsService.initialize(options).then();
5678
+ }
5679
+ }
5680
+ ngOnInit() {
5681
+ if (!this._publicOptions) {
5682
+ this._optionsService.initializeDevelopmentOptions(this._remoteOptions);
5683
+ }
5684
+ }
5685
+ ngOnDestroy() {
5686
+ this._subscriptions.forEach(subscription => subscription.unsubscribe());
5687
+ }
5688
+ _handleSettingsLoaded(loaded) {
5689
+ return __awaiter(this, void 0, void 0, function* () {
5690
+ if (loaded) {
5691
+ yield this._initConnection().then();
5692
+ this.upAndLoaded = true;
5693
+ }
5694
+ });
5695
+ }
5696
+ _initConnection() {
5697
+ return __awaiter(this, void 0, void 0, function* () {
5698
+ yield this._connector.connect(this._optionsService.options);
5699
+ if (this._optionsService.options.url) {
5700
+ this._dictionary.rootUrl = this._optionsService.options.url.replace("/ajaxservice", "");
5701
+ }
5702
+ yield this._dictionary.setDictionary(this._optionsService.options.languageCode);
5703
+ setTimeout(() => {
5704
+ this._changeDetector.detectChanges();
5705
+ });
5706
+ });
5707
+ }
5708
+ _getTransactionById(orderId) {
5709
+ return __awaiter(this, void 0, void 0, function* () {
5710
+ yield this._service.getTransactionById(orderId);
5711
+ });
5712
+ }
5713
+ }
5714
+ IoneServiceOrderComponent.decorators = [
5715
+ { type: Component, args: [{
5716
+ // eslint-disable-next-line @angular-eslint/component-selector
5717
+ selector: "ione-service-order",
5718
+ template: `
5719
+ <div>
5720
+ <service-order></service-order>
5721
+ </div>
5722
+ <transaction-sidebar-right></transaction-sidebar-right>
5723
+ `
5724
+ },] }
5725
+ ];
5726
+ IoneServiceOrderComponent.ctorParameters = () => [
5727
+ { type: ChangeDetectorRef },
5728
+ { type: OptionsService },
5729
+ { type: IOneConnectorAdapterService },
5730
+ { type: DictionaryService },
5731
+ { type: TransactionService }
5732
+ ];
5733
+ IoneServiceOrderComponent.propDecorators = {
5734
+ orderId: [{ type: Input }],
5735
+ options: [{ type: Input }]
5736
+ };
5737
+
5738
+ class TransactionBaseComponent {
5739
+ constructor(service) {
5740
+ this.service = service;
5741
+ this.relation = NULL_RELATION_LIST_OBJECT;
5742
+ this.customer = NULL_CUSTOMER_FULL_OBJECT;
5743
+ this._isService = false;
5744
+ this.basedOnProduct = false;
5745
+ this._lineOperationStatuses = [];
5746
+ this._transactionLines = [];
5747
+ }
5748
+ set transaction(value) {
5749
+ this._transaction = value;
5750
+ if (this._transaction) {
5751
+ if (this._transaction.transactionInfo) {
5752
+ this._transactionInfo = this._transaction.transactionInfo;
5753
+ this._isService = this._transaction.transactionInfo.transactionKind === TransactionKind.ServiceOrder;
5754
+ }
5755
+ if (this._transaction.transactionLines) {
5756
+ this.transactionLines = this._transaction.transactionLines;
5757
+ }
5758
+ if (this._transaction.transactionTotal) {
5759
+ this._transactionTotal = this._transaction.transactionTotal;
5760
+ }
5761
+ if (this._transaction.lineOperationStatuses) {
5762
+ this.lineOperationStatuses = this._transaction.lineOperationStatuses;
5763
+ }
5764
+ }
5765
+ }
5766
+ get transaction() {
5767
+ return this._transaction;
5768
+ }
5769
+ set transactionInfo(value) {
5770
+ this._transactionInfo = value;
5771
+ }
5772
+ get transactionInfo() {
5773
+ return this._transactionInfo;
5774
+ }
5775
+ set transactionLines(value) {
5776
+ this._transactionLines = value;
5777
+ }
5778
+ get transactionLines() {
5779
+ return this._transactionLines;
5780
+ }
5781
+ set transactionTotal(value) {
5782
+ this._transactionTotal = value;
5783
+ }
5784
+ get transactionTotal() {
5785
+ return this._transactionTotal;
5786
+ }
5787
+ get lineOperationStatuses() {
5788
+ return this._lineOperationStatuses;
5789
+ }
5790
+ set lineOperationStatuses(value) {
5791
+ this._lineOperationStatuses = value;
5792
+ }
5793
+ get isService() {
5794
+ return this._isService;
5795
+ }
5796
+ set relationId(value) {
5797
+ if (value === undefined) {
5798
+ return;
5799
+ }
5800
+ this._relationId = value;
5801
+ this._retrieveRelation();
5802
+ }
5803
+ get relationId() {
5804
+ return this._relationId;
5805
+ }
5806
+ set customerId(value) {
5807
+ if (value === undefined) {
5808
+ return;
5809
+ }
5810
+ this._customerId = value;
5811
+ this._retrieveCustomer();
5812
+ }
5813
+ get customerId() {
5814
+ return this._customerId;
5815
+ }
5816
+ set product(value) {
5817
+ this._product = value;
5818
+ this.productSet();
5819
+ this._setBasedOnProduct();
5820
+ }
5821
+ get product() {
5822
+ return this._product;
5823
+ }
5824
+ get isNew() {
5825
+ return isNill$1(this.transaction) || isNill$1(this.transactionInfo.transactionNr);
5826
+ }
5827
+ transactionSet() {
5828
+ // overridden by descendents
5829
+ }
5830
+ productSet() {
5831
+ // overridden by descendents
5832
+ }
5833
+ _retrieveCustomer() {
5834
+ return __awaiter(this, void 0, void 0, function* () {
5835
+ this.customer = yield this.service.getCustomerFulObjectByRelationId(this._customerId);
5836
+ });
5837
+ }
5838
+ _retrieveRelation() {
5839
+ return __awaiter(this, void 0, void 0, function* () {
5840
+ const relationRequest = new RelationRequest();
5841
+ let relations = [];
5842
+ relationRequest.relationId = this.relationId;
5843
+ relations = yield this.service.getRelationListObjects(relationRequest);
5844
+ if (relations && relations.length) {
5845
+ this.relation = relations[0];
5846
+ }
5847
+ });
5848
+ }
5849
+ _setBasedOnProduct() {
5850
+ if (this.product) {
5851
+ this.basedOnProduct = true;
5852
+ }
5853
+ else { //check transaction (service) for product
5854
+ // TODO: assProduct is not a property of transaction right now.
5855
+ // this.basedOnProduct = notNill(this._transaction.assProduct);
5856
+ // if (this.basedOnProduct) {
5857
+ // this._product = this.transaction.assProduct;
5858
+ // }
5859
+ }
5860
+ }
5861
+ }
5862
+ TransactionBaseComponent.decorators = [
5863
+ { type: Directive }
5864
+ ];
5865
+ TransactionBaseComponent.ctorParameters = () => [
5866
+ { type: TransactionService }
5867
+ ];
5868
+ TransactionBaseComponent.propDecorators = {
5869
+ transaction: [{ type: Input }],
5870
+ relationId: [{ type: Input }],
5871
+ customerId: [{ type: Input }],
5872
+ product: [{ type: Input }],
5873
+ relation: [{ type: Input }],
5874
+ customer: [{ type: Input }]
5875
+ };
5876
+
5877
+ // import {
5878
+ // ToolbarService,
5879
+ // LinkService,
5880
+ // ImageService,
5881
+ // HtmlEditorService,
5882
+ // RichTextEditor
5883
+ // } from '@syncfusion/ej2-angular-richtexteditor';
5884
+ class TransactionArticleTextComponent extends TransactionBaseComponent {
5885
+ constructor(service) {
5886
+ super(service);
5887
+ this.service = service;
5888
+ this.visible = false;
5889
+ this.floatButtonSelected = false;
5890
+ this.overviewSelected = false;
5891
+ this.editArtikelText = false;
5892
+ this.collection = [
5893
+ { id: 1, name: "Standaardtekst 1" },
5894
+ { id: 2, name: "Standaardtekst 1" },
5895
+ { id: 3, name: "Standaardtekst 1" },
5896
+ { id: 4, name: "Standaardtekst 1" },
5897
+ { id: 5, name: "Standaardtekst 1" }
5898
+ ];
5899
+ this.articleTexts = [
5900
+ { title: "title 1", description: "Omschrijving 1" },
5901
+ { title: "title 2", description: "Omschrijving 2" },
5902
+ { title: "title 3", description: "Omschrijving 3" },
5903
+ { title: "title 4", description: "Omschrijving 4" },
5904
+ { title: "title 5", description: "Omschrijving 5" },
5905
+ ];
5906
+ this.fields = { text: "name", value: "id" };
5907
+ }
5908
+ onOkClick() {
5909
+ this.hide();
5910
+ }
5911
+ onPopupClose() {
5912
+ this.hide();
5913
+ this.hideOverview();
5914
+ this.hideEditArtikelText();
5915
+ }
5916
+ hide() {
5917
+ // TODO: throw hide event
5918
+ this.visible = false;
5919
+ }
5920
+ onOverview() {
5921
+ this.overviewSelected = true;
5922
+ }
5923
+ onOkOverviewClick() {
5924
+ this.hideOverview();
5925
+ }
5926
+ hideOverview() {
5927
+ this.overviewSelected = false;
5928
+ }
5929
+ onDetailLinkClick(bo) {
5930
+ this.editArtikelText = true;
5931
+ }
5932
+ hideEditArtikelText() {
5933
+ this.editArtikelText = false;
5934
+ }
5935
+ onOkEditArtikelTextClick() {
5936
+ this.editArtikelText = false;
5937
+ }
5938
+ }
5939
+ TransactionArticleTextComponent.decorators = [
5940
+ { type: Component, args: [{
5941
+ // eslint-disable-next-line @angular-eslint/component-selector
5942
+ selector: "transaction-article-text",
5943
+ template: `
5944
+ <co-dialog [visible]="visible" (close)="onPopupClose()">
5945
+ <ng-container header>{{ subHeader }}</ng-container>
5946
+ <ng-container content>
5947
+ <div class="tags-join-content" fxLayout fxLayoutGap="10px">
5948
+ <div class="column-separator">
5949
+ <co-input-text placeholder="Titel"></co-input-text>
5950
+ <!-- <ejs-richtexteditor-->
5951
+ <!-- #rte-->
5952
+ <!-- id="Rte"-->
5953
+ <!-- >-->
5954
+ <!-- </ejs-richtexteditor>-->
5955
+ </div>
5956
+ <div style="margin-left:5px;">
5957
+ <div style="margin-top:16px;">
5958
+ <ejs-dropdownlist
5959
+ [dataSource]="collection"
5960
+ [fields]="fields"
5961
+ placeholder="Standaardteksten"
5962
+ ></ejs-dropdownlist>
5963
+
5964
+ </div>
5965
+ <div style="margin-top:20px;">
5966
+ <co-input-checkbox
5967
+ label="Artikelgebonden tekst"
5968
+ name="articleBoundText">
5969
+ </co-input-checkbox>
5970
+ </div>
5971
+ <div style="margin-top:20px;">
5972
+ <label>Bestemd voor documenten</label>
5973
+ <ejs-chiplist id="chip-default">
5974
+ <e-chips>
5975
+ <e-chip text="Apple" cssClass="e-primary"></e-chip>
5976
+ <e-chip text="Microsoft" cssClass="e-info"></e-chip>
5977
+ <e-chip text="Google" cssClass="e-success"></e-chip>
5978
+ <e-chip text="Tesla" cssClass="e-warning"></e-chip>
5979
+ <e-chip text="Intel" cssClass="e-danger"></e-chip>
5980
+ </e-chips>
5981
+ </ejs-chiplist>
5982
+ </div>
5983
+ </div>
5984
+ </div>
5985
+ </ng-container>
5986
+ <ng-container footer>
5987
+ <div class="footer" fxLayout fxLayoutAlign="center center" fxLayoutGap="10px" style="margin-top:30px;">
5988
+ <co-button label="OK" (click)="onOkClick()"></co-button>
5989
+ <co-button label="CANCEL" (click)="hide()"></co-button>
5990
+ <co-button label="OVERVIEW" (click)="onOverview()"></co-button>
5991
+ <!-- <co-button label="TEST" (click)="onTest()"></co-button>-->
5992
+ </div>
5993
+ </ng-container>
5994
+ </co-dialog>
5995
+
5996
+ <co-dialog [visible]="overviewSelected" (close)="hideOverview()">
5997
+ <ng-container header>Artikelgebonden teksten {{ subHeader }}</ng-container>
5998
+ <ng-container content>
5999
+ <div class="tags-join-content" fxLayout fxLayoutGap="10px">
6000
+ <div class="column-separator" style="width:75%">
6001
+ <!-- <grid [data]="articleTexts" detailLink (detailLinkClick)="onDetailLinkClick($event)">-->
6002
+ <!-- <grid-column key="title" header="TITLE" width="100px;"></grid-column>-->
6003
+ <!-- <grid-column key="description" header="DESCRIPTION" width="200px"></grid-column>-->
6004
+ <!-- </grid>-->
6005
+ </div>
6006
+ <div style="margin-left:5px;">
6007
+ <div style="margin-top:20px;">
6008
+
6009
+ <co-input-checkbox
6010
+ label="Artikelgebonden tekst"
6011
+ name="articleBoundText"
6012
+ value="true"
6013
+ ></co-input-checkbox>
6014
+ </div>
6015
+ <div style="margin-top:20px;">
6016
+ <label>Bestemd voor documenten</label>
6017
+ <ejs-chiplist id="chip-default">
6018
+ <e-chips>
6019
+ <e-chip text="Apple" cssClass="e-primary"></e-chip>
6020
+ <e-chip text="Microsoft" cssClass="e-info"></e-chip>
6021
+ <e-chip text="Google" cssClass="e-success"></e-chip>
6022
+ <e-chip text="Tesla" cssClass="e-warning"></e-chip>
6023
+ <e-chip text="Intel" cssClass="e-danger"></e-chip>
6024
+ </e-chips>
6025
+ </ejs-chiplist>
6026
+ </div>
6027
+ </div>
6028
+ </div>
6029
+ </ng-container>
6030
+ <ng-container footer>
6031
+ <div class="footer" fxLayout fxPosition="row" fxLayoutAlign="center center" fxLayoutGap="10px" style="margin-top:30px;">
6032
+ <co-button label="OK" (click)="onOkOverviewClick()"></co-button>
6033
+ <co-button label="CANCEL" (click)="hideOverview()"></co-button>
6034
+ </div>
6035
+ </ng-container>
6036
+ </co-dialog>
6037
+
6038
+ <co-dialog [visible]="editArtikelText" (close)="hideEditArtikelText()">
6039
+ <ng-container header>{{ subHeader }}</ng-container>
6040
+ <ng-container content>
6041
+ <div class="tags-join-content" fxLayout fxLayoutGap="10px">
6042
+ <div class="column-separator">
6043
+ <co-input-text placeholder="Titel"></co-input-text>
6044
+ <!-- <co-text-editor-->
6045
+ <!-- label="Artikeltekst"-->
6046
+ <!-- ></co-text-editor>-->
6047
+ </div>
6048
+ </div>
6049
+ </ng-container>
6050
+ <ng-container footer>
6051
+ <div class="footer" fxLayout fxLayoutAlign="center center" fxLayoutGap="10px" style="margin-top:30px;">
6052
+ <co-button label="OK" (click)="onOkEditArtikelTextClick()"></co-button>
6053
+ <co-button label="CANCEL" (click)="hideEditArtikelText()"></co-button>
6054
+ </div>
6055
+ </ng-container>
6056
+ </co-dialog>
6057
+ `,
6058
+ styles: [""]
6059
+ },] }
6060
+ ];
6061
+ TransactionArticleTextComponent.ctorParameters = () => [
6062
+ { type: TransactionService }
6063
+ ];
6064
+ TransactionArticleTextComponent.propDecorators = {
6065
+ subHeader: [{ type: Input }]
6066
+ };
6067
+
6068
+ class TransactionManagerComponent extends TransactionBaseComponent {
6069
+ constructor(service, transactionEvents, promptService, _dictionaryService) {
6070
+ super(service);
6071
+ this.service = service;
6072
+ this.transactionEvents = transactionEvents;
6073
+ this.promptService = promptService;
6074
+ this._dictionaryService = _dictionaryService;
6075
+ this.linesChanged = new EventEmitter();
6076
+ this.articleAdded = new EventEmitter();
6077
+ this.columns = [];
6078
+ this._inOutCollection = [];
6079
+ this._showCharacteristic = false;
6080
+ this._subs = [];
6081
+ this._subs.push(this.service.transactionLoaded.subscribe((transactionInfoResponse) => {
6082
+ if (transactionInfoResponse.isSuccess) {
6083
+ this.transaction = transactionInfoResponse;
6084
+ }
6085
+ }));
6086
+ }
6087
+ get amountOfLines() {
6088
+ return NumberUtils.NrOrDefault(this.service.articleAmount, 0);
6089
+ }
6090
+ get showCharacteristicDialog() {
6091
+ return this._showCharacteristic;
6092
+ }
6093
+ set showCharacteristicDialog(value) {
6094
+ this._showCharacteristic = value;
6095
+ }
6096
+ ngOnDestroy() {
6097
+ this._subs.forEach(sub => sub.unsubscribe());
6098
+ }
6099
+ addArticleLine(transactionUuid, sku, amount, lineNr, beforeOrAfter) {
6100
+ return __awaiter(this, void 0, void 0, function* () {
6101
+ const goodId = yield this.service.getGoodIdFromArticleNr(sku);
6102
+ if (goodId) {
6103
+ yield this._loadArticle(goodId);
6104
+ yield this._handleAddArticleLineAt(amount, lineNr, beforeOrAfter);
6105
+ }
6106
+ else {
6107
+ this.promptService.showError(this._dictionaryService.get("ARTICLE_UNKNOWN"));
6108
+ }
6109
+ });
6110
+ }
6111
+ changeLineSequence(fromIndex, toIndex) {
6112
+ return __awaiter(this, void 0, void 0, function* () {
6113
+ let fromLine = this._getTransactionLineInfoByIndex(fromIndex);
6114
+ let toLine = this._getTransactionLineInfoByIndex(toIndex);
6115
+ let aboveLineNr;
6116
+ let belowLineNr;
6117
+ if (fromIndex > toIndex) {
6118
+ aboveLineNr = toLine.lineNr;
6119
+ }
6120
+ else {
6121
+ belowLineNr = toLine.lineNr;
6122
+ }
6123
+ yield this.service.changeLineSequence(fromLine.uuid, aboveLineNr, belowLineNr, false)
6124
+ .then((value) => {
6125
+ this.handleLineOperationStatus(value);
6126
+ }, (error) => this.promptService.showError(error));
6127
+ });
6128
+ }
6129
+ showStockManager(line) {
6130
+ return __awaiter(this, void 0, void 0, function* () {
6131
+ this.warehouse.selectedWarehouseNr = line.warehouseNumber;
6132
+ this.warehouse.amount = line.amount;
6133
+ this.warehouse.commissionCode = line.commissionCode;
6134
+ this.warehouse.message = this.currentOperationStatus.pendingReason;
6135
+ this.warehouse.show(line.articleNumber);
6136
+ });
6137
+ }
6138
+ warehouseOkClick() {
6139
+ return __awaiter(this, void 0, void 0, function* () {
6140
+ if (this.warehouse.commissionCode !== undefined) {
6141
+ this.currentReason.commissionCode = this.warehouse.commissionCode;
6142
+ }
6143
+ if (this.warehouse.amount !== undefined) {
6144
+ this.currentReason.quantity = this.warehouse.amount;
6145
+ }
6146
+ if (this.warehouse.selectedWarehouseNr !== undefined) {
6147
+ this.currentReason.warehouseNr = this.warehouse.selectedWarehouseNr;
6148
+ }
6149
+ if (this.currentReason) {
6150
+ yield this.service.resolvePendingLineReason(this.currentReason, false)
6151
+ .then((value) => {
6152
+ this.handleLineOperationStatus(value);
6153
+ });
6154
+ }
6155
+ });
6156
+ }
6157
+ warehouseCancelClick() {
6158
+ return __awaiter(this, void 0, void 0, function* () {
6159
+ if (this.currentReason) {
6160
+ yield this._cancelArticle(this.currentReason.lineUuid);
6161
+ }
6162
+ });
6163
+ }
6164
+ handleCharacteristicAnswerOkClick(answer) {
6165
+ return __awaiter(this, void 0, void 0, function* () {
6166
+ this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
6167
+ this.currentReason.textualUserInput = answer;
6168
+ yield this.service.resolvePendingLineReason(this.currentReason, false)
6169
+ .then((value) => {
6170
+ this.handleLineOperationStatus(value);
6171
+ });
6172
+ });
6173
+ }
6174
+ _handleAddArticle(amount = 1) {
6175
+ return __awaiter(this, void 0, void 0, function* () {
6176
+ yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode, false, 0, 0, false)
6177
+ .then((value) => {
6178
+ this.handleLineOperationStatus(value);
6179
+ }, (error) => this.promptService.showError(error));
6180
+ });
6181
+ }
6182
+ _handleAddArticleLineAt(amount, lineNr, beforeOrAfter) {
6183
+ return __awaiter(this, void 0, void 0, function* () {
6184
+ yield this.service.addArticleToTransaction(this.transactionInfo.uuid, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode, false, beforeOrAfter === PositionGridRow.Before ? lineNr : undefined, beforeOrAfter === PositionGridRow.After ? lineNr : undefined)
6185
+ .then((value) => {
6186
+ this.lineOperationStatuses = value.lineOperationStatuses;
6187
+ this.handleLineOperationStatus(value);
6188
+ }, (error) => this.promptService.showError(error));
6189
+ });
6190
+ }
6191
+ _getWareHouseNoFromArticle() {
6192
+ if (this.newArticle !== undefined && this.newArticle.stockLocations !== undefined && this.newArticle.stockLocations.length) {
6193
+ return this.newArticle.stockLocations[0].warehouseNr;
6194
+ }
6195
+ return 0;
6196
+ }
6197
+ isLineOperationStatus(lineOperationStatuses) {
6198
+ this.currentOperationStatus = this.service.pendingLineOperationStatus(lineOperationStatuses);
6199
+ if (this.currentOperationStatus !== undefined) {
6200
+ return true;
6201
+ }
6202
+ return false;
6203
+ }
6204
+ _confirmAction() {
6205
+ return __awaiter(this, void 0, void 0, function* () {
6206
+ this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
6207
+ const pendingReasonText = yield this._getPendingReasonText(this.currentOperationStatus.pendingReason);
6208
+ this.currentReason.confirmation = yield this.promptService.showYesNo(pendingReasonText, " ");
6209
+ yield this.service.resolvePendingLineReason(this.currentReason, false)
6210
+ .then((value) => {
6211
+ this.handleLineOperationStatus(value);
6212
+ });
6213
+ });
6214
+ }
6215
+ _showInformation() {
6216
+ return __awaiter(this, void 0, void 0, function* () {
6217
+ this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
6218
+ const pendingReasonText = yield this._getPendingReasonText(this.currentOperationStatus.pendingReason);
6219
+ yield this.promptService.showOkModal(pendingReasonText, " ");
6220
+ yield this.service.resolvePendingLineReason(this.currentReason, false)
6221
+ .then((value) => {
6222
+ this.handleLineOperationStatus(value);
6223
+ });
6224
+ });
6225
+ }
6226
+ _getPendingReasonText(pendingReason) {
6227
+ return __awaiter(this, void 0, void 0, function* () {
6228
+ if (pendingReason === "ARTICLE_IS_DISCONTINUED_DO_YOU_WANT_TO_CONTINUE_PLEASE_CONFIRM") {
6229
+ return this._dictionaryService.get("ARTICLE_IN_OUT_COLLECTION").replace("|~", yield this.getInOutCollectionOfArticle());
6230
+ }
6231
+ return this._dictionaryService.get(pendingReason);
6232
+ });
6233
+ }
6234
+ getInOutCollectionOfArticle() {
6235
+ return __awaiter(this, void 0, void 0, function* () {
6236
+ if (!this._inOutCollection.length) {
6237
+ this._inOutCollection = yield this.service.getInOutCollection("NL");
6238
+ }
6239
+ const domainValue = this._inOutCollection.find(element => element.code === this.newArticle.inOutCollection);
6240
+ if (domainValue) {
6241
+ return domainValue.description;
6242
+ }
6243
+ return "";
6244
+ });
6245
+ }
6246
+ handleLineOperationStatus(lineOperationResponse) {
6247
+ return __awaiter(this, void 0, void 0, function* () {
6248
+ if (this.isLineOperationStatus(lineOperationResponse.lineOperationStatuses)) {
6249
+ this.transaction = lineOperationResponse;
6250
+ this.articleAdded.emit(this.transaction);
6251
+ yield this._handlePendingLine(this.currentOperationStatus.uuid).then();
6252
+ }
6253
+ else {
6254
+ yield this._saveTransaction();
6255
+ }
6256
+ });
6257
+ }
6258
+ _handlePendingLine(lineUuid) {
6259
+ return __awaiter(this, void 0, void 0, function* () {
6260
+ this.currentReason = new ResolvePendingLineReasonRequest(this.currentOperationStatus.uuid, this.currentOperationStatus.pendingReason, this.currentOperationStatus.pendingReasonType);
6261
+ this.currentPendingLine = this.transactionLines.find(l => l.uuid === lineUuid);
6262
+ switch (this.currentOperationStatus.pendingReasonType) {
6263
+ case PendingReasonType.ABORTED:
6264
+ case PendingReasonType.CANCELLED:
6265
+ yield this._cancelArticle(this.currentPendingLine.uuid);
6266
+ break;
6267
+ case PendingReasonType.CONFIRMATION_NEEDED:
6268
+ yield this._confirmAction();
6269
+ break;
6270
+ case PendingReasonType.INVALID_LOGISTICS:
6271
+ yield this.showStockManager(this.currentPendingLine);
6272
+ break;
6273
+ case PendingReasonType.NON_CRITICAL_DISCONTINUATION:
6274
+ yield this._showInformation();
6275
+ break;
6276
+ case PendingReasonType.CHARACTERISTICS_ANSWER_NEEDED:
6277
+ this.CharacteristicsAnswerNeeded();
6278
+ break;
6279
+ case PendingReasonType.NONE:
6280
+ default:
6281
+ this.currentReason = undefined;
6282
+ this.currentPendingLine = undefined;
6283
+ break;
6284
+ }
6285
+ });
6286
+ }
6287
+ _saveTransaction() {
6288
+ return __awaiter(this, void 0, void 0, function* () {
6289
+ if (this.transactionInfo) {
6290
+ const success = yield this.service.saveTransactionByUuid(this.transactionInfo.uuid);
6291
+ if (!success) {
6292
+ this.promptService.showError("Transaction could not be saved!");
6293
+ }
6294
+ }
6295
+ });
6296
+ }
6297
+ _loadArticle(goodId) {
6298
+ return __awaiter(this, void 0, void 0, function* () {
6299
+ this.newArticle = yield this.service.getArticleFullObject(goodId);
6300
+ this.newArticleNr = this.newArticle.articleNr;
6301
+ });
6302
+ }
6303
+ addEmailAddressToTransaction(emailAddress) {
6304
+ this.service.emailAddress = emailAddress;
6305
+ }
6306
+ CharacteristicsAnswerNeeded() {
6307
+ this.characteristicAnswer.question = this.currentOperationStatus.characteristic.question;
6308
+ this.characteristicAnswer.title = this.newArticle.description;
6309
+ this.characteristicAnswer.value = this.currentOperationStatus.characteristic.value;
6310
+ this.characteristicAnswer.characteristics = this.currentOperationStatus.characteristic.transactionLineCharacteristicChoices;
6311
+ setTimeout(() => {
6312
+ this.characteristicAnswer.open();
6313
+ // eslint-disable-next-line no-magic-numbers
6314
+ }, 1000);
6315
+ }
6316
+ _getTransactionLineInfoByIndex(index) {
6317
+ if (index >= 0 && index < this.transactionLines.length) {
6318
+ return this.service.currentLines[index];
6319
+ }
6320
+ }
6321
+ _cancelArticle(uuid) {
6322
+ return __awaiter(this, void 0, void 0, function* () {
6323
+ yield this.service.cancelAddTransactionLine(uuid, false)
6324
+ .then((response) => {
6325
+ this.transaction = response;
6326
+ this.articleAdded.emit(response);
6327
+ });
6328
+ });
6329
+ }
6330
+ }
6331
+ TransactionManagerComponent.decorators = [
6332
+ { type: Component, args: [{
6333
+ // eslint-disable-next-line @angular-eslint/component-selector
6334
+ selector: "transaction-manager",
6335
+ template: `
6336
+ <warehouse #warehouse
6337
+ (okClick)="warehouseOkClick()"
6338
+ (cancelClick)="warehouseCancelClick()"
6339
+ ></warehouse>
6340
+ <characteristic-answer
6341
+ #characteristicAnswer
6342
+ (okClick)="handleCharacteristicAnswerOkClick($event)"
6343
+ ></characteristic-answer>
6344
+ `,
6345
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,.warehouse-line-container{display:flex}.flex-center,.warehouse-line-container{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field,.commission-fields{margin-left:11px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}::ng-deep #warehouseDialog{align-items:center;max-height:100%}::ng-deep #warehouseDialog ::ng-deep co-form{height:100%;width:500px}::ng-deep #warehouseDialog ::ng-deep .form-content{height:calc(100% - 80px);width:100%}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field{height:20px;word-wrap:break-word;white-space:normal}co-button:not(:last-child){margin-right:10px}.commission-fields{justify-content:space-between;margin:10px 0}.warehouse-description-item{width:15rem}.warehouse-nr-item{width:5rem}co-input-number-picker co-button{max-width:20px}\n"]
6346
+ },] }
6347
+ ];
6348
+ TransactionManagerComponent.ctorParameters = () => [
6349
+ { type: TransactionService },
6350
+ { type: TransactionEventService },
6351
+ { type: PromptService },
6352
+ { type: DictionaryService }
6353
+ ];
6354
+ TransactionManagerComponent.propDecorators = {
6355
+ warehouse: [{ type: ViewChild, args: ["warehouse",] }],
6356
+ characteristicAnswer: [{ type: ViewChild, args: ["characteristicAnswer",] }],
6357
+ linesChanged: [{ type: Output }],
6358
+ articleAdded: [{ type: Output }]
6359
+ };
6360
+
6361
+ class ServiceOrderComponent extends TransactionBaseComponent {
6362
+ constructor(service, transactionEvents, iconCacheService, _promptService) {
6363
+ super(service);
6364
+ this.service = service;
6365
+ this.transactionEvents = transactionEvents;
6366
+ this.iconCacheService = iconCacheService;
6367
+ this._promptService = _promptService;
6368
+ this.iconThickLines = CoreComponentsIcon.ThickLines;
6369
+ this.iconThinLines = CoreComponentsIcon.ThinLines;
6370
+ this.iconOrder = CoreComponentsIcon.Order;
6371
+ this.viewModes = ContentViewMode;
6372
+ this.canPlanDelivery = false;
6373
+ this.showTotals = true;
6374
+ this.contextMenuItems = [];
6375
+ this.isRouteOptimizationConfigured = false;
6376
+ this.activeViewMode = ContentViewMode.List;
6377
+ this.floatButtonSelected = false;
6378
+ this.newArticleNr = "";
6379
+ this._subs = [];
6380
+ }
6381
+ get inListView() {
6382
+ return this.activeViewMode === ContentViewMode.List;
6383
+ }
6384
+ get inGridView() {
6385
+ return this.activeViewMode === ContentViewMode.Grid;
6386
+ }
6387
+ ngOnInit() {
6388
+ return __awaiter(this, void 0, void 0, function* () {
6389
+ this._subs.push(this.service.transactionLoaded.subscribe((transactionInfoResponse) => {
6390
+ if (transactionInfoResponse.isSuccess) {
6391
+ this.transaction = transactionInfoResponse;
6392
+ if (this.transaction && this.transaction.transactionInfo) {
6393
+ this.customerId = Number(this.transaction.transactionInfo.relation.relationNr);
6394
+ this.relationId = this.transaction.transactionInfo.relation.relationId;
6395
+ }
6396
+ }
6397
+ }), this.transactionEvents.rightSidebarClose.subscribe(() => {
6398
+ this.moveFloatingButtonToRight();
6399
+ }), this.transactionEvents.transactionLineClicked.subscribe((transactionLine) => {
6400
+ this._selectedTransLine = transactionLine;
6401
+ this.moveFloatingButtonToLeft();
6402
+ }), this.transactionEvents.scrollContent.subscribe((event) => {
6403
+ this.hideOrderTotals(event);
6404
+ }));
6405
+ });
6406
+ }
6407
+ ngAfterViewInit() {
6408
+ this._subs.push(this._transactionManager.articleAdded.subscribe((transactionInfoResponse) => {
6409
+ this.transaction = transactionInfoResponse;
6410
+ }));
6411
+ }
6412
+ ngOnDestroy() {
6413
+ this._subs.forEach(sub => sub.unsubscribe());
6414
+ }
6415
+ animationFn() {
6416
+ return trigger("showPopup", [
6417
+ state("void", style({ transform: "translate3d(0, 0, 0)" })),
6418
+ state("*", style({ transform: "translate3d(100%, 0, 0)" })),
6419
+ transition("void <=> *", [
6420
+ animate("200ms ease-in-out")
6421
+ ])
6422
+ ]);
6423
+ }
6424
+ trackByFn(index, line) {
6425
+ return line.lineNr;
6426
+ }
6427
+ handleRowsSelected(rows) {
6428
+ this._selectedTransLine = rows.find(x => x !== undefined);
6429
+ }
6430
+ handlePlanningRequest(event) {
6431
+ // TODO: handlePlanningRequest... from new Planning package
6432
+ }
6433
+ moveFloatingButtonToLeft() {
6434
+ if (this.floatButtonRightPosition === ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITHOUT_SIDEBAR) {
6435
+ this.floatButtonRightPosition = ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITH_SIDEBAR;
6436
+ }
6437
+ }
6438
+ moveFloatingButtonToRight() {
6439
+ if (this.floatButtonRightPosition === ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITH_SIDEBAR) {
6440
+ this.floatButtonRightPosition = ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITHOUT_SIDEBAR;
6441
+ }
6442
+ }
6443
+ onOkClick() {
6444
+ this.hide();
6445
+ }
6446
+ hide() {
6447
+ this.floatButtonSelected = false;
6448
+ }
6449
+ floatButtonClick() {
6450
+ this.floatButtonSelected = true;
6451
+ this._transactionArticleTextComponent.visible = this.floatButtonSelected;
6452
+ }
6453
+ get subHeader() {
6454
+ if (this._selectedTransLine) {
6455
+ return this._selectedTransLine.goodDescription;
6456
+ }
6457
+ return "";
6458
+ }
6459
+ hideOrderTotals(event) {
6460
+ this.showTotals = false;
6461
+ }
6462
+ addArticleLine(event) {
6463
+ return __awaiter(this, void 0, void 0, function* () {
6464
+ if (event.code === "Enter") {
6465
+ if (this.newArticleNr && this.newArticleNr !== "") {
6466
+ yield this._transactionManager.addArticleLine(this.transactionInfo.uuid, this.newArticleNr, 1, 0, PositionGridRow.After);
6467
+ }
6468
+ }
6469
+ });
6470
+ }
6471
+ }
6472
+ ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITHOUT_SIDEBAR = 50;
6473
+ ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITH_SIDEBAR = 350;
6474
+ ServiceOrderComponent.decorators = [
6475
+ { type: Component, args: [{
6476
+ // eslint-disable-next-line @angular-eslint/component-selector
6477
+ selector: "service-order",
6478
+ template: `
6479
+ <transaction-manager></transaction-manager>
6480
+ <div id="transaction-general-tab" style="height:100%;">
6481
+ <transaction-header-block
6482
+ [relationId]="relationId"
6483
+ [transaction]="transaction"
6484
+ [canPlanDelivery]="canPlanDelivery"
6485
+ (planningRequestButtonClick)="handlePlanningRequest($event)"
6486
+ ></transaction-header-block>
6487
+ <div *ngIf="!isService">
6488
+ <div style="display: flex; flex-direction: row; place-content: center">
6489
+ <co-input-text style="width: 200px;"
6490
+ [(model)]="newArticleNr"
6491
+ [placeholder]="'WHERE_ARE_YOU_LOOKING_FOR' | localize"
6492
+ [showClearButton]="true"
6493
+ (keypress)="addArticleLine($event)"
6494
+ ></co-input-text>
6495
+ </div>
6496
+ <div class="transaction-view" fxLayout="row" fxLayoutGap="1px" fxLayoutAlign="flex-end">
6497
+ <div class="view-mode-buttons">
6498
+ <co-button [iconData]="iconCacheService.getIcon(iconThickLines)"
6499
+ [title]="'LIST_VIEW' | localize"
6500
+ (click)="this.activeViewMode = viewModes.List"
6501
+ class="triangle white"
6502
+ iconClass="medium light"></co-button>
6503
+ <co-button [iconData]="iconCacheService.getIcon(iconThinLines)"
6504
+ [title]="'GRID_VIEW' | localize"
6505
+ (click)="this.activeViewMode = viewModes.Grid"
6506
+ class="triangle white"
6507
+ iconClass="medium light"></co-button>
6508
+ </div>
6509
+ </div>
6510
+ <div *ngIf="this.activeViewMode === viewModes.List">
6511
+ <transaction-order-line-view *ngFor="let line of transactionLines; trackBy:trackByFn;"
6512
+ [line]="line"
6513
+ ></transaction-order-line-view>
6514
+ </div>
6515
+ <div *ngIf="this.activeViewMode === viewModes.Grid">
6516
+ <transaction-order-lines [transaction]="transaction"></transaction-order-lines>
6517
+ </div>
6518
+ <div class="floating-icon-wrapper" [style.right.px]="floatButtonRightPosition">
6519
+ <icon [icon]="iconOrder"
6520
+ class="light"
6521
+ (click)="floatButtonClick()" id="floatingIcon"
6522
+ [style.right.px]="floatButtonRightPosition"></icon>
6523
+ </div>
6524
+ </div>
6525
+ <transaction-order-totals *ngIf="!isService"
6526
+ [ngClass]="showTotals ? 'transaction-totals-show' : 'transaction-totals-hide'"></transaction-order-totals>
6527
+ </div>
6528
+
6529
+ <transaction-article-text></transaction-article-text>
6530
+ `,
6531
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,:host :host{display:flex}.flex-center{flex-direction:row}:host :host{flex-direction:column}.flex-center{align-items:center!important;justify-content:center!important}.transaction-view .view-mode-buttons{margin-left:11px}:host :host{width:100%}:host :host{overflow:hidden}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host :host{padding-bottom:60px}.page-wrapper :host{padding:20px;margin-bottom:60px}:host transaction-order-totals{display:flex;flex-direction:column;align-items:flex-end}:host .transaction-totals-show{padding:20px}:host .transaction-totals-hide{position:relative;bottom:0;right:0}::ng-deep #transaction_planning_agenda{top:160px!important;width:calc(100vw - 80px)!important}::ng-deep #transaction_planning_agenda .popup-card-title{padding:10px 20px;background:#74B77F;color:#fff}::ng-deep #transaction_planning_agenda .popup-card-title .header-wrapper{align-items:center!important}::ng-deep #transaction_planning_agenda .popup-card-title .separator{border-color:#fff!important}::ng-deep #transaction_planning_agenda .popup-card-title .header{font-size:15px;font-weight:normal}::ng-deep #transaction_planning_agenda .popup-card-title .sub-header{font-size:18px;color:#fff!important;font-weight:bold!important}::ng-deep #transaction_planning_agenda .popup-card-title button-select icon [fill]{fill:#fff}::ng-deep #transaction_planning_agenda .popup-card-content{overflow:hidden}@media only screen and (max-width: 599px){::ng-deep #transaction_planning_agenda{width:100vw!important}::ng-deep #transaction_planning_agenda .popup-card-content{padding:0}}.column-separator{padding-right:25px;border-right:1px solid #0000001c}.floating-icon-wrapper{position:fixed;bottom:50px;right:50px;display:flex;flex-shrink:0;align-items:center;justify-content:center;background:#475060;height:50px;width:50px;opacity:.5;transition:opacity .4s ease-in-out;border-radius:50%;overflow:hidden;box-shadow:0 0 6px #0009;-webkit-box-shadow:0px 0px 6px 0px rgba(0,0,0,.6);-moz-box-shadow:0px 0px 6px 0px rgba(0,0,0,.6);cursor:pointer}.floating-icon-wrapper:hover{opacity:1;transition:opacity .4s ease-in-out}.floating-icon-wrapper ::ng-deep icon{height:44px!important;width:44px!important;color:#fff!important;flex-shrink:0}.transaction-wrapper{padding:0 20px}.view-mode-buttons co-button{padding:0}.transaction-view{display:flex;margin-top:10px;justify-content:stretch}.transaction-view .view-mode-buttons{display:flex;flex-direction:row}.transaction-view .view-mode-buttons button-select ::ng-deep button-colijn{border-radius:0}.transaction-view .view-mode-buttons button-select:first-child{margin-right:5px}.transaction-view .view-mode-buttons button-select:first-child ::ng-deep button-colijn{border-radius:3px}.transaction-view .view-mode-buttons button-select:nth-child(2) ::ng-deep button-colijn{border-top-left-radius:3px;border-bottom-left-radius:3px}.transaction-view .view-mode-buttons button-select:last-child ::ng-deep button-colijn{border-top-right-radius:3px;border-bottom-right-radius:3px}\n"]
6532
+ },] }
6533
+ ];
6534
+ ServiceOrderComponent.ctorParameters = () => [
6535
+ { type: TransactionService },
6536
+ { type: TransactionEventService },
6537
+ { type: IconCacheService },
6538
+ { type: PromptService }
6539
+ ];
6540
+ ServiceOrderComponent.propDecorators = {
6541
+ _transactionArticleTextComponent: [{ type: ViewChild, args: [TransactionArticleTextComponent,] }],
6542
+ _transactionManager: [{ type: ViewChild, args: [TransactionManagerComponent,] }]
6543
+ };
6544
+
6545
+ class TransactionOrderTotalsComponent extends TransactionBaseComponent {
6546
+ constructor(service) {
6547
+ super(service);
6548
+ this.service = service;
6549
+ }
6550
+ }
6551
+ TransactionOrderTotalsComponent.decorators = [
6552
+ { type: Component, args: [{
6553
+ // eslint-disable-next-line @angular-eslint/component-selector
6554
+ selector: "transaction-order-totals",
6555
+ template: `
6556
+ <div class="totals-wrapper">
6557
+ <div class="totals-item">
6558
+ <div class="totals-item-description" [textContent]="'SUBTOTAL' | localize"></div>
6559
+ <div class="totals-item-value" [textContent]="transactionTotal?.grossAmount | coCurrency | coCurrency"></div>
6560
+ </div>
6561
+ <div class="totals-item">
6562
+ <div class="totals-item-description" [textContent]="'VAT_AMOUNT' | localize"></div>
6563
+ <div class="totals-item-value" [textContent]="transactionTotal?.surchargeAmount | coCurrency"></div>
6564
+ </div>
6565
+ <div class="totals-item total">
6566
+ <div class="totals-item-description" [textContent]="'TRANSACTION_SUM_I' | localize"></div>
6567
+ <div class="totals-item-value" [textContent]="transactionTotal?.netAmount | coCurrency"></div>
6568
+ </div>
6569
+ </div>
6570
+ `,
6571
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host .totals-wrapper{width:310px;font-size:13px}:host .totals-item{display:flex;flex-direction:row;height:25px;align-items:center}:host .totals-item>div{text-align:end;width:50%}:host .totals-item.total{font-weight:bold;height:30px;border-top:1px solid #DCE4EA}\n"]
6572
+ },] }
6573
+ ];
6574
+ TransactionOrderTotalsComponent.ctorParameters = () => [
6575
+ { type: TransactionService }
6576
+ ];
6577
+
6578
+ class TransactionOrderLineViewComponent {
6579
+ constructor(_service, _eventService) {
6580
+ this._service = _service;
6581
+ this._eventService = _eventService;
6582
+ this.stock = StockStatus.Low;
6583
+ }
6584
+ ngOnInit() {
6585
+ this._loadArticleImage();
6586
+ }
6587
+ _loadArticleImage() {
6588
+ return __awaiter(this, void 0, void 0, function* () {
6589
+ if (this.line) {
6590
+ this.image = this.line ? yield this._service.retrieveLineImage(this.line) : undefined;
6591
+ }
6592
+ });
6593
+ }
6594
+ transactionLineClick(line) {
6595
+ this._eventService.transactionLineClicked.next(this.line);
6596
+ }
6597
+ }
6598
+ TransactionOrderLineViewComponent.decorators = [
6599
+ { type: Component, args: [{
6600
+ // eslint-disable-next-line @angular-eslint/component-selector
6601
+ selector: "transaction-order-line-view",
6602
+ template: `
6603
+ <div class="transaction-order-line-r" fxFlex (click)="transactionLineClick(line)">
6604
+ <div fxLayout="row" class="full-width">
6605
+ <div fxLayout="column" class="transaction-order-line-description" fxLayoutGap="20px">
6606
+ <div fxLayout="row" fxLayoutGap="10px">
6607
+ <span [textContent]="line.goodDescription" class="cart-line-description-main"></span>
6608
+ <span *ngIf="line.goodDescription && line.articleNumber">|</span>
6609
+ <span [textContent]="line.articleNumber" class="cart-line-description-artnr"></span>
6610
+ </div>
6611
+ <div>
6612
+ <span [innerHTML]="line.configurationReadable" class="cart-line-description-detail"></span>
6613
+ </div>
6614
+ </div>
6615
+ <div fxLayout="column" class="transaction-order-line-image">
6616
+ <image-display [model]="image"></image-display>
6617
+ </div>
6618
+ </div>
6619
+ <div fxLayout="row" class="transaction-order-line-right">
6620
+ <div fxLayout="column" class="transaction-order-line-stock">
6621
+ <span [textContent]="'STOCK' | localize" class="small-font"></span>
6622
+ <stock-status-indicator [model]="stock"></stock-status-indicator>
6623
+ <span [textContent]="'DELIVERY_TIME_PERIOD' | localize" class="small-font"></span>
6624
+ <span [textContent]="line.deliveryDate | deliveryTime"></span>
6625
+ </div>
6626
+ <div class="transaction-order-line-amount">
6627
+ <co-input-number-picker
6628
+ class="horizontal"
6629
+ [(model)]="line.amount" [min]="0" [buttonShowMode]="'always'"
6630
+ [readonly]="true"></co-input-number-picker>
6631
+ </div>
6632
+ <div class="transaction-order-line-totals">
6633
+ <span [textContent]="line.netLineTotal | coCurrency: true"></span>
6634
+ </div>
6635
+ </div>
6636
+ </div>
6637
+ `,
6638
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.transaction-order-line-r .transaction-order-line-description .cart-line-description-artnr{font-size:10px}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-top:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-bottom:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-left:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{margin-right:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:block;padding:20px}:host ::ng-deep collapseable{width:100%!important}.horizontal{display:flex;flex-direction:row}.service-request-button-wrapper{display:flex;justify-content:center;margin-top:20px}.transaction-order-line-r{display:flex;justify-content:stretch;flex-direction:row}@media (max-width: 800px){.transaction-order-line-r{flex-direction:column}}.transaction-order-line-r .transaction-order-line-image{display:flex;flex:1 0 auto!important;flex-direction:column;align-items:center;justify-content:center;padding-right:10px}.transaction-order-line-r .transaction-order-line-image image-display{width:6em;height:6em}.transaction-order-line-r .transaction-order-line-image ::ng-deep no-image-display{display:none}.transaction-order-line-r .transaction-order-line-description{display:flex;flex-direction:column;width:auto;max-width:355px;margin-left:10px}.transaction-order-line-r .transaction-order-line-description .cart-line-description-main{font-weight:bold}.transaction-order-line-r .transaction-order-line-right{justify-content:flex-end;align-items:center}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock{width:10em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{width:15em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{display:flex;justify-content:flex-end;min-width:100px;font-weight:bold}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals span{text-align:right}\n"]
6639
+ },] }
6640
+ ];
6641
+ TransactionOrderLineViewComponent.ctorParameters = () => [
6642
+ { type: TransactionService },
6643
+ { type: TransactionEventService }
6644
+ ];
6645
+ TransactionOrderLineViewComponent.propDecorators = {
6646
+ line: [{ type: Input }]
6647
+ };
6648
+
6649
+ class TransactionOrderLinesComponent extends TransactionBaseComponent {
6650
+ constructor(service, _eventService, _dictionaryService) {
6651
+ super(service);
6652
+ this.service = service;
6653
+ this._eventService = _eventService;
6654
+ this._dictionaryService = _dictionaryService;
6655
+ this.createServiceClick = new EventEmitter();
6656
+ this.nothingSelected = true;
6657
+ this.columns = [];
6658
+ this.columns.push({ field: "articleNumber", headerText: this._dictionaryService.get("ARTICLE_NR"), allowFiltering: false }, { field: "goodDescription", headerText: this._dictionaryService.get("DESCRIPTION") }, { field: "detailsAsString", headerText: this._dictionaryService.get("DETAILS") }, { field: "price", headerText: this._dictionaryService.get("PRICE") }, { field: "amount", headerText: this._dictionaryService.get("NUMBER") }, { field: "lineTotal", headerText: this._dictionaryService.get("SUBTOTAL") }, { field: "logisticState", headerText: this._dictionaryService.get("STATE") }, { field: "expectedDeliveryDate", headerText: this._dictionaryService.get("EXPECTED_DELIVERY_DATE") });
6659
+ }
6660
+ get pagingEnabled() {
6661
+ if (this.transactionLines) {
6662
+ return this.transactionLines.length >= TransactionOrderLinesComponent.MAX_TRANSACTION_LINES;
6663
+ }
6664
+ return false;
6665
+ }
6666
+ set selectedTransLine(value) {
6667
+ this._selectedTransLine = value;
6668
+ this.nothingSelected = this._selectedTransLine === null;
6669
+ }
6670
+ get selectedTransLine() {
6671
+ return this._selectedTransLine;
6672
+ }
6673
+ onRowClick(row) {
6674
+ this.selectedTransLine = row;
6675
+ this._eventService.transactionLineClicked.next(this.selectedTransLine);
6676
+ }
6677
+ onRowDeselect(event) {
6678
+ this.selectedTransLine = null;
6679
+ }
6680
+ // TODO: navragen wat de bedoeling is, zie originele source iOneJS
6681
+ newServiceRequestClick() {
6682
+ if (this.nothingSelected) {
6683
+ return;
6684
+ }
6685
+ this.createServiceClick.emit(this._selectedTransLine);
6686
+ }
6687
+ }
6688
+ TransactionOrderLinesComponent.MAX_TRANSACTION_LINES = 20;
6689
+ TransactionOrderLinesComponent.decorators = [
6690
+ { type: Component, args: [{
6691
+ // eslint-disable-next-line @angular-eslint/component-selector
6692
+ selector: "transaction-order-lines",
6693
+ template: `
6694
+ <co-grid #transactionGrid
6695
+ [data]="transactionLines"
6696
+ [columns]="columns"
6697
+ [pagingEnabled]="pagingEnabled"
6698
+ [maxNumberOfRows]="'20'"
6699
+ (rowsSelected)="onRowClick($event)"
6700
+ ></co-grid>
6701
+ `,
6702
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.transaction-order-line-r .transaction-order-line-description .cart-line-description-artnr{font-size:10px}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-top:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-bottom:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-left:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{margin-right:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:block;padding:20px}:host ::ng-deep collapseable{width:100%!important}.service-request-button-wrapper{display:flex;justify-content:center;margin-top:20px}.transaction-order-line-r{display:flex;justify-content:stretch;flex-direction:row}@media (max-width: 800px){.transaction-order-line-r{flex-direction:column}}.transaction-order-line-r .transaction-order-line-image{display:flex;flex:1 0 auto!important;flex-direction:column;align-items:center;justify-content:center;padding-right:10px}.transaction-order-line-r .transaction-order-line-image image-display{width:6em;height:6em}.transaction-order-line-r .transaction-order-line-image ::ng-deep no-image-display{display:none}.transaction-order-line-r .transaction-order-line-description{display:flex;flex-direction:column;width:auto;max-width:355px;margin-left:10px}.transaction-order-line-r .transaction-order-line-description .cart-line-description-main{font-weight:bold}.transaction-order-line-r .transaction-order-line-right{justify-content:flex-end;align-items:center}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock{width:10em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{width:15em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{display:flex;justify-content:flex-end;min-width:100px;font-weight:bold}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals span{text-align:right}\n"]
6703
+ },] }
6704
+ ];
6705
+ TransactionOrderLinesComponent.ctorParameters = () => [
6706
+ { type: TransactionService },
6707
+ { type: TransactionEventService },
6708
+ { type: DictionaryService }
6709
+ ];
6710
+ TransactionOrderLinesComponent.propDecorators = {
6711
+ transactionGrid: [{ type: ViewChild, args: ["transactionGrid",] }],
6712
+ createServiceClick: [{ type: Output }]
6713
+ };
6714
+
6715
+ class TransactionRelationAddressComponent {
6716
+ constructor(_dictionary, _connector) {
6717
+ this._dictionary = _dictionary;
6718
+ this._connector = _connector;
6719
+ this.countries = [];
6720
+ this.fields = { text: "description", value: "code" };
6721
+ this.postalCodeCheckErrorMessage = "";
6722
+ this._prevPostalCodeForCheck = "";
6723
+ }
6724
+ set address(address) {
6725
+ this._address = address;
6726
+ }
6727
+ get address() {
6728
+ if (this._address === undefined) {
6729
+ this._address = new Address();
6730
+ }
6731
+ return this._address;
6732
+ }
6733
+ ngOnInit() {
6734
+ return __awaiter(this, void 0, void 0, function* () {
6735
+ this.countries = yield this._connector.getCountries();
6736
+ });
6737
+ }
6738
+ checkForPostalCodeCheckError() {
6739
+ return __awaiter(this, void 0, void 0, function* () {
6740
+ if (!this.address.postalCode || isNill$1(this.address.houseNo)) {
6741
+ this.postalCodeCheckErrorMessage = "";
6742
+ return;
6743
+ }
6744
+ if (this._prevPostalCodeForCheck !== this.address.postalCode || this._prevHouseNoForCheck !== this.address.houseNo) {
6745
+ this._prevPostalCodeForCheck = this.address.postalCode;
6746
+ this._prevHouseNoForCheck = this.address.houseNo;
6747
+ const postalCodeResponse = yield this._connector.getPostalCodeRetrieval((this.address.postalCode ? this.address.postalCode : ""), StringUtils.ParseString(this.address.houseNo));
6748
+ if (postalCodeResponse && postalCodeResponse.isBadAddress) {
6749
+ this.postalCodeCheckErrorMessage = this._dictionary.get("UNKNOWN_ADDRESS_CHECK_IT");
6750
+ }
6751
+ else {
6752
+ this.postalCodeCheckErrorMessage = "";
6753
+ this.address.streetName = postalCodeResponse.street;
6754
+ this.address.city = postalCodeResponse.city;
6755
+ }
6756
+ }
6757
+ });
6758
+ }
6759
+ changeHouseNo() {
6760
+ this.address.houseNo = Number(this.address.houseNo);
6761
+ }
6762
+ }
6763
+ TransactionRelationAddressComponent.decorators = [
6764
+ { type: Component, args: [{
6765
+ // eslint-disable-next-line @angular-eslint/component-selector
6766
+ selector: "transaction-relation-address",
6767
+ template: `
6768
+ <label [textContent]="label | localize"
6769
+ class="transaction-relation-label-h3"
6770
+ ></label>
6771
+ <div class="default-flex-row">
6772
+ <div class="default-flex-column">
6773
+ <co-input-text [(model)]="address.postalCode"
6774
+ [placeholder]="'POSTAL_CODE' | localize"
6775
+ (blur)="checkForPostalCodeCheckError()"
6776
+ required
6777
+ ></co-input-text>
6778
+ </div>
6779
+ <div class="default-flex-column">
6780
+ <co-input-text [(model)]="address.houseNo"
6781
+ [placeholder]="'HOUSE_NO' | localize"
6782
+ (blur)="checkForPostalCodeCheckError()"
6783
+ (modelChange) = "changeHouseNo()"
6784
+ required
6785
+ ></co-input-text>
6786
+ </div>
6787
+ <div class="default-flex-column">
6788
+ <co-input-text [(model)]="address.houseNoAddition"
6789
+ [placeholder]="'HOUSE_NO_ADDITION' | localize"
6790
+ ></co-input-text>
6791
+ </div>
6792
+ </div>
6793
+ <div>
6794
+ <div class="default-flex-row">
6795
+ <div class="default-flex-column">
6796
+ <co-input-text [(model)]="address.streetName" [placeholder]="'STREET' | localize" required></co-input-text>
6797
+ </div>
6798
+ <div class="default-flex-column">
6799
+ <co-input-text [(model)]="address.city" [placeholder]="'CITY' | localize" required></co-input-text>
6800
+ </div>
6801
+ <div class="default-flex-column">
6802
+ <co-input-combo-box [(model)]="address.countryId"
6803
+ [source]="countries"
6804
+ [fields]="fields"
6805
+ [placeholder]="'COUNTRY'| localize"
6806
+ [required]="true"
6807
+ ></co-input-combo-box>
6808
+ </div>
6809
+ </div>
6810
+ </div>
6811
+ `,
6812
+ styles: [".button-wrapper{margin-top:10px;justify-content:center}co-input-radio-button{margin-left:16px}.transaction-relation-label-h2{display:block;margin-top:1em;margin-bottom:1em;font-size:18px;font-weight:bold}.transaction-relation-label-h3{display:block;margin-top:1em;margin-bottom:1em;font-size:14px;font-weight:bold}\n"]
6813
+ },] }
6814
+ ];
6815
+ TransactionRelationAddressComponent.ctorParameters = () => [
6816
+ { type: DictionaryService },
6817
+ { type: IOneConnectorAdapterService }
6818
+ ];
6819
+ TransactionRelationAddressComponent.propDecorators = {
6820
+ label: [{ type: Input }],
6821
+ address: [{ type: Input }]
6822
+ };
6823
+
6824
+ class TransactionSidebarRightComponent extends TransactionBaseComponent {
6825
+ constructor(service, iconCacheService, _eventService, changeDetector) {
6826
+ super(service);
6827
+ this.service = service;
6828
+ this.iconCacheService = iconCacheService;
6829
+ this._eventService = _eventService;
6830
+ this.changeDetector = changeDetector;
6831
+ this.iconDetailView = CoreComponentsIcon.DetailView;
6832
+ this.iconArrowPointRight = CoreComponentsIcon.ArrowPointRight;
6833
+ this.iconStock = CoreComponentsIcon.Stock;
6834
+ this.iconDocuments = CoreComponentsIcon.Documents;
6835
+ this.test = "";
6836
+ this.defaultSidebar = new Sidebar({
6837
+ width: "320px",
6838
+ type: "Auto",
6839
+ isOpen: false,
6840
+ position: "Right",
6841
+ target: "#app-module-sidebar-right"
6842
+ });
6843
+ this._subscriptions = [];
6844
+ this._subscriptions.push(this._eventService.transactionLineClicked.subscribe((transactionLine) => {
6845
+ this.transactionLine = transactionLine;
6846
+ this.defaultSidebar.show();
6847
+ }));
6848
+ }
6849
+ ngOnInit() {
6850
+ setTimeout(() => {
6851
+ this.defaultSidebar.appendTo("#default-sidebar");
6852
+ this.sidebarCloseClick();
6853
+ this.changeDetector.detectChanges();
6854
+ });
6855
+ }
6856
+ ngOnDestroy() {
6857
+ this._subscriptions.forEach(sub => sub.unsubscribe());
6858
+ }
6859
+ sidebarCloseClick() {
6860
+ this.defaultSidebar.hide();
6861
+ this._eventService.rightSidebarClose.next();
6862
+ }
6863
+ }
6864
+ TransactionSidebarRightComponent.decorators = [
6865
+ { type: Component, args: [{
6866
+ // eslint-disable-next-line @angular-eslint/component-selector
6867
+ selector: "transaction-sidebar-right",
6868
+ template: `
6869
+ <div id="default-sidebar">
6870
+ <div>
6871
+ <icon [icon]="iconArrowPointRight" (click)="sidebarCloseClick()"></icon>
6872
+ <label [textContent]="transactionLine?.goodDescription"></label>
6873
+ </div>
6874
+ <div>
6875
+ <ejs-tab id="element2">
6876
+ <e-tabitems>
6877
+ <e-tabitem>
6878
+ <ng-template #headerText>
6879
+ <icon [icon]="iconDetailView" title="Regeldetails"></icon>
6880
+ </ng-template>
6881
+ <ng-template #content>
6882
+ <transaction-line-accordion [transactionLine]="transactionLine"></transaction-line-accordion>
6883
+ </ng-template>
6884
+ </e-tabitem>
6885
+ <e-tabitem>
6886
+ <ng-template #headerText>
6887
+ <icon [icon]="iconStock" title="Voorraad"></icon>
6888
+ </ng-template>
6889
+ <ng-template #content>
6890
+ <div style="margin: 10px;">
6891
+ <div fxLayout="row" fxLayoutGap="10px">
6892
+ <co-input-text placeholder="In voorraad"></co-input-text>
6893
+ <co-input-text placeholder="In order voorraad"></co-input-text>
6894
+ </div>
6895
+
6896
+ <div fxLayout="row" fxLayoutGap="10px">
6897
+ <co-input-text placeholder="In order commissie"></co-input-text>
6898
+ <co-input-text placeholder="Beschikbaar"></co-input-text>
6899
+ </div>
6900
+
6901
+ <div fxLayout="row" fxLayoutGap="10px">
6902
+ <co-input-text placeholder="In bestelling"></co-input-text>
6903
+ <co-input-text placeholder="Later beschikbaar"></co-input-text>
6904
+ </div>
6905
+
6906
+ <div fxLayout="row" fxLayoutGap="10px">
6907
+ <co-input-text placeholder="Toegewezen" [model]="transactionLine?.amount"></co-input-text>
6908
+ <co-input-text placeholder="Vrije voorraad"></co-input-text>
6909
+ </div>
6910
+ </div>
6911
+ </ng-template>
6912
+ </e-tabitem>
6913
+ <e-tabitem>
6914
+ <ng-template #headerText>
6915
+ <icon [icon]="iconDocuments" title="Documenten en notities"></icon>
6916
+ </ng-template>
6917
+ <ng-template #content>
6918
+ <div>
6919
+ Documenten en notities
6920
+ </div>
6921
+ </ng-template>
6922
+ </e-tabitem>
6923
+ </e-tabitems>
6924
+ </ejs-tab>
6925
+ </div>
6926
+ </div>
6927
+ `,
6928
+ styles: [":host{display:block;width:100%}.e-accordion{border:none}.e-accordion .e-acrdn-item .e-acrdn-header .e-toggle-icon .e-icons{color:#add8e6}.e-tab .e-toolbar-items{display:flex;justify-content:center}\n"]
6929
+ },] }
6930
+ ];
6931
+ TransactionSidebarRightComponent.ctorParameters = () => [
6932
+ { type: TransactionService },
6933
+ { type: IconCacheService },
6934
+ { type: TransactionEventService },
6935
+ { type: ChangeDetectorRef }
6936
+ ];
6937
+
6938
+ class TransactionLineAccordionComponent {
6939
+ constructor(changeDetector) {
6940
+ this.changeDetector = changeDetector;
6941
+ this.transactionLine = new TransactionLineInfo;
6942
+ this.accordion = new Accordion({});
6943
+ this._subscriptions = [];
6944
+ }
6945
+ ngOnInit() {
6946
+ setTimeout(() => {
6947
+ this.accordion.appendTo("#accordion_html_markup");
6948
+ this.changeDetector.detectChanges();
6949
+ });
6950
+ }
6951
+ }
6952
+ TransactionLineAccordionComponent.decorators = [
6953
+ { type: Component, args: [{
6954
+ // eslint-disable-next-line @angular-eslint/component-selector
6955
+ selector: "transaction-line-accordion",
6956
+ template: `
6957
+ <div id='container'>
6958
+ <div id='accordion_html_markup'>
6959
+ <div>
6960
+ <div>Prijsdetails</div>
6961
+ <div>
6962
+ <div style="margin-left:10px;">
6963
+ <div fxLayout="row" fxLayoutGap="10px">
6964
+ <co-input-text placeholder="Aantal" [model]="transactionLine?.amount"></co-input-text>
6965
+ <co-input-text placeholder="Verkoopprijs" [model]="transactionLine?.price"></co-input-text>
6966
+ </div>
6967
+ <div fxLayout="row" fxLayoutGap="10px">
6968
+ <co-input-text placeholder="Adviesprijs"></co-input-text>
6969
+ <co-input-text placeholder="Totaal korting"></co-input-text>
6970
+ </div>
6971
+ <div fxLayout="row" fxLayoutGap="10px">
6972
+ <co-input-text placeholder="Koritngspercentage"></co-input-text>
6973
+ <co-input-text placeholder="Kortingsbedrag" [model]="transactionLine?.discountAmount"></co-input-text>
6974
+ </div>
6975
+
6976
+ <div fxLayout="row" fxLayoutGap="10px">
6977
+ <co-input-text placeholder="Speciale korting"></co-input-text>
6978
+ <co-input-text placeholder="Transactiekorting"></co-input-text>
6979
+ </div>
6980
+
6981
+ <div fxLayout="row" fxLayoutGap="10px">
6982
+ <co-input-text placeholder="Business rule korting"></co-input-text>
6983
+ <co-input-text placeholder="Kwantumkorting"></co-input-text>
6984
+ </div>
6985
+
6986
+ <div fxLayout="row" fxLayoutGap="10px">
6987
+ <co-input-text placeholder="Toeslag"></co-input-text>
6988
+ <co-input-text placeholder="BTW"></co-input-text>
6989
+ </div>
6990
+
6991
+ <div fxLayout="row" fxLayoutGap="10px">
6992
+ <co-input-text placeholder="Prijslijst"></co-input-text>
6993
+ </div>
6994
+ </div>
6995
+ </div>
6996
+ </div>
6997
+ <div>
6998
+ <div>Logistiek</div>
6999
+ <div>
7000
+ <div style="margin-left:10px;">
7001
+ <div fxLayout="row" fxLayoutGap="10px">
7002
+ <co-input-text placeholder="Commissiecode"></co-input-text>
7003
+ <co-input-text placeholder="Levermethode"></co-input-text>
7004
+ </div>
7005
+ <div fxLayout="row" fxLayoutGap="10px">
7006
+ <co-input-text placeholder="Montagetijd"></co-input-text>
7007
+ <co-input-text placeholder="Bewerkingstijd"></co-input-text>
7008
+ </div>
7009
+ <div fxLayout="row" fxLayoutGap="10px">
7010
+ <co-input-text placeholder="Leverancier"></co-input-text>
7011
+ <co-input-text placeholder="Artikelnummer leverancier"></co-input-text>
7012
+ </div>
7013
+
7014
+ <div fxLayout="row" fxLayoutGap="10px">
7015
+ <co-input-text placeholder="In/uit collectie"></co-input-text>
7016
+ <co-input-text placeholder="Dropshipment"></co-input-text>
7017
+ </div>
7018
+
7019
+ <div fxLayout="row" fxLayoutGap="10px">
7020
+ <co-input-text placeholder="Leverdatum"></co-input-text>
7021
+ <co-input-text placeholder="Referentie"></co-input-text>
7022
+ </div>
7023
+ </div>
7024
+ </div>
7025
+
7026
+ </div>
7027
+ <div>
7028
+ <div id="header">Opmaak</div>
7029
+ <div id="opmaak">
7030
+ <div style="margin-left:10px;">
7031
+ <div fxLayout="row" fxLayoutGap="10px">
7032
+ <co-input-text placeholder="Orderregelset"></co-input-text>
7033
+ <co-input-text placeholder="Hoofdstuk"></co-input-text>
7034
+ </div>
7035
+ <div>
7036
+ <co-input-text placeholder="Laatste wijziging Door"></co-input-text>
7037
+ </div>
7038
+ <div>
7039
+ <co-input-text placeholder="Zichtbaar op documenten"></co-input-text>
7040
+ </div>
7041
+ </div>
7042
+ </div>
7043
+ </div>
7044
+ <div>
7045
+ <div>Artikelkenmerken</div>
7046
+ <div>
7047
+ <div style="margin-left:10px;">
7048
+ <div fxLayout="row" fxLayoutGap="10px">
7049
+ <co-input-text placeholder="Breedte"></co-input-text>
7050
+ <co-input-text placeholder="Lengte"></co-input-text>
7051
+ </div>
7052
+ <div fxLayout="row" fxLayoutGap="10px">
7053
+ <co-input-text placeholder="Hoogte"></co-input-text>
7054
+ <co-input-text placeholder="Zitdiepte"></co-input-text>
7055
+ </div>
7056
+ <div fxLayout="row" fxLayoutGap="10px">
7057
+ <co-input-text placeholder="Zithoogte"></co-input-text>
7058
+ <co-input-text placeholder="Volume"></co-input-text>
7059
+ </div>
7060
+ <div fxLayout="row" fxLayoutGap="10px">
7061
+ <co-input-text placeholder="Stopmaat"></co-input-text>
7062
+ <co-input-text placeholder="Patroonhoogte"></co-input-text>
7063
+ </div>
7064
+ <br>
7065
+ <div fxLayout="row" fxLayoutGap="10px">
7066
+ <co-input-text placeholder="Standaard levertijd"></co-input-text>
7067
+ <co-input-text placeholder="Standaard levertijd verkoop"></co-input-text>
7068
+ </div>
7069
+ <div fxLayout="row" fxLayoutGap="10px">
7070
+ <co-input-text placeholder="Eenheid verkoop"></co-input-text>
7071
+ <co-input-text placeholder="Verkoophoeveelheid"></co-input-text>
7072
+ </div>
7073
+ <div fxLayout="row" fxLayoutGap="10px">
7074
+ <co-input-text placeholder="Aantal"></co-input-text>
7075
+ <co-input-text placeholder="Colli"></co-input-text>
7076
+ </div>
7077
+ <br>
7078
+ <div fxLayout="row" fxLayoutGap="10px">
7079
+ <co-input-text placeholder="Omzetgroep"></co-input-text>
7080
+ <co-input-text placeholder="Artikelgroep"></co-input-text>
7081
+ </div>
7082
+ <div fxLayout="row" fxLayoutGap="10px">
7083
+ <co-input-text placeholder="Hoofdartikel"></co-input-text>
7084
+ <co-input-text placeholder="Sfeer"></co-input-text>
7085
+ </div>
7086
+ <div fxLayout="row" fxLayoutGap="10px">
7087
+ <co-input-text placeholder="Concept"></co-input-text>
7088
+ <co-input-text placeholder="Afdeling"></co-input-text>
7089
+ </div>
7090
+ </div>
7091
+ </div>
7092
+ </div>
7093
+
7094
+ </div>
7095
+ </div>
7096
+ `,
7097
+ styles: [""]
7098
+ },] }
7099
+ ];
7100
+ TransactionLineAccordionComponent.ctorParameters = () => [
7101
+ { type: ChangeDetectorRef }
7102
+ ];
7103
+ TransactionLineAccordionComponent.propDecorators = {
7104
+ transactionLine: [{ type: Input }]
7105
+ };
7106
+
7107
+ class TransactionRelationEditComponent extends TransactionBaseComponent {
7108
+ constructor(service) {
7109
+ super(service);
7110
+ this.service = service;
7111
+ this.showPopup = false;
7112
+ this.relType = RelationNameKind;
7113
+ this.genderType = GenderType;
7114
+ this.validSubmit = new EventEmitter();
7115
+ this.invalidSubmit = new EventEmitter();
7116
+ this.dateOfBirth = new Date();
7117
+ this.phoneNumber = new ContactOption();
7118
+ }
7119
+ get readonly() {
7120
+ return false;
7121
+ }
7122
+ get subHeader() {
7123
+ return "";
7124
+ }
7125
+ get editFirstAddress() {
7126
+ if (this.firstAddress) {
7127
+ return this.firstAddress;
7128
+ }
7129
+ else if (this.customer) {
7130
+ const address = new Address();
7131
+ address.addressType = AddressType.DeliveryAddress;
7132
+ address.startDate = new Date();
7133
+ address.sequence = this.customer.getNextAddressSequence();
7134
+ this.customer.addresses.push(address);
7135
+ return address;
7136
+ }
7137
+ }
7138
+ get firstAddress() {
7139
+ if (!this.relation || !this.customer.addresses.length) {
7140
+ return;
7141
+ }
7142
+ return this.customer.getFirstAvailableAddress([
7143
+ AddressType.DeliveryAddress,
7144
+ AddressType.BillingAddress,
7145
+ AddressType.VisitingAddress,
7146
+ AddressType.MailingAddress,
7147
+ AddressType.NursingAddress
7148
+ ]);
7149
+ }
7150
+ onPopupClose() {
7151
+ this.showPopup = false;
7152
+ }
7153
+ changeRelationType(relationType) {
7154
+ if (this.customer) {
7155
+ this.customer.type = relationType;
7156
+ }
7157
+ }
7158
+ changeGenderType(genderType) {
7159
+ if (this.customer) {
7160
+ this.customer.gender = genderType;
7161
+ }
7162
+ }
7163
+ firstNameChange(firstName) {
7164
+ if (this.customer) {
7165
+ this.customer.firstName = firstName;
7166
+ }
7167
+ }
7168
+ familyNameChange(familyName) {
7169
+ if (this.customer) {
7170
+ this.customer.familyName = familyName;
7171
+ }
7172
+ }
7173
+ }
7174
+ TransactionRelationEditComponent.decorators = [
7175
+ { type: Component, args: [{
7176
+ // eslint-disable-next-line @angular-eslint/component-selector
7177
+ selector: "transaction-relation-edit",
7178
+ template: `
7179
+ <co-dialog [visible]="showPopup" header="ACCOUNT_DETAILS" (close)="onPopupClose()"
7180
+ noClickOutside contentSize>
7181
+ <ng-container content>
7182
+ <co-form #transactionRelationEditForm (validSubmit)="validSubmit.emit()" (invalidSubmit)="invalidSubmit.emit()">
7183
+ <div style="min-width: 500px;">
7184
+ <div>
7185
+ <label [textContent]="'PERSONAL_DATA' | localize"
7186
+ class="transaction-relation-label-h3"
7187
+ ></label>
7188
+ </div>
7189
+ <div>
7190
+ <div>
7191
+ <label [textContent]="'ORDER_TYPE' | localize "
7192
+ class="transaction-relation-label-h3"
7193
+ ></label>
7194
+ </div>
7195
+ <div *ngIf="customer?.type">
7196
+ <co-input-radio-button [name]="'type'"
7197
+ [label]="'PRIVATE_PERSON' | localize"
7198
+ [value]="relType.Private"
7199
+ [checked]="customer.type === relType.Private"
7200
+ (modelChange)="changeRelationType(relType.Private)"
7201
+ ></co-input-radio-button>
7202
+ <co-input-radio-button [name]="'type'"
7203
+ [label]="'COMPANY' | localize"
7204
+ [value]="relType.Company"
7205
+ [checked]="customer.type === relType.Company"
7206
+ (modelChange)="changeRelationType(relType.Company)"
7207
+ ></co-input-radio-button>
7208
+ </div>
7209
+ </div>
7210
+ <div *ngIf="customer?.type === relType.Private">
7211
+ <label [textContent]="'SALUTATION' | localize"
7212
+ class="transaction-relation-label-h3"
7213
+ ></label>
7214
+ <div *ngIf="customer?.gender">
7215
+ <co-input-radio-button [name]="'gender'"
7216
+ [label]="'MALE' | localize"
7217
+ [value]="genderType.Male"
7218
+ [checked]="customer.gender === genderType.Male"
7219
+ (modelChange)="changeGenderType(genderType.Male)"
7220
+ ></co-input-radio-button>
7221
+ <co-input-radio-button [name]="'gender'"
7222
+ [label]="'FEMALE' | localize "
7223
+ [value]="genderType.Female"
7224
+ [checked]="customer.gender === genderType.Female"
7225
+ (modelChange)="changeGenderType(genderType.Female)"
7226
+ ></co-input-radio-button>
7227
+ <co-input-radio-button [name]="'gender'"
7228
+ [label]="'UNKNOWN' | localize"
7229
+ [value]="genderType.Unspecified"
7230
+ [checked]="customer.gender === genderType.Unspecified"
7231
+ (modelChange)="changeGenderType(genderType.Unspecified)"
7232
+ ></co-input-radio-button>
7233
+ </div>
7234
+ </div>
7235
+ <div *ngIf="customer?.type === relType.Private">
7236
+ <div>
7237
+ <label [textContent]="'NAME' | localize "
7238
+ class="transaction-relation-label-h3"
7239
+ ></label>
7240
+ <div class="default-flex-row">
7241
+ <div class="default-flex-column">
7242
+ <co-input-text
7243
+ [(model)]="customer.firstName"
7244
+ [placeholder]="'FIRST_NAME' | localize "
7245
+ (modelChange)="firstNameChange($event)"
7246
+ required
7247
+ ></co-input-text>
7248
+ </div>
7249
+ <div class="default-flex-column">
7250
+ <co-input-text
7251
+ [(model)]="customer.prefix"
7252
+ [placeholder]="'PREFIX' | localize "
7253
+ ></co-input-text>
7254
+ </div>
7255
+ <div class="default-flex-column">
7256
+ <co-input-text
7257
+ [(model)]="customer.familyName"
7258
+ [placeholder]="'LAST_NAME' | localize"
7259
+ (modelChange)="familyNameChange($event)"
7260
+ required
7261
+ ></co-input-text>
7262
+ </div>
7263
+ <div class="default-flex-column">
7264
+ <co-input-date
7265
+ [placeholder]="'DATE_OF_BIRTH' | localize "
7266
+ [(model)]="dateOfBirth"
7267
+ required
7268
+ ></co-input-date>
7269
+ </div>
7270
+ <div class="default-flex-column">
7271
+ <co-input-text
7272
+ [(model)]="phoneNumber.value"
7273
+ [placeholder]="'PHONE_NO' | localize "
7274
+ required
7275
+ ></co-input-text>
7276
+ </div>
7277
+ </div>
7278
+ </div>
7279
+ </div>
7280
+ <div>
7281
+ <div *ngIf="customer?.type === relType.Company" class="default-flex-column">
7282
+ <label [textContent]="'COMPANY_NAME' | localize "
7283
+ class="transaction-relation-label-h3"
7284
+ ></label>
7285
+ <co-input-text
7286
+ [(model)]="customer.familyName"
7287
+ [label]="'COMPANY_NAME'"
7288
+ required
7289
+ ></co-input-text>
7290
+ </div>
7291
+ </div>
7292
+
7293
+ <div>
7294
+ <transaction-relation-address
7295
+ label="DELIVERY_ADDRESS" [address]="editFirstAddress"
7296
+ ></transaction-relation-address>
7297
+ </div>
7298
+
7299
+ <div fxLayout="row" fxLayoutGap="10px" class="button-wrapper">
7300
+ <default-ok-cancel-buttons
7301
+ [okDisabled]="readonly"
7302
+ (okClick)="transactionRelationEditForm.submit()"
7303
+ (cancelClick)="onPopupClose()"
7304
+ ></default-ok-cancel-buttons>
7305
+ </div>
7306
+ </div>
7307
+ </co-form>
7308
+ </ng-container>
7309
+ </co-dialog>
7310
+ `,
7311
+ styles: [".button-wrapper{margin-top:10px;justify-content:center}co-input-radio-button{margin-left:16px}.transaction-relation-label-h2{display:block;margin-top:1em;margin-bottom:1em;font-size:18px;font-weight:bold}.transaction-relation-label-h3{display:block;margin-top:1em;margin-bottom:1em;font-size:14px;font-weight:bold}\n"]
7312
+ },] }
7313
+ ];
7314
+ TransactionRelationEditComponent.ctorParameters = () => [
7315
+ { type: TransactionService }
7316
+ ];
7317
+ TransactionRelationEditComponent.propDecorators = {
7318
+ transactionRelationEditForm: [{ type: ViewChild, args: ["transactionRelationEditForm", { read: FormComponent },] }],
7319
+ showPopup: [{ type: Input }],
7320
+ validSubmit: [{ type: Output }]
7321
+ };
7322
+
7323
+ class TransactionHeaderBlockComponent extends TransactionBaseComponent {
7324
+ constructor(service) {
7325
+ super(service);
7326
+ this.service = service;
7327
+ this.planningRequestButtonClick = new EventEmitter();
7328
+ }
7329
+ showPopupTab(index) {
7330
+ this.selectedTab = index;
7331
+ }
7332
+ tabClick() {
7333
+ this.relationPopup.showPopup = true;
7334
+ }
7335
+ transactionEditClose() {
7336
+ this.relationPopup.showPopup = false;
7337
+ }
7338
+ }
7339
+ TransactionHeaderBlockComponent.decorators = [
7340
+ { type: Component, args: [{
7341
+ // eslint-disable-next-line @angular-eslint/component-selector
7342
+ selector: "transaction-header-block",
7343
+ template: `
7344
+ <div fxLayout="row wrap" fxLayout.xs="column">
7345
+ <div class="summary-block" (click)="tabClick()">
7346
+ <div class="block-wrapper">
7347
+ <div class="content-wrapper">
7348
+ <div class="name"
7349
+ [textContent]="relation?.displayName"></div>
7350
+ <div class="address link pointer"
7351
+ [textContent]="relation?.displayAddressFull"></div>
7352
+ <div class="phone link pointer"
7353
+ [textContent]="relation?.tel1"></div>
7354
+ <div [textContent]="relation?.email"
7355
+ class="email link pointer"
7356
+ ></div>
7357
+ </div>
7358
+ </div>
7359
+ </div>
7360
+
7361
+ <transaction-service-info class="summary-block"
7362
+ [transaction]="transaction"
7363
+ ></transaction-service-info>
7364
+ <transaction-service-status class="summary-block"
7365
+ [transaction]="transaction"
7366
+ ></transaction-service-status>
7367
+ <transaction-order-info class="summary-block"
7368
+ [transaction]="transaction"
7369
+ ></transaction-order-info>
7370
+ <transaction-payment-info class="summary-block"
7371
+ [transaction]="transaction"
7372
+ ></transaction-payment-info>
7373
+ <transaction-delivery-summary class="summary-block"
7374
+ [transaction]="transaction"
7375
+ [canPlanDelivery]="!isService && canPlanDelivery"
7376
+ (planningRequestButtonClick)="planningRequestButtonClick.emit($event)"
7377
+ (click)="showPopupTab(1)"
7378
+ ></transaction-delivery-summary>
7379
+ <transaction-article-info class="summary-block"
7380
+ [transaction]="transaction"
7381
+ ></transaction-article-info>
7382
+ <transaction-product-summary class="summary-block"
7383
+ [transaction]="transaction"
7384
+ [product]="product"
7385
+ ></transaction-product-summary>
7386
+ </div>
7387
+
7388
+ <transaction-relation-edit [customerId]="relationId" (validSubmit)="transactionEditClose()"></transaction-relation-edit>
7389
+ `,
7390
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:block;padding:15px 0 30px}.name{font-size:13px;font-weight:bold;color:#22313c;margin-bottom:5px}.address,.phone,.email{font-size:13px;line-height:16px;color:#5b6875}.pointer{cursor:pointer}.link{color:#2b60a7}.summary-block{width:calc(25% - 15px);border:2px dashed #DCE4EA;margin:7px;border-radius:15px;position:relative}.summary-block .block-wrapper{position:relative;display:flex;align-items:center;padding:30px 20px}.summary-block:after{content:\"\";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border:1px solid #FFF;pointer-events:none;border-radius:15px}@media only screen and (min-width: 960px) and (max-width: 1279px){.summary-block{width:calc(50% - 15px)}}@media only screen and (max-width: 599px){.summary-block{width:calc(100%);margin:7px 0}}\n"]
7391
+ },] }
7392
+ ];
7393
+ TransactionHeaderBlockComponent.ctorParameters = () => [
7394
+ { type: TransactionService }
7395
+ ];
7396
+ TransactionHeaderBlockComponent.propDecorators = {
7397
+ relationPopup: [{ type: ViewChild, args: [TransactionRelationEditComponent, { static: true },] }],
7398
+ canPlanDelivery: [{ type: Input }],
7399
+ planningRequestButtonClick: [{ type: Output }]
7400
+ };
7401
+
7402
+ class TransactionServiceSummaryComponent extends TransactionBaseComponent {
7403
+ constructor(service, iconCacheService) {
7404
+ super(service);
7405
+ this.service = service;
7406
+ this.iconCacheService = iconCacheService;
7407
+ this.iconWrench = CoreComponentsIcon.Wrench;
7408
+ }
7409
+ }
7410
+ TransactionServiceSummaryComponent.decorators = [
7411
+ { type: Component, args: [{
7412
+ // eslint-disable-next-line @angular-eslint/component-selector
7413
+ selector: "transaction-service-info",
7414
+ template: `
7415
+ <transaction-summary-block
7416
+ [hideAvatar]="true"
7417
+ [class.disabled]="!isNew"
7418
+ label="SERVICE"
7419
+ [icon]="iconWrench"
7420
+ headerLabel="SERVICE_NUMBER"
7421
+ [headerValue]="transactionInfo?.transactionNr"
7422
+ subHeaderLabel="SERVICE_REQUEST_DATE"
7423
+ [subHeaderValue]="transactionInfo?.transactionDate | date:'shortDate'"
7424
+ ></transaction-summary-block>
7425
+ `
7426
+ },] }
7427
+ ];
7428
+ TransactionServiceSummaryComponent.ctorParameters = () => [
7429
+ { type: TransactionService },
7430
+ { type: IconCacheService }
7431
+ ];
7432
+ TransactionServiceSummaryComponent.propDecorators = {
7433
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }]
7434
+ };
7435
+
7436
+ class TransactionSummaryBlockComponent {
7437
+ constructor() {
7438
+ this.Icon = CoreComponentsIcon;
7439
+ this.hideAvatar = false;
7440
+ this.label = "";
7441
+ this.headerLabel = "";
7442
+ this.subHeaderLabel = "";
7443
+ }
7444
+ ngOnDestroy() {
7445
+ this.subHeaderTemplate = undefined;
7446
+ }
7447
+ }
7448
+ TransactionSummaryBlockComponent.decorators = [
7449
+ { type: Component, args: [{
7450
+ // eslint-disable-next-line @angular-eslint/component-selector
7451
+ selector: "transaction-summary-block",
7452
+ template: `
7453
+ <div class="block-wrapper">
7454
+ <div *ngIf="hideAvatar" class="icon-wrapper">
7455
+ <icon *ngIf="icon" [icon]="icon" class="dark"></icon>
7456
+ <image-display *ngIf="!icon" [model]="image"></image-display>
7457
+ </div>
7458
+ <div class="content-wrapper">
7459
+ <div class="value-block">
7460
+ <div class="header-label" [textContent]="headerLabel | localize"></div>
7461
+ <div class="header" [textContent]="headerValue"></div>
7462
+ </div>
7463
+ <div class="value-block">
7464
+ <div class="subheader-label" [textContent]="subHeaderLabel | localize"></div>
7465
+ <ng-container *ngIf="subHeaderTemplate" [templateWrapper]="subHeaderTemplate"></ng-container>
7466
+ <div *ngIf="!subHeaderTemplate" class="subheader" [textContent]="subHeaderValue"></div>
7467
+ </div>
7468
+ </div>
7469
+ </div>
7470
+ `,
7471
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{width:368px;min-height:130px;height:auto;display:flex;flex-direction:column;margin-top:1px;margin-left:1px;padding:30px 20px}:host .content-wrapper .value-block{margin-bottom:10px}:host .content-wrapper .value-block ::ng-deep .planning-wrapper{justify-content:flex-start}:host .content-wrapper .value-block ::ng-deep .planning-wrapper arrow-link{margin-right:10px}:host .disabled-indicator{position:absolute;top:0;left:0;display:none}:host.disabled .disabled-indicator{display:block}:host ::ng-deep image-display{height:60px;width:60px;flex-shrink:0}:host ::ng-deep image-display span{display:none}:host .icon-wrapper{display:flex;flex-shrink:0;align-items:center;justify-content:center;background:#F8FBFA;height:60px;width:60px;border-radius:50%;border:1px solid #DCE4EA;overflow:hidden}:host .icon-wrapper ::ng-deep icon{height:60px!important;width:60px!important;flex-shrink:0}:host .title{font-size:13px;color:#22313c}:host .block-wrapper{position:relative;display:flex;align-items:center}:host .border{border-radius:3px;padding:15px;background:white;border:1px solid #DCE4EA}:host .content-wrapper{display:flex;flex-direction:column;justify-content:center;margin-left:10px;min-height:60px;height:auto;width:100%}:host .header-label,:host .subheader-label{font-size:11px;line-height:13px;color:#5b6875}:host .header,:host .subheader{font-size:13px;font-weight:bold;color:#22313c}\n"]
7472
+ },] }
7473
+ ];
7474
+ TransactionSummaryBlockComponent.ctorParameters = () => [];
7475
+ TransactionSummaryBlockComponent.propDecorators = {
7476
+ hideAvatar: [{ type: Input }],
7477
+ label: [{ type: Input }],
7478
+ icon: [{ type: Input }],
7479
+ image: [{ type: Input }],
7480
+ headerLabel: [{ type: Input }],
7481
+ headerValue: [{ type: Input }],
7482
+ subHeaderLabel: [{ type: Input }],
7483
+ subHeaderValue: [{ type: Input }],
7484
+ subHeaderTemplate: [{ type: ContentChild, args: ["subHeaderTemplate", { static: false },] }]
7485
+ };
7486
+
7487
+ class TransactionServiceStatusComponent extends TransactionBaseComponent {
7488
+ constructor(service) {
7489
+ super(service);
7490
+ this.service = service;
7491
+ this.iconPin = CoreComponentsIcon.Pin;
7492
+ }
7493
+ get serviceStatus() {
7494
+ // TODO: transaction.serviceStatus
7495
+ return "serviceStatus";
7496
+ }
7497
+ }
7498
+ TransactionServiceStatusComponent.decorators = [
7499
+ { type: Component, args: [{
7500
+ // eslint-disable-next-line @angular-eslint/component-selector
7501
+ selector: "transaction-service-status",
7502
+ template: `
7503
+ <transaction-summary-block
7504
+ [class.disabled]="!isNew"
7505
+ label="STATUS"
7506
+ [icon]="iconPin"
7507
+ headerLabel="SERVICE_STATE"
7508
+ [headerValue]="serviceStatus"
7509
+ ></transaction-summary-block>
7510
+ `
7511
+ },] }
7512
+ ];
7513
+ TransactionServiceStatusComponent.ctorParameters = () => [
7514
+ { type: TransactionService }
7515
+ ];
7516
+ TransactionServiceStatusComponent.propDecorators = {
7517
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }]
7518
+ };
7519
+
7520
+ class TransactionOrderSummaryComponent extends TransactionBaseComponent {
7521
+ constructor(service) {
7522
+ super(service);
7523
+ this.service = service;
7524
+ this.iconOrder = CoreComponentsIcon.Order;
7525
+ }
7526
+ get sourceTransactionNr() {
7527
+ // TODO: transaction.sourceTransactionNr
7528
+ return 0;
7529
+ }
7530
+ get sourceTransactionDate() {
7531
+ // TODO: transaction.sourceTransactionDate
7532
+ return new Date();
7533
+ }
7534
+ }
7535
+ TransactionOrderSummaryComponent.decorators = [
7536
+ { type: Component, args: [{
7537
+ // eslint-disable-next-line @angular-eslint/component-selector
7538
+ selector: "transaction-order-info",
7539
+ template: `
7540
+ <transaction-summary-block
7541
+ [class.disabled]="!isNew"
7542
+ label="ORDER_INFO"
7543
+ [icon]="iconOrder"
7544
+ headerLabel="ORDER_NUMBER"
7545
+ [headerValue]="isService ? sourceTransactionNr : transactionInfo?.transactionNr"
7546
+ subHeaderLabel="ORDER_DATE"
7547
+ [subHeaderValue]="(isService ? sourceTransactionDate : this.transactionInfo?.transactionDate) | date:'shortDate'"
7548
+ ></transaction-summary-block>
7549
+ `
7550
+ },] }
7551
+ ];
7552
+ TransactionOrderSummaryComponent.ctorParameters = () => [
7553
+ { type: TransactionService }
7554
+ ];
7555
+ TransactionOrderSummaryComponent.propDecorators = {
7556
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }]
7557
+ };
7558
+
7559
+ class TransactionPaymentInfoComponent extends TransactionBaseComponent {
7560
+ constructor(service) {
7561
+ super(service);
7562
+ this.service = service;
7563
+ this.euro = CoreComponentsIcon.Information;
7564
+ }
7565
+ }
7566
+ TransactionPaymentInfoComponent.decorators = [
7567
+ { type: Component, args: [{
7568
+ // eslint-disable-next-line @angular-eslint/component-selector
7569
+ selector: "transaction-payment-info",
7570
+ template: `
7571
+ <transaction-summary-block
7572
+ [class.disabled]="!isNew"
7573
+ label="PAYMENT"
7574
+ [icon]="euro"
7575
+ headerLabel="TOTAL_AMOUNT"
7576
+ [headerValue]="transactionTotal?.netAmount | coCurrency"
7577
+ subHeaderLabel="PAID_DOWN2"
7578
+ [subHeaderValue]="transactionTotal?.transactionDiscountAmount | coCurrency"
7579
+ ></transaction-summary-block>
7580
+ `
7581
+ },] }
7582
+ ];
7583
+ TransactionPaymentInfoComponent.ctorParameters = () => [
7584
+ { type: TransactionService }
7585
+ ];
7586
+ TransactionPaymentInfoComponent.propDecorators = {
7587
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }]
7588
+ };
7589
+
7590
+ class TransactionArticleSummaryComponent extends TransactionBaseComponent {
7591
+ constructor(service) {
7592
+ super(service);
7593
+ this.service = service;
7594
+ this.imageDataUri = "";
7595
+ }
7596
+ get sourceArticleDescription() {
7597
+ // TODO: transaction.sourceArticleDescription
7598
+ return "sourceArticleDescription";
7599
+ }
7600
+ get sourceArticleNr() {
7601
+ // TODO: transaction.sourceArticleNr
7602
+ return "sourceArticleNr";
7603
+ }
7604
+ _getArticleImage() {
7605
+ return __awaiter(this, void 0, void 0, function* () {
7606
+ // TODO: Add to TransactionAPI?
7607
+ // if (this.transaction.sourceGoodId) {
7608
+ // this.imageDataUri =
7609
+ // (await this._articleDalRepo.getThumbnailImageContentTableGoods(
7610
+ // this.transaction.sourceGoodId + "", DocumentPublication.None, false, true));
7611
+ // }
7612
+ });
7613
+ }
7614
+ transactionSet() {
7615
+ this._getArticleImage();
7616
+ }
7617
+ }
7618
+ TransactionArticleSummaryComponent.decorators = [
7619
+ { type: Component, args: [{
7620
+ // eslint-disable-next-line @angular-eslint/component-selector
7621
+ selector: "transaction-article-info",
7622
+ template: `
7623
+ <transaction-summary-block
7624
+ [class.disabled]="!isNew"
7625
+ headerLabel="ARTICLE_DESCRIPTION"
7626
+ [image]="imageDataUri"
7627
+ [headerValue]="sourceArticleDescription"
7628
+ subHeaderLabel="ARTICLE_NR"
7629
+ [subHeaderValue]="sourceArticleNr"
7630
+ ></transaction-summary-block>
7631
+ `
7632
+ },] }
7633
+ ];
7634
+ TransactionArticleSummaryComponent.ctorParameters = () => [
7635
+ { type: TransactionService }
7636
+ ];
7637
+ TransactionArticleSummaryComponent.propDecorators = {
7638
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }]
7639
+ };
7640
+
7641
+ class TransactionDeliverySummaryComponent extends TransactionBaseComponent {
7642
+ constructor(service) {
7643
+ super(service);
7644
+ this.service = service;
7645
+ this.deliveryTruck = CoreComponentsIcon.DeliveryTruck;
7646
+ this.calendarRoundOpen = CoreComponentsIcon.CalendarRoundOpen;
7647
+ this.deliveryMethodDescription = "";
7648
+ this.canPlanDelivery = false;
7649
+ this.planningRequestButtonClick = new EventEmitter();
7650
+ }
7651
+ transactionSet() {
7652
+ return __awaiter(this, void 0, void 0, function* () {
7653
+ // TODO: move call to TransactionAPI?
7654
+ //this.deliveryMethodDescription = await this._lookupService.lookup(DeliveryMethod, this.transaction.deliveryMethod);
7655
+ });
7656
+ }
7657
+ }
7658
+ TransactionDeliverySummaryComponent.decorators = [
7659
+ { type: Component, args: [{
7660
+ // eslint-disable-next-line @angular-eslint/component-selector
7661
+ selector: "transaction-delivery-summary",
7662
+ template: `
7663
+ <transaction-summary-block
7664
+ label="DELIVERY"
7665
+ [icon]="deliveryTruck"
7666
+ headerLabel="DELIVERY_METHOD2"
7667
+ [headerValue]="deliveryMethodDescription"
7668
+ [subHeaderLabel]="transactionInfo?.preferredDeliveryDate ? 'DELIVERY_DATE' : !canPlanDelivery ? 'EXPECTED_DELIVERY_WEEK' : 'EXPECTED_DELIVERY'"
7669
+ [subHeaderValue]="transactionInfo?.preferredDeliveryDate ? (transactionInfo?.deliveryDate | date:'shortDate') : 'WEEK' | localize | append:(' ') | append:(transactionInfo?.deliveryDate | date:'w')">
7670
+ <ng-template #subHeaderTemplate *ngIf="canPlanDelivery">
7671
+ <div class="planning-wrapper">
7672
+ <span class="subheader" *ngIf="transactionInfo?.preferredDeliveryDate"
7673
+ [textContent]="(transactionInfo?.preferredDeliveryDate | date:'shortDate') + ', ' + transactionInfo?.preferredDeliveryDate | date: 'time' "></span>
7674
+ <!-- <arrow-link *ngIf="!transactionInfo.preferredDeliveryDate"-->
7675
+ <!-- label="PLAN_YOUR_DELIVERY"-->
7676
+ <!-- (click)="planningRequestButtonClick.emit($event)"-->
7677
+ <!-- ></arrow-link>-->
7678
+ <icon [icon]="calendarRoundOpen" (click)="planningRequestButtonClick.emit($event)"></icon>
7679
+ </div>
7680
+ </ng-template>
7681
+ </transaction-summary-block>
7682
+ `,
7683
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host .planning-wrapper{display:flex;justify-content:space-between;align-items:center;flex-direction:row;color:#2b60a7;margin-top:-10px;font-size:13px}:host .planning-wrapper ::ng-deep icon{cursor:pointer}:host .planning-wrapper ::ng-deep icon [fill]{fill:#2b60a7}\n"]
7684
+ },] }
7685
+ ];
7686
+ TransactionDeliverySummaryComponent.ctorParameters = () => [
7687
+ { type: TransactionService }
7688
+ ];
7689
+ TransactionDeliverySummaryComponent.propDecorators = {
7690
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }],
7691
+ canPlanDelivery: [{ type: Input }],
7692
+ planningRequestButtonClick: [{ type: Output }]
7693
+ };
7694
+
7695
+ class TransactionProductContractSummaryComponent extends TransactionBaseComponent {
7696
+ constructor(service) {
7697
+ super(service);
7698
+ this.service = service;
7699
+ }
7700
+ productSet() {
7701
+ // TODO: add to TransactionAPI?
7702
+ if (!this.product.imageAsDataUri) {
7703
+ // this._generalRepo.getDocument(this.product.image.documentId).then((doc: CoDocument) => {
7704
+ // this.product.imageAsDataUri = doc.thumbnailBodyAsDataUri;
7705
+ // });
7706
+ }
7707
+ }
7708
+ }
7709
+ TransactionProductContractSummaryComponent.decorators = [
7710
+ { type: Component, args: [{
7711
+ // eslint-disable-next-line @angular-eslint/component-selector
7712
+ selector: "transaction-product-contract-summary",
7713
+ template: `
7714
+ <transaction-summary-block
7715
+ [class.disabled]="!isNew"
7716
+ label="CONTRACT"
7717
+ [image]="product?.imageAsDataUri"
7718
+ headerLabel="PRODUCT"
7719
+ [headerValue]="product?.product"
7720
+ subHeaderLabel="REFERENCE"
7721
+ [subHeaderValue]="product?.productReference"
7722
+ ></transaction-summary-block>
7723
+ `
7724
+ },] }
7725
+ ];
7726
+ TransactionProductContractSummaryComponent.ctorParameters = () => [
7727
+ { type: TransactionService }
7728
+ ];
7729
+
7730
+ class TransactionProductSummaryComponent extends TransactionBaseComponent {
7731
+ constructor(service) {
7732
+ super(service);
7733
+ this.service = service;
7734
+ }
7735
+ productSet() {
7736
+ // TODO: Add to TransactionAPI?
7737
+ if (this.product && !this.product.imageAsDataUri && this.product.image && this.product.image.documentId) {
7738
+ // this._generalRepo.getDocument(this.product.image.documentId).then((doc: CoDocument) => {
7739
+ // this.product.imageAsDataUri = doc.thumbnailBodyAsDataUri;
7740
+ // });
7741
+ }
7742
+ }
7743
+ }
7744
+ TransactionProductSummaryComponent.decorators = [
7745
+ { type: Component, args: [{
7746
+ // eslint-disable-next-line @angular-eslint/component-selector
7747
+ selector: "transaction-product-summary",
7748
+ template: `
7749
+ <transaction-summary-block
7750
+ [class.disabled]="!isNew"
7751
+ label="PRODUCT"
7752
+ [image]="product?.imageAsDataUri"
7753
+ headerLabel="PRODUCT_TYPE"
7754
+ [headerValue]="product?.productReference"
7755
+ subHeaderLabel="PRODUCT"
7756
+ [subHeaderValue]="product?.product"
7757
+ ></transaction-summary-block>
7758
+ `
7759
+ },] }
7760
+ ];
7761
+ TransactionProductSummaryComponent.ctorParameters = () => [
7762
+ { type: TransactionService }
7763
+ ];
7764
+ TransactionProductSummaryComponent.propDecorators = {
7765
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }]
7766
+ };
7767
+
7768
+ class TemplateWrapperDirective {
7769
+ constructor(viewContainer) {
7770
+ this.viewContainer = viewContainer;
7771
+ this.templateWrapper = null;
7772
+ this.templateWrapperContext = null;
7773
+ }
7774
+ ngOnChanges(changes) {
7775
+ const recreateView = this._shouldRecreateView(changes);
7776
+ if (recreateView) {
7777
+ if (this._viewRef) {
7778
+ this.viewContainer.remove(this.viewContainer.indexOf(this._viewRef));
7779
+ }
7780
+ if (this.templateWrapper) {
7781
+ this._viewRef = this.viewContainer.createEmbeddedView(this.templateWrapper, this.templateWrapperContext);
7782
+ }
7783
+ }
7784
+ else {
7785
+ if (this._viewRef && this.templateWrapperContext) {
7786
+ this._updateExistingContext(this.templateWrapperContext);
7787
+ }
7788
+ }
7789
+ }
7790
+ ngOnDestroy() {
7791
+ if (this._viewRef) {
7792
+ this.viewContainer.remove(this.viewContainer.indexOf(this._viewRef));
7793
+ this._viewRef = undefined;
7794
+ }
7795
+ this.templateWrapper = undefined;
7796
+ }
7797
+ _shouldRecreateView(changes) {
7798
+ const ctxChange = changes["templateWrapperContext"];
7799
+ return !!changes["templateWrapper"] || (ctxChange && this._hasContextShapeChanged(ctxChange));
7800
+ }
7801
+ _hasContextShapeChanged(ctxChange) {
7802
+ const prevCtxKeys = Object.keys(ctxChange.previousValue || {});
7803
+ const currCtxKeys = Object.keys(ctxChange.currentValue || {});
7804
+ if (prevCtxKeys.length === currCtxKeys.length) {
7805
+ for (const propName of currCtxKeys) {
7806
+ if (prevCtxKeys.indexOf(propName) === -1) {
7807
+ return true;
7808
+ }
7809
+ }
7810
+ return false;
7811
+ }
7812
+ else {
7813
+ return true;
7814
+ }
7815
+ }
7816
+ _updateExistingContext(ctx) {
7817
+ for (const propName of Object.keys(ctx)) {
7818
+ this._viewRef.context[propName] = this.templateWrapperContext[propName];
7819
+ }
7820
+ }
7821
+ }
7822
+ TemplateWrapperDirective.decorators = [
7823
+ { type: Directive, args: [{
7824
+ // eslint-disable-next-line @angular-eslint/directive-selector
7825
+ selector: "[templateWrapper]"
7826
+ },] }
7827
+ ];
7828
+ TemplateWrapperDirective.ctorParameters = () => [
7829
+ { type: ViewContainerRef }
7830
+ ];
7831
+ TemplateWrapperDirective.propDecorators = {
7832
+ templateWrapper: [{ type: Input }],
7833
+ templateWrapperContext: [{ type: Input }]
7834
+ };
7835
+
7836
+ class DefaultOkCancelButtonsComponent {
7837
+ constructor() {
7838
+ this.hideCancel = false;
7839
+ this.hideOk = false;
7840
+ this.okLabel = "OK";
7841
+ // only emits when ok button was not disabled when it was clicked
7842
+ this.okClick = new EventEmitter();
7843
+ this.cancelClick = new EventEmitter();
7844
+ }
7845
+ onOkClick(event) {
7846
+ if (this.okButtonComp && !this.okButtonComp.disabled) {
7847
+ this.okClick.emit(event);
7848
+ }
7849
+ }
7850
+ }
7851
+ DefaultOkCancelButtonsComponent.decorators = [
7852
+ { type: Component, args: [{
7853
+ // eslint-disable-next-line @angular-eslint/component-selector
7854
+ selector: "default-ok-cancel-buttons",
7855
+ template: `
7856
+ <co-button *ngIf="!hideOk" [label]="okLabel" [disabled]="okDisabled" class="ok" #okButton (click)="onOkClick($event)"></co-button>
7857
+ <co-button *ngIf="!hideCancel" label="CANCEL" (click)="cancelClick.emit($event)"></co-button>
7858
+ <ng-content></ng-content>
7859
+ `,
7860
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,:host{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.margin-popup:host{margin-top:20px}.margin-popup:host{margin-bottom:20px}.margin-popup:host{margin-left:20px}.margin-popup:host{margin-right:20px}.margin-top:host{margin-top:11px}:host button-colijn:not(:last-child){margin-right:11px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host.justify-center{justify-content:center}\n"]
7861
+ },] }
7862
+ ];
7863
+ DefaultOkCancelButtonsComponent.ctorParameters = () => [];
7864
+ DefaultOkCancelButtonsComponent.propDecorators = {
7865
+ okDisabled: [{ type: Input }],
7866
+ hideCancel: [{ type: Input }],
7867
+ hideOk: [{ type: Input }],
7868
+ okLabel: [{ type: Input }],
7869
+ okClick: [{ type: Output }],
7870
+ cancelClick: [{ type: Output }],
7871
+ okButtonComp: [{ type: ViewChild, args: ["okButton",] }]
7872
+ };
7873
+
7874
+ class WarehouseComponent {
7875
+ constructor(service, _dictionaryService) {
7876
+ this.service = service;
7877
+ this._dictionaryService = _dictionaryService;
7878
+ this.message = "";
7879
+ this.okClick = new EventEmitter();
7880
+ this.cancelClick = new EventEmitter();
7881
+ this.commissionCodes = [];
7882
+ this.commissionFields = { text: "description", value: "code" };
7883
+ this.transactionArticleWarehouses = [];
7884
+ this.columns = [];
7885
+ this._okOrCancelClick = false;
7886
+ this.columns.push({ field: "warehouseNr", headerText: this._dictionaryService.get("WAREHOUSE"), allowFiltering: false }, { field: "warehouseDesc", headerText: this._dictionaryService.get("DESCRIPTION") }, { field: "stockAmount", headerText: this._dictionaryService.get("STOCK") });
7887
+ }
7888
+ ngOnInit() {
7889
+ return __awaiter(this, void 0, void 0, function* () {
7890
+ this.commissionCodes = yield this.service.getCommissionCodes("NL");
7891
+ });
7892
+ }
7893
+ ngOnDestroy() {
7894
+ this.warehouseDialog.close();
7895
+ }
7896
+ showStockManager(line) {
7897
+ return __awaiter(this, void 0, void 0, function* () {
7898
+ this.selectedWarehouseNr = line.warehouseNumber;
7899
+ this.amount = line.amount;
7900
+ this.commissionCode = line.commissionCode;
7901
+ this.show(line.articleNumber);
7902
+ });
7903
+ }
7904
+ hide() {
7905
+ return __awaiter(this, void 0, void 0, function* () {
7906
+ if (this._okOrCancelClick) {
7907
+ this._okOrCancelClick = false;
7908
+ return;
7909
+ }
7910
+ yield this.onStockManagerCancelClick();
7911
+ });
7912
+ }
7913
+ show(articleNr) {
7914
+ this._reloadDataCollections(articleNr).then();
7915
+ this.warehouseGrid.selectRow(this.selectedWarehouseNr);
7916
+ this.warehouseDialog.targetElement = null;
7917
+ this.warehouseDialog.open();
7918
+ }
7919
+ handleRowsSelected(rows) {
7920
+ this.selectedWarehouseNr = (rows.find(x => x !== undefined)).warehouseNr;
7921
+ }
7922
+ onStockManagerCancelClick() {
7923
+ return __awaiter(this, void 0, void 0, function* () {
7924
+ this._okOrCancelClick = true;
7925
+ this.warehouseDialog.close();
7926
+ this.cancelClick.emit();
7927
+ });
7928
+ }
7929
+ onStockManagerOkClick() {
7930
+ return __awaiter(this, void 0, void 0, function* () {
7931
+ this._okOrCancelClick = true;
7932
+ this.warehouseDialog.close();
7933
+ this.okClick.emit();
7934
+ });
7935
+ }
7936
+ _reloadDataCollections(articleNr) {
7937
+ return __awaiter(this, void 0, void 0, function* () {
7938
+ const goodId = yield this.service.getGoodIdFromArticleNr(articleNr);
7939
+ this.transactionArticleWarehouses = yield this.service.getTransactionArticleWarehouses(goodId);
7940
+ });
7941
+ }
7942
+ }
7943
+ WarehouseComponent.decorators = [
7944
+ { type: Component, args: [{
7945
+ // eslint-disable-next-line @angular-eslint/component-selector
7946
+ selector: "warehouse",
7947
+ template: `
7948
+ <co-dialog #warehouseDialog
7949
+ (closeClick)="hide()"
7950
+ (overlayClick)="onStockManagerCancelClick()"
7951
+ >
7952
+ <ng-container header>{{ 'STOCK_NOTIFICATION' | localize }}</ng-container>
7953
+
7954
+ <ng-container content>
7955
+ <co-form>
7956
+ <div class="form-content">
7957
+ <span *ngIf="message" class="message-field" [textContent]="message | localize"></span>
7958
+ <div class="commission-fields" fxLayout="row">
7959
+ <co-input-number-picker class="horizontal" [(model)]="amount" [min]="0" decimals="3"></co-input-number-picker>
7960
+ <co-input-combo-box [(model)]="commissionCode"
7961
+ [source]="commissionCodes"
7962
+ [fields]="commissionFields"
7963
+ [placeholder]="'COMMISSION_CODE' | localize"
7964
+ [required]="true"
7965
+ ></co-input-combo-box>
7966
+ </div>
7967
+ <div>
7968
+ <co-grid #warehouseGrid
7969
+ [data]="transactionArticleWarehouses"
7970
+ [columns]="columns"
7971
+ [pagingEnabled]="'true'"
7972
+ [maxNumberOfRows]="'10'"
7973
+ (rowsSelected)="handleRowsSelected($event)"
7974
+ ></co-grid>
7975
+ </div>
7976
+ </div>
7977
+ </co-form>
7978
+ </ng-container>
7979
+
7980
+ <ng-container footer>
7981
+ <div class="flex-center">
7982
+ <co-button [label]="'OK' | localize" (click)="onStockManagerOkClick()"></co-button>
7983
+ <co-button [label]="'CANCEL' | localize" (click)="onStockManagerCancelClick()"></co-button>
7984
+ </div>
7985
+ </ng-container>
7986
+ </co-dialog>
7987
+ `,
7988
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,.warehouse-line-container{display:flex}.flex-center,.warehouse-line-container{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field,.commission-fields{margin-left:11px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}::ng-deep #warehouseDialog{align-items:center;max-height:100%}::ng-deep #warehouseDialog ::ng-deep co-form{height:100%;width:500px}::ng-deep #warehouseDialog ::ng-deep .form-content{height:calc(100% - 80px);width:100%}::ng-deep #warehouseDialog ::ng-deep .form-content .message-field{height:20px;word-wrap:break-word;white-space:normal}co-button:not(:last-child){margin-right:10px}.commission-fields{justify-content:space-between;margin:10px 0}.warehouse-description-item{width:15rem}.warehouse-nr-item{width:5rem}co-input-number-picker co-button{max-width:20px}\n"]
7989
+ },] }
7990
+ ];
7991
+ WarehouseComponent.ctorParameters = () => [
7992
+ { type: TransactionService },
7993
+ { type: DictionaryService }
7994
+ ];
7995
+ WarehouseComponent.propDecorators = {
7996
+ warehouseDialog: [{ type: ViewChild, args: ["warehouseDialog",] }],
7997
+ warehouseGrid: [{ type: ViewChild, args: ["warehouseGrid",] }],
7998
+ message: [{ type: Input }],
7999
+ okClick: [{ type: Output }],
8000
+ cancelClick: [{ type: Output }]
8001
+ };
8002
+
8003
+ class IoneServiceOrderModule {
8004
+ }
8005
+ IoneServiceOrderModule.decorators = [
8006
+ { type: NgModule, args: [{
8007
+ imports: [
8008
+ IconModule,
8009
+ InputTextModule,
8010
+ InputCheckboxModule,
8011
+ InputRadioButtonModule,
8012
+ FormModule,
8013
+ InputComboBoxModule,
8014
+ InputDatePickerModule,
8015
+ InputNumberPickerModule,
8016
+ CoDialogModule,
8017
+ CoDialogPromptModule,
8018
+ ButtonModule,
8019
+ FlexModule,
8020
+ MultiSelectListModule,
8021
+ DropDownModule,
8022
+ PopupModule.forRoot(),
8023
+ CoSidebarModule,
8024
+ CoGridModule,
8025
+ CoreModule,
8026
+ ChipListModule,
8027
+ DropDownButtonModule,
8028
+ CheckBoxModule,
8029
+ DropDownListModule,
8030
+ IoneShoppingCartModule,
8031
+ TabModule,
8032
+ CommonModule,
8033
+ // RichTextEditorModule
8034
+ ],
8035
+ declarations: [
8036
+ TemplateWrapperDirective,
8037
+ DefaultOkCancelButtonsComponent,
8038
+ IoneServiceOrderComponent,
8039
+ ServiceOrderComponent,
8040
+ TransactionOrderTotalsComponent,
8041
+ TransactionOrderLineViewComponent,
8042
+ TransactionOrderLinesComponent,
8043
+ TransactionRelationAddressComponent,
8044
+ TransactionArticleTextComponent,
8045
+ TransactionSidebarRightComponent,
8046
+ TransactionLineAccordionComponent,
8047
+ TransactionHeaderBlockComponent,
8048
+ TransactionServiceSummaryComponent,
8049
+ TransactionSummaryBlockComponent,
8050
+ TransactionServiceStatusComponent,
8051
+ TransactionOrderSummaryComponent,
8052
+ TransactionPaymentInfoComponent,
8053
+ TransactionRelationEditComponent,
8054
+ TransactionArticleSummaryComponent,
8055
+ TransactionDeliverySummaryComponent,
8056
+ TransactionProductContractSummaryComponent,
8057
+ TransactionProductSummaryComponent,
8058
+ TransactionManagerComponent,
8059
+ WarehouseComponent,
8060
+ ],
8061
+ providers: [
8062
+ DictionaryService,
8063
+ TransactionService,
8064
+ OptionsService,
8065
+ ],
8066
+ entryComponents: [
8067
+ IoneServiceOrderComponent
8068
+ ],
8069
+ exports: [IoneServiceOrderComponent],
8070
+ bootstrap: [IoneServiceOrderComponent]
8071
+ },] }
8072
+ ];
8073
+
5499
8074
  //export * from "./app/component/ione-transaction.module";
5500
8075
 
5501
8076
  /**
5502
8077
  * Generated bundle index. Do not edit.
5503
8078
  */
5504
8079
 
5505
- export { IoneCheckoutComponent, IoneCheckoutModule, IoneShoppingCartComponent, IoneShoppingCartModule, RetailTransactionCheckoutComponent as ɵa, CheckoutComponent as ɵb, ShoppingCartManagerComponent as ɵba, ShoppingCartComponent as ɵbb, ShoppingCartLineComponent as ɵbc, StockStatusIndicatorComponent as ɵbd, CharacteristicAnswerComponent as ɵbe, CheckoutOverviewComponent as ɵc, CheckoutOverviewBlockComponent as ɵd, CheckoutOverviewRelationEditComponent as ɵe, TransactionService as ɵf, IOneConnectorAdapterService as ɵg, CheckoutOverviewDeliveryEditComponent as ɵh, DictionaryService as ɵi, CheckoutLoginComponent as ɵj, OptionsService as ɵk, TransactionEventService as ɵl, CoreModule as ɵm, AppendPipe as ɵn, DeliveryTimePipe as ɵo, DateDurationPipe as ɵp, LocalizePipe as ɵq, CoCurrencyPipe as ɵr, SafeStylePipe as ɵs, ImageDisplayComponent as ɵt, NoImageDisplayComponent as ɵu, IconComponent as ɵv, CheckoutOverviewRelationAddressComponent as ɵw, CheckoutOverviewDeliveryAddressComponent as ɵx, CheckOutRelationSuggestionsListComponent as ɵy, CheckOutRelationSuggestionsListItemComponent as ɵz };
8080
+ export { IoneCheckoutComponent, IoneCheckoutModule, IoneServiceOrderComponent, IoneServiceOrderModule, IoneShoppingCartComponent, IoneShoppingCartModule, RetailTransactionCheckoutComponent as ɵa, CheckoutComponent as ɵb, ShoppingCartManagerComponent as ɵba, ShoppingCartComponent as ɵbb, ShoppingCartLineComponent as ɵbc, StockStatusIndicatorComponent as ɵbd, CharacteristicAnswerComponent as ɵbe, TemplateWrapperDirective as ɵbf, DefaultOkCancelButtonsComponent as ɵbg, ServiceOrderComponent as ɵbh, TransactionBaseComponent as ɵbi, TransactionArticleTextComponent as ɵbj, TransactionManagerComponent as ɵbk, TransactionOrderTotalsComponent as ɵbl, TransactionOrderLineViewComponent as ɵbm, TransactionOrderLinesComponent as ɵbn, TransactionRelationAddressComponent as ɵbo, TransactionSidebarRightComponent as ɵbp, TransactionLineAccordionComponent as ɵbq, TransactionHeaderBlockComponent as ɵbr, TransactionRelationEditComponent as ɵbs, TransactionServiceSummaryComponent as ɵbt, TransactionSummaryBlockComponent as ɵbu, TransactionServiceStatusComponent as ɵbv, TransactionOrderSummaryComponent as ɵbw, TransactionPaymentInfoComponent as ɵbx, TransactionArticleSummaryComponent as ɵby, TransactionDeliverySummaryComponent as ɵbz, CheckoutOverviewComponent as ɵc, TransactionProductContractSummaryComponent as ɵca, TransactionProductSummaryComponent as ɵcb, WarehouseComponent as ɵcc, CheckoutOverviewBlockComponent as ɵd, CheckoutOverviewRelationEditComponent as ɵe, TransactionService as ɵf, IOneConnectorAdapterService as ɵg, CheckoutOverviewDeliveryEditComponent as ɵh, DictionaryService as ɵi, CheckoutLoginComponent as ɵj, OptionsService as ɵk, TransactionEventService as ɵl, CoreModule as ɵm, AppendPipe as ɵn, DeliveryTimePipe as ɵo, DateDurationPipe as ɵp, LocalizePipe as ɵq, CoCurrencyPipe as ɵr, SafeStylePipe as ɵs, ImageDisplayComponent as ɵt, NoImageDisplayComponent as ɵu, IconComponent as ɵv, CheckoutOverviewRelationAddressComponent as ɵw, CheckoutOverviewDeliveryAddressComponent as ɵx, CheckOutRelationSuggestionsListComponent as ɵy, CheckOutRelationSuggestionsListItemComponent as ɵz };
5506
8081
  //# sourceMappingURL=colijnit-transaction.js.map