@colijnit/transaction 12.0.2 → 12.1.0
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.
- package/app/component/core/base/default-ok-cancel-buttons.component.d.ts +13 -0
- package/app/component/core/base/transaction-base.component.d.ts +38 -0
- package/app/component/core/directive/template-wrapper.directive.d.ts +13 -0
- package/app/component/{shopping-cart → core}/stock-status-indicator/stock-status-indicator.component.d.ts +0 -0
- package/app/component/service-order/ione-service-order-module.d.ts +2 -0
- package/app/component/service-order/ione-service-order.component.d.ts +25 -0
- package/app/component/service-order/service-order.component.d.ts +48 -0
- package/app/component/service-order/summary/transaction-article-summary.component.d.ts +17 -0
- package/app/component/service-order/summary/transaction-delivery-summary.component.d.ts +20 -0
- package/app/component/service-order/summary/transaction-order-summary.component.d.ts +16 -0
- package/app/component/service-order/summary/transaction-payment-info.component.d.ts +14 -0
- package/app/component/service-order/summary/transaction-product-contract-summary.component.d.ts +7 -0
- package/app/component/service-order/summary/transaction-product-summary.component.d.ts +15 -0
- package/app/component/service-order/summary/transaction-service-status.component.d.ts +15 -0
- package/app/component/service-order/summary/transaction-service-summary.component.d.ts +15 -0
- package/app/component/service-order/summary/transaction-summary-block.component.d.ts +16 -0
- package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +24 -0
- package/app/component/service-order/transaction-header-block/transaction-header-block.component.d.ts +15 -0
- package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.d.ts +16 -0
- package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.d.ts +25 -0
- package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.d.ts +7 -0
- package/app/component/service-order/transaction-relation/transaction-relation-address.component.d.ts +22 -0
- package/app/component/service-order/transaction-relation/transaction-relation-edit.component.d.ts +29 -0
- package/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.d.ts +11 -0
- package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.d.ts +26 -0
- package/app/component/shopping-cart/ione-shopping-cart.component.d.ts +20 -0
- package/app/component/shopping-cart/shopping-cart/shopping-cart.component.d.ts +7 -2
- package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +7 -0
- package/app/service/ione-connector-adapter.service.d.ts +5 -1
- package/app/service/transaction-event.service.d.ts +29 -0
- package/app/service/transaction.service.d.ts +9 -2
- package/bundles/colijnit-transaction.umd.js +1930 -62
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +23 -1
- package/colijnit-transaction.metadata.json +1 -1
- package/enum/position-grid-row.enum.d.ts +4 -0
- package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +3 -3
- package/esm2015/app/component/checkout/ione-checkout.module.js +1 -3
- package/esm2015/app/component/common/icon/icon.component.js +2 -1
- package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +39 -0
- package/esm2015/app/component/core/base/transaction-base.component.js +121 -0
- package/esm2015/app/component/core/directive/template-wrapper.directive.js +69 -0
- package/esm2015/app/component/{shopping-cart → core}/stock-status-indicator/stock-status-indicator.component.js +1 -1
- package/esm2015/app/component/service-order/ione-service-order-module.js +103 -0
- package/esm2015/app/component/service-order/ione-service-order.component.js +98 -0
- package/esm2015/app/component/service-order/service-order.component.js +167 -0
- package/esm2015/app/component/service-order/summary/transaction-article-summary.component.js +55 -0
- package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +59 -0
- package/esm2015/app/component/service-order/summary/transaction-order-summary.component.js +43 -0
- package/esm2015/app/component/service-order/summary/transaction-payment-info.component.js +35 -0
- package/esm2015/app/component/service-order/summary/transaction-product-contract-summary.component.js +38 -0
- package/esm2015/app/component/service-order/summary/transaction-product-summary.component.js +41 -0
- package/esm2015/app/component/service-order/summary/transaction-service-status.component.js +37 -0
- package/esm2015/app/component/service-order/summary/transaction-service-summary.component.js +38 -0
- package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +53 -0
- package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +183 -0
- package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +83 -0
- package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +76 -0
- package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +71 -0
- package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +37 -0
- package/esm2015/app/component/service-order/transaction-relation/transaction-relation-address.component.js +116 -0
- package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +225 -0
- package/esm2015/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.js +172 -0
- package/esm2015/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.js +120 -0
- package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +52 -7
- package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +4 -6
- package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +42 -9
- package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +1 -1
- package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +63 -3
- package/esm2015/app/service/ione-connector-adapter.service.js +60 -8
- package/esm2015/app/service/transaction-event.service.js +9 -1
- package/esm2015/app/service/transaction.service.js +87 -19
- package/esm2015/assets/dictionary/text.properties.js +43 -3
- package/esm2015/colijnit-transaction.js +24 -2
- package/esm2015/enum/position-grid-row.enum.js +6 -0
- package/esm2015/public_api.js +3 -1
- package/fesm2015/colijnit-transaction.js +2309 -50
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/package.json +17 -17
- package/public_api.d.ts +2 -0
|
@@ -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';
|
|
@@ -51,8 +52,15 @@ import { DomSanitizer } from '@angular/platform-browser';
|
|
|
51
52
|
import { ResolvePendingLineReasonRequest } from '@colijnit/transactionapi/build/model/resolve-pending-reason-request.bo';
|
|
52
53
|
import { SortDirection } from '@colijnit/transactionapi/build/enum/sort-direction';
|
|
53
54
|
import { SortType } from '@colijnit/transactionapi/build/enum/sort-type.enum';
|
|
54
|
-
import { SortUtils } from '@colijnit/transactionapi/build/utils/sort-utils';
|
|
55
55
|
import { StockStatus } from '@colijnit/transactionapi/build/enum/refcode/stock-status.enum';
|
|
56
|
+
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
57
|
+
import { RelationRequest } from '@colijnit/transactionapi/build/model/relation-request';
|
|
58
|
+
import { DropDownButtonModule } from '@syncfusion/ej2-angular-splitbuttons';
|
|
59
|
+
import { ChipListModule, CheckBoxModule } from '@syncfusion/ej2-angular-buttons';
|
|
60
|
+
import { DropDownListModule } from '@syncfusion/ej2-angular-dropdowns';
|
|
61
|
+
import { Sidebar, Accordion } from '@syncfusion/ej2-navigations';
|
|
62
|
+
import { TabModule } from '@syncfusion/ej2-angular-navigations';
|
|
63
|
+
import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
|
|
56
64
|
|
|
57
65
|
class OptionsService {
|
|
58
66
|
constructor() {
|
|
@@ -805,9 +813,16 @@ class IOneConnectorAdapterService {
|
|
|
805
813
|
}
|
|
806
814
|
connect(options) {
|
|
807
815
|
return __awaiter(this, void 0, void 0, function* () {
|
|
808
|
-
this.options
|
|
809
|
-
|
|
810
|
-
|
|
816
|
+
if (this.options === undefined) {
|
|
817
|
+
this.options = options;
|
|
818
|
+
this.connector = new Transaction(options);
|
|
819
|
+
this.options.session = this.connector.session;
|
|
820
|
+
}
|
|
821
|
+
});
|
|
822
|
+
}
|
|
823
|
+
disconnect() {
|
|
824
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
825
|
+
this.options = undefined;
|
|
811
826
|
});
|
|
812
827
|
}
|
|
813
828
|
getArticleFullObject(goodId) {
|
|
@@ -953,6 +968,18 @@ class IOneConnectorAdapterService {
|
|
|
953
968
|
});
|
|
954
969
|
});
|
|
955
970
|
}
|
|
971
|
+
getTransactionById(transactionId) {
|
|
972
|
+
return new Promise((resolve, reject) => {
|
|
973
|
+
return this.connector.getTransactionById(transactionId).then((result) => {
|
|
974
|
+
if (result.validationResult && result.validationResult.success) {
|
|
975
|
+
resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
|
|
976
|
+
}
|
|
977
|
+
else {
|
|
978
|
+
reject(result.validationMessagesAsString);
|
|
979
|
+
}
|
|
980
|
+
});
|
|
981
|
+
});
|
|
982
|
+
}
|
|
956
983
|
saveTransaction(uuid) {
|
|
957
984
|
return new Promise((resolve, reject) => {
|
|
958
985
|
return this.connector.saveTransaction(uuid).then((result) => {
|
|
@@ -1113,7 +1140,35 @@ class IOneConnectorAdapterService {
|
|
|
1113
1140
|
return new Promise((resolve, reject) => {
|
|
1114
1141
|
return this.connector.getRelationListObjects(relationRequest).then((result) => {
|
|
1115
1142
|
if (result.validationResult && result.validationResult.success) {
|
|
1116
|
-
resolve(result.resultObjects);
|
|
1143
|
+
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(RelationListObject, result.resultObjects));
|
|
1144
|
+
}
|
|
1145
|
+
else {
|
|
1146
|
+
reject(result.validationMessagesAsString);
|
|
1147
|
+
}
|
|
1148
|
+
});
|
|
1149
|
+
});
|
|
1150
|
+
});
|
|
1151
|
+
}
|
|
1152
|
+
addTransactionLine(uuid, articleLine, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr) {
|
|
1153
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1154
|
+
return new Promise((resolve, reject) => {
|
|
1155
|
+
return this.connector.addTransactionLine(uuid, articleLine, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr).then((result) => {
|
|
1156
|
+
if (result.validationResult && result.validationResult.success) {
|
|
1157
|
+
resolve(this._boFactory.makeWithRawBackendData(LineOperationResponse, result.resultObject));
|
|
1158
|
+
}
|
|
1159
|
+
else {
|
|
1160
|
+
reject(result.validationMessagesAsString);
|
|
1161
|
+
}
|
|
1162
|
+
});
|
|
1163
|
+
});
|
|
1164
|
+
});
|
|
1165
|
+
}
|
|
1166
|
+
addTextLineToTransaction(uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr) {
|
|
1167
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1168
|
+
return new Promise((resolve, reject) => {
|
|
1169
|
+
return this.connector.addTextLineToTransaction(uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr).then((result) => {
|
|
1170
|
+
if (result.validationResult && result.validationResult.success) {
|
|
1171
|
+
resolve(this._boFactory.makeWithRawBackendData(LineOperationResponse, result.resultObject));
|
|
1117
1172
|
}
|
|
1118
1173
|
else {
|
|
1119
1174
|
reject(result.validationMessagesAsString);
|
|
@@ -1122,10 +1177,10 @@ class IOneConnectorAdapterService {
|
|
|
1122
1177
|
});
|
|
1123
1178
|
});
|
|
1124
1179
|
}
|
|
1125
|
-
|
|
1180
|
+
changeLineSequence(uuid, lineUuid, aboveLineNr, belowLineNr) {
|
|
1126
1181
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1127
1182
|
return new Promise((resolve, reject) => {
|
|
1128
|
-
return this.connector.
|
|
1183
|
+
return this.connector.changeLineSequence(uuid, lineUuid, aboveLineNr, belowLineNr).then((result) => {
|
|
1129
1184
|
if (result.validationResult && result.validationResult.success) {
|
|
1130
1185
|
resolve(this._boFactory.makeWithRawBackendData(LineOperationResponse, result.resultObject));
|
|
1131
1186
|
}
|
|
@@ -1249,8 +1304,11 @@ class IOneConnectorAdapterService {
|
|
|
1249
1304
|
});
|
|
1250
1305
|
}
|
|
1251
1306
|
}
|
|
1307
|
+
IOneConnectorAdapterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IOneConnectorAdapterService_Factory() { return new IOneConnectorAdapterService(); }, token: IOneConnectorAdapterService, providedIn: "root" });
|
|
1252
1308
|
IOneConnectorAdapterService.decorators = [
|
|
1253
|
-
{ type: Injectable
|
|
1309
|
+
{ type: Injectable, args: [{
|
|
1310
|
+
providedIn: "root"
|
|
1311
|
+
},] }
|
|
1254
1312
|
];
|
|
1255
1313
|
IOneConnectorAdapterService.ctorParameters = () => [];
|
|
1256
1314
|
|
|
@@ -1258,6 +1316,7 @@ class TransactionService {
|
|
|
1258
1316
|
constructor(_connector) {
|
|
1259
1317
|
this._connector = _connector;
|
|
1260
1318
|
this.transactionUpdated = new EventEmitter();
|
|
1319
|
+
this.transactionLoaded = new EventEmitter();
|
|
1261
1320
|
this.applicationUser = false;
|
|
1262
1321
|
this.articleAmount = 0;
|
|
1263
1322
|
this._currentLines = [];
|
|
@@ -1401,8 +1460,25 @@ class TransactionService {
|
|
|
1401
1460
|
return new Promise((resolve, reject) => {
|
|
1402
1461
|
this._connector.getTransactionByNrAndKind(kind, transactionNr)
|
|
1403
1462
|
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
1404
|
-
this._rememberCurrentTransaction(response);
|
|
1405
1463
|
if (response.isSuccess) {
|
|
1464
|
+
this.transactionLoaded.emit(response);
|
|
1465
|
+
resolve(true);
|
|
1466
|
+
}
|
|
1467
|
+
else {
|
|
1468
|
+
reject(false);
|
|
1469
|
+
}
|
|
1470
|
+
}))
|
|
1471
|
+
.catch((reason) => {
|
|
1472
|
+
reject(false);
|
|
1473
|
+
});
|
|
1474
|
+
});
|
|
1475
|
+
}
|
|
1476
|
+
getTransactionById(transactionId) {
|
|
1477
|
+
return new Promise((resolve, reject) => {
|
|
1478
|
+
this._connector.getTransactionById(transactionId)
|
|
1479
|
+
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
1480
|
+
if (response.isSuccess) {
|
|
1481
|
+
this.transactionLoaded.emit(response);
|
|
1406
1482
|
resolve(true);
|
|
1407
1483
|
}
|
|
1408
1484
|
else {
|
|
@@ -1501,7 +1577,17 @@ class TransactionService {
|
|
|
1501
1577
|
}
|
|
1502
1578
|
retrieveLineImage(line) {
|
|
1503
1579
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1504
|
-
|
|
1580
|
+
return yield this.getArticleImageByArticleNumber(line.articleNumber);
|
|
1581
|
+
});
|
|
1582
|
+
}
|
|
1583
|
+
getArticleImageByArticleNumber(articleNumber) {
|
|
1584
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1585
|
+
const goodId = yield this._connector.getGoodIdFromArticleNr(articleNumber);
|
|
1586
|
+
return this.getArticleImageByGoodId(goodId);
|
|
1587
|
+
});
|
|
1588
|
+
}
|
|
1589
|
+
getArticleImageByGoodId(goodId) {
|
|
1590
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1505
1591
|
if (!isNaN(goodId)) {
|
|
1506
1592
|
return this._connector.getSingleImage(goodId, 1, true, true);
|
|
1507
1593
|
}
|
|
@@ -1510,10 +1596,10 @@ class TransactionService {
|
|
|
1510
1596
|
}
|
|
1511
1597
|
});
|
|
1512
1598
|
}
|
|
1513
|
-
addArticle(articleNo, amount = 1, warehouseNo = 1, commissionCode = "2", isReturn = false) {
|
|
1599
|
+
addArticle(articleNo, amount = 1, warehouseNo = 1, commissionCode = "2", isReturn = false, aboveLineNr = 0, belowLineNr = 0) {
|
|
1514
1600
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1515
1601
|
return new Promise((resolve, reject) => {
|
|
1516
|
-
this._connector.addTransactionLine(this._currentTransaction.uuid, TransactionLineType.ArticleLine, articleNo, amount, warehouseNo, commissionCode, isReturn)
|
|
1602
|
+
this._connector.addTransactionLine(this._currentTransaction.uuid, TransactionLineType.ArticleLine, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr)
|
|
1517
1603
|
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
1518
1604
|
resolve(true);
|
|
1519
1605
|
}), (error) => {
|
|
@@ -1525,10 +1611,27 @@ class TransactionService {
|
|
|
1525
1611
|
});
|
|
1526
1612
|
});
|
|
1527
1613
|
}
|
|
1528
|
-
addTransactionLine(lineType, articleNo, amount, warehouseNo, commissionCode, isReturn) {
|
|
1614
|
+
addTransactionLine(lineType, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr) {
|
|
1615
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1616
|
+
return new Promise((resolve, reject) => {
|
|
1617
|
+
this._connector.addTransactionLine(this.currentTransaction.uuid, lineType, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr)
|
|
1618
|
+
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
1619
|
+
this._rememberCurrentTransaction(response);
|
|
1620
|
+
this._rememberCurrentTransactionLineStatus(response);
|
|
1621
|
+
resolve(response);
|
|
1622
|
+
}), (error) => {
|
|
1623
|
+
reject(error);
|
|
1624
|
+
})
|
|
1625
|
+
.catch((reason) => {
|
|
1626
|
+
resolve(null);
|
|
1627
|
+
});
|
|
1628
|
+
});
|
|
1629
|
+
});
|
|
1630
|
+
}
|
|
1631
|
+
addTextLineToTransaction(showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr) {
|
|
1529
1632
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1530
1633
|
return new Promise((resolve, reject) => {
|
|
1531
|
-
this._connector.
|
|
1634
|
+
this._connector.addTextLineToTransaction(this.currentTransaction.uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr)
|
|
1532
1635
|
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
1533
1636
|
this._rememberCurrentTransaction(response);
|
|
1534
1637
|
this._rememberCurrentTransactionLineStatus(response);
|
|
@@ -1542,6 +1645,21 @@ class TransactionService {
|
|
|
1542
1645
|
});
|
|
1543
1646
|
});
|
|
1544
1647
|
}
|
|
1648
|
+
changeLineSequence(lineUuid, aboveLineNr, belowLineNr) {
|
|
1649
|
+
return new Promise((resolve, reject) => {
|
|
1650
|
+
this._connector.changeLineSequence(this.currentTransaction.uuid, lineUuid, aboveLineNr, belowLineNr)
|
|
1651
|
+
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
1652
|
+
this._rememberCurrentTransaction(response);
|
|
1653
|
+
this._rememberCurrentTransactionLineStatus(response);
|
|
1654
|
+
resolve(response);
|
|
1655
|
+
}), (error) => {
|
|
1656
|
+
reject(error);
|
|
1657
|
+
})
|
|
1658
|
+
.catch((reason) => {
|
|
1659
|
+
resolve(null);
|
|
1660
|
+
});
|
|
1661
|
+
});
|
|
1662
|
+
}
|
|
1545
1663
|
cancelAddTransactionLine(lineUuid) {
|
|
1546
1664
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1547
1665
|
return new Promise((resolve, reject) => {
|
|
@@ -1609,6 +1727,15 @@ class TransactionService {
|
|
|
1609
1727
|
});
|
|
1610
1728
|
});
|
|
1611
1729
|
}
|
|
1730
|
+
getCustomerFulObjectByRelationId(relationId) {
|
|
1731
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1732
|
+
const relationNr = yield this._connector.getRelationNumber(relationId);
|
|
1733
|
+
if (relationNr) {
|
|
1734
|
+
return yield this._connector.getCustomerFullObject(Number(relationNr));
|
|
1735
|
+
}
|
|
1736
|
+
return NULL_CUSTOMER_FULL_OBJECT;
|
|
1737
|
+
});
|
|
1738
|
+
}
|
|
1612
1739
|
// public async setRelationByUser(username: string, password: string): Promise<boolean> {
|
|
1613
1740
|
// const response: boolean = await this._connector.setRelationByUser(this.currentTransaction.uuid, username, password);
|
|
1614
1741
|
// return response;
|
|
@@ -1619,13 +1746,15 @@ class TransactionService {
|
|
|
1619
1746
|
}
|
|
1620
1747
|
}
|
|
1621
1748
|
_rememberCurrentTransaction(value) {
|
|
1622
|
-
this
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1749
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1750
|
+
this._currentTransaction = value.transactionInfo;
|
|
1751
|
+
this._initializeTransaction();
|
|
1752
|
+
this.currentLines = value.transactionLines;
|
|
1753
|
+
this.currentTotals = value.transactionTotal;
|
|
1754
|
+
this.currentLineOperationStatuses = value.lineOperationStatuses;
|
|
1755
|
+
yield this._updateRelation();
|
|
1756
|
+
this.transactionUpdated.emit();
|
|
1757
|
+
});
|
|
1629
1758
|
}
|
|
1630
1759
|
_rememberCurrentTransactionLineStatus(value) {
|
|
1631
1760
|
// this._currentLineOperationStatus.uuid = value.lineUuid;
|
|
@@ -1636,10 +1765,7 @@ class TransactionService {
|
|
|
1636
1765
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1637
1766
|
if (this.currentTransaction && this.currentTransaction.relation && this.currentTransaction.relation.relationId) {
|
|
1638
1767
|
if (!this._currentRelation || this._currentRelation.relationId !== this.currentTransaction.relation.relationId) {
|
|
1639
|
-
|
|
1640
|
-
if (relationNr) {
|
|
1641
|
-
this._currentRelation = yield this._connector.getCustomerFullObject(Number(relationNr));
|
|
1642
|
-
}
|
|
1768
|
+
this._currentRelation = yield this.getCustomerFulObjectByRelationId(this.currentTransaction.relation.relationId);
|
|
1643
1769
|
}
|
|
1644
1770
|
}
|
|
1645
1771
|
});
|
|
@@ -1748,13 +1874,18 @@ class Dictionary {
|
|
|
1748
1874
|
"ACCOUNT_DETAILS": "Accountgegevens",
|
|
1749
1875
|
"ACCOUNT_EXPLANATION": "Het e-mailadres en wachtwoord zijn nodig om toegang te krijgen tot de gegevens. " +
|
|
1750
1876
|
"Ook zullen we je via dit e-mailadres op de hoogte houden van de status van bestellingen.",
|
|
1877
|
+
"ADD_ARTICLE_LINE_UP": "Artikelregel boven toevoegen",
|
|
1878
|
+
"ADD_ARTICLE_LINE_DOWN": "Artikelregel onder toevoegen",
|
|
1879
|
+
"ADD_ARTICLE_TEXT_LINE_UP": "Tekstregel boven toevoegen",
|
|
1880
|
+
"ADD_ARTICLE_TEXT_LINE_DOWN": "Tekstregel onder toevoegen",
|
|
1881
|
+
"ADD_DISCOUNTS": "Korting toevoegen",
|
|
1751
1882
|
"ADDRESS": "Adres",
|
|
1752
1883
|
"ADDRESSES": "Adressen",
|
|
1753
1884
|
"ADDRESS_ADD": "Adres toevoegen",
|
|
1754
1885
|
"ADDRESS_CHANGE": "Adres wijzigen",
|
|
1755
|
-
"ADD_DISCOUNTS": "Korting toevoegen",
|
|
1756
1886
|
"ALWAYS_SHOW_LOGISTICS_POPUP": "Controleer magazijn en commissiecode",
|
|
1757
1887
|
"ARTICLE": "Artikel",
|
|
1888
|
+
"ARTICLE_DESCRIPTION": "Artikelomschrijving",
|
|
1758
1889
|
"ARTICLE_IN_OUT_COLLECTION": "Status van artikel is '|~'. Weet u zeker dat u door wilt gaan?",
|
|
1759
1890
|
"ARTICLE_NR": "Artikelnummer",
|
|
1760
1891
|
"ASSEMBLY_COSTS": "Montagekosten",
|
|
@@ -1795,12 +1926,15 @@ class Dictionary {
|
|
|
1795
1926
|
"DELIVERY_OPTARTICLE_NRIONS": "Bezorgopties",
|
|
1796
1927
|
"DELIVERY_TIME_PERIOD": "Levertijd",
|
|
1797
1928
|
"DESCRIPTION": "Omschrijving",
|
|
1929
|
+
"DETAILS": "Details",
|
|
1798
1930
|
"DISCOUNT": "Korting",
|
|
1799
1931
|
"DISCOUNT_AMOUNT": "Kortingsbedrag",
|
|
1800
1932
|
"DISCOUNT_PERCENTAGE": "Kortings %",
|
|
1801
1933
|
"DROPSHIPMENT": "Dropshipment",
|
|
1802
1934
|
"EMAIL_ADDRESS": "E-mailadres",
|
|
1803
1935
|
"EXISTING_CUSTOMERS": "Bestaande klanten",
|
|
1936
|
+
"EXPECTED_DELIVERY_DATE": "Verwachte bezorgdatum",
|
|
1937
|
+
"EXPECTED_DELIVERY_WEEK": "Verwachte leverweek",
|
|
1804
1938
|
"FEMALE": "Vrouw",
|
|
1805
1939
|
"FIRST_NAME": "Voornaam",
|
|
1806
1940
|
"GOOD_DESCRIPTION": "Artikelomschrijving",
|
|
@@ -1827,11 +1961,14 @@ class Dictionary {
|
|
|
1827
1961
|
"NUMBER": "Aantal",
|
|
1828
1962
|
"ON_DATE": "Op datum",
|
|
1829
1963
|
"OPEN_SHOPPING_CART": "Open winkelwagen",
|
|
1964
|
+
"ORDER_DATE": "Orderdatum",
|
|
1830
1965
|
"ORDER_GROSS": "Ordertotaal bruto",
|
|
1831
1966
|
"ORDER_NET": "Ordertotaal netto",
|
|
1967
|
+
"ORDER_NUMBER": "Ordernummer",
|
|
1832
1968
|
"ORDER_TYPE": "Type bestelling",
|
|
1833
1969
|
"OVERVIEW": "Overzicht",
|
|
1834
1970
|
"OWN_REFERENCE": "Eigen referentie",
|
|
1971
|
+
"PAID_DOWN2": "Aanbetaald",
|
|
1835
1972
|
"PART_DELIVERIES": "Deelleveringen",
|
|
1836
1973
|
"PASSWORD": "Wachtwoord",
|
|
1837
1974
|
"PAYMENT": "Betaling",
|
|
@@ -1844,6 +1981,8 @@ class Dictionary {
|
|
|
1844
1981
|
"PRICE_LIST": "Prijslijst",
|
|
1845
1982
|
"PRIVACY_PREFERENCES": "Privacyvoorkeuren",
|
|
1846
1983
|
"PRIVATE_PERSON": "Particulier",
|
|
1984
|
+
"PRODUCT": "Product",
|
|
1985
|
+
"PRODUCT_TYPE": "Productsoort",
|
|
1847
1986
|
"QUANTITY_CANNOT_BE_ZERO_OR_EMPTY": "Het aantal mag geen 0 zijn.",
|
|
1848
1987
|
"QUANTITY_CANNOT_BE_LESS_THAN_DELIVERED": "Het aantal moet gelijk zijn aan het geleverde aantal",
|
|
1849
1988
|
"QUANTITY_CANNOT_BE_MORE_THAN_DELIVERED": "Het aantal moet gelijk zijn aan het geleverde aantal",
|
|
@@ -1859,6 +1998,9 @@ class Dictionary {
|
|
|
1859
1998
|
"SALUTATION": "Aanhef",
|
|
1860
1999
|
"SAVE": "Opslaan",
|
|
1861
2000
|
"SELECT": "Selecteren",
|
|
2001
|
+
"SERVICE_NUMBER": "Servicenummer",
|
|
2002
|
+
"SERVICE_REQUEST_DATE": "Datum aanvraag",
|
|
2003
|
+
"SERVICE_STATE": "Service status",
|
|
1862
2004
|
"SHOPPING_CART": "Winkelwagen",
|
|
1863
2005
|
"SHOPPING_CART_CHECKOUT": "Bestellen",
|
|
1864
2006
|
"SHOPPING_CART_OVERVIEW": "Overzicht van uw bestelling",
|
|
@@ -1870,16 +2012,20 @@ class Dictionary {
|
|
|
1870
2012
|
"SUBTOTAL": "Subtotaal",
|
|
1871
2013
|
"SUGGESTIONS": "Suggesties",
|
|
1872
2014
|
"SURCHARGE_AMOUNT": "Toeslag",
|
|
2015
|
+
"STATE": "Status",
|
|
1873
2016
|
"STREET": "Straatnaam",
|
|
2017
|
+
"TOTAL_AMOUNT": "Totaalbedrag",
|
|
1874
2018
|
"TOTAL_GROSS": "Totaal bruto",
|
|
1875
2019
|
"TOTAL_ASSEMBLY_TIME": "Totale montagetijd",
|
|
1876
2020
|
"TRANSACTION_DISCOUNT": "Totale transactie korting",
|
|
1877
2021
|
"TRANSACTION_DISCOUNT_PERC": "% Trans. korting",
|
|
1878
2022
|
"TRANSACTION_PRICE_DECLARATION": "Order prijsverklaring",
|
|
2023
|
+
"TRANSACTION_SUM_I": "Ordertotaal incl. BTW",
|
|
1879
2024
|
"TRANSACTION_TOTAL": "Transactie totaal",
|
|
1880
2025
|
"UNKNOWN": "Onbekend",
|
|
1881
2026
|
"UNKNOWN_ADDRESS_CHECK_IT": "Onbekend adres",
|
|
1882
2027
|
"VAT": "Btw",
|
|
2028
|
+
"VAT_AMOUNT": "BTW-bedrag",
|
|
1883
2029
|
"VALUE": "Waarde",
|
|
1884
2030
|
"WAREHOUSE": "Magazijn",
|
|
1885
2031
|
"YOUR_DATA": "Uw gegevens",
|
|
@@ -1889,13 +2035,18 @@ class Dictionary {
|
|
|
1889
2035
|
"en": {
|
|
1890
2036
|
"ACCOUNT_DETAILS": "Account details",
|
|
1891
2037
|
"ACCOUNT_EXPLANATION": "E-mailaddress and password are needed to gain access to the data. We also notify you on this e-mailaddress about the order status",
|
|
2038
|
+
"ADD_ARTICLE_LINE_UP": "Add article line up",
|
|
2039
|
+
"ADD_ARTICLE_LINE_DOWN": "Add article line down",
|
|
2040
|
+
"ADD_ARTICLE_TEXT_LINE_UP": "Add text line up",
|
|
2041
|
+
"ADD_ARTICLE_TEXT_LINE_DOWN": "Add text line down",
|
|
2042
|
+
"ADD_DISCOUNTS": "Add discount",
|
|
1892
2043
|
"ADDRESS": "Address",
|
|
1893
2044
|
"ADDRESSES": "Addresses",
|
|
1894
2045
|
"ADDRESS_ADD": "Add address",
|
|
1895
2046
|
"ADDRESS_CHANGE": "Change address",
|
|
1896
|
-
"ADD_DISCOUNTS": "Add discount",
|
|
1897
2047
|
"ALWAYS_SHOW_LOGISTICS_POPUP": "Check warehouse and commissioncode",
|
|
1898
2048
|
"ARTICLE": "Article",
|
|
2049
|
+
"ARTICLE_DESCRIPTION": "Article description",
|
|
1899
2050
|
"ARTICLE_IN_OUT_COLLECTION": "Status of article is '|~'. Are you sure to proceed?",
|
|
1900
2051
|
"ARTICLE_NR": "Article number",
|
|
1901
2052
|
"ASSEMBLY_COSTS": "Assembly costs",
|
|
@@ -1936,12 +2087,15 @@ class Dictionary {
|
|
|
1936
2087
|
"DELIVERY_OPTARTICLE_NRIONS": "Delivery options",
|
|
1937
2088
|
"DELIVERY_TIME_PERIOD": "Delivery time period",
|
|
1938
2089
|
"DESCRIPTION": "Description",
|
|
2090
|
+
"DETAILS": "Details",
|
|
1939
2091
|
"DISCOUNT": "Discount",
|
|
1940
2092
|
"DISCOUNT_AMOUNT": "Discount amount",
|
|
1941
2093
|
"DISCOUNT_PERCENTAGE": "Discount %",
|
|
1942
2094
|
"DROPSHIPMENT": "Dropshipment",
|
|
1943
2095
|
"EMAIL_ADDRESS": "E-mailadres",
|
|
1944
2096
|
"EXISTING_CUSTOMERS": "Existing customers",
|
|
2097
|
+
"EXPECTED_DELIVERY_DATE": "Expected delivery date",
|
|
2098
|
+
"EXPECTED_DELIVERY_WEEK": "Expected delivery week",
|
|
1945
2099
|
"FEMALE": "Female",
|
|
1946
2100
|
"FIRST_NAME": "First name",
|
|
1947
2101
|
"GOOD_DESCRIPTION": "Article description",
|
|
@@ -1968,11 +2122,14 @@ class Dictionary {
|
|
|
1968
2122
|
"NUMBER": "Amount",
|
|
1969
2123
|
"ON_DATE": "On date",
|
|
1970
2124
|
"OPEN_SHOPPING_CART": "Open shopping cart",
|
|
2125
|
+
"ORDER_DATE": "Order date",
|
|
1971
2126
|
"ORDER_GROSS": "Total gross amount",
|
|
1972
2127
|
"ORDER_NET": "Total net amount",
|
|
2128
|
+
"ORDER_NUMBER": "Order number",
|
|
1973
2129
|
"ORDER_TYPE": "Order type",
|
|
1974
2130
|
"OVERVIEW": "Overview",
|
|
1975
2131
|
"OWN_REFERENCE": "Own reference",
|
|
2132
|
+
"PAID_DOWN2": "Prepaid",
|
|
1976
2133
|
"PART_DELIVERIES": "Partial deliveries",
|
|
1977
2134
|
"PASSWORD": "Password",
|
|
1978
2135
|
"PAYMENT": "Payment",
|
|
@@ -1985,6 +2142,8 @@ class Dictionary {
|
|
|
1985
2142
|
"PRICE_LIST": "Pricelist",
|
|
1986
2143
|
"PRIVACY_PREFERENCES": "Privacy preferences",
|
|
1987
2144
|
"PRIVATE_PERSON": "Private",
|
|
2145
|
+
"PRODUCT": "Product",
|
|
2146
|
+
"PRODUCT_TYPE": "Product type",
|
|
1988
2147
|
"QUANTITY_CANNOT_BE_ZERO_OR_EMPTY": "Quantity cannot be zero or empty",
|
|
1989
2148
|
"QUANTUM_DISCOUNT": "Quantum discount",
|
|
1990
2149
|
"REFERENCE_RELATION": "Ref. relation",
|
|
@@ -1992,6 +2151,9 @@ class Dictionary {
|
|
|
1992
2151
|
"SALUTATION": "Salutation",
|
|
1993
2152
|
"SAVE": "Save",
|
|
1994
2153
|
"SELECT": "Select",
|
|
2154
|
+
"SERVICE_NUMBER": "Service number",
|
|
2155
|
+
"SERVICE_REQUEST_DATE": "Service request data",
|
|
2156
|
+
"SERVICE_STATE": "Service state",
|
|
1995
2157
|
"SHOPPING_CART": "Shopping cart",
|
|
1996
2158
|
"SHOPPING_CART_CHECKOUT": "Checkout",
|
|
1997
2159
|
"SHOPPING_CART_OVERVIEW": "Order overview",
|
|
@@ -2003,17 +2165,21 @@ class Dictionary {
|
|
|
2003
2165
|
"SUBTOTAL": "Subtotal",
|
|
2004
2166
|
"SUGGESTIONS": "Suggestions",
|
|
2005
2167
|
"SURCHARGE_AMOUNT": "Surcharge",
|
|
2168
|
+
"STATE": "STATUS",
|
|
2006
2169
|
"STREET": "Streetname",
|
|
2170
|
+
"TOTAL_AMOUNT": "Total amount",
|
|
2007
2171
|
"TOTAL_GROSS": "Gross total",
|
|
2008
2172
|
"TOTAL_ASSEMBLY_TIME": "Total assembly time",
|
|
2009
2173
|
"TRANSACTION_DISCOUNT": "Total transaction discount",
|
|
2010
2174
|
"TRANSACTION_DISCOUNT_PERC": "% Trans. discount",
|
|
2011
2175
|
"TRANSACTION_PRICE_DECLARATION": "Transaction price declaration",
|
|
2176
|
+
"TRANSACTION_SUM_I": "Ordertotal incl VAT",
|
|
2012
2177
|
"TRANSACTION_TOTAL": "Transaction total",
|
|
2013
2178
|
"UNKNOWN": "unknown",
|
|
2014
2179
|
"UNKNOWN_ADDRESS_CHECK_IT": "Unknown address",
|
|
2015
2180
|
"VALUE": "Value",
|
|
2016
2181
|
"VAT": "VAT",
|
|
2182
|
+
"VAT_AMOUNT": "VAT amount",
|
|
2017
2183
|
"WAREHOUSE": "Warehouse",
|
|
2018
2184
|
"YOUR_DATA": "Your data",
|
|
2019
2185
|
},
|
|
@@ -2089,6 +2255,14 @@ class TransactionEventService {
|
|
|
2089
2255
|
this.loggedIn = new Subject();
|
|
2090
2256
|
this.addNewUserToShoppingCartModule = new Subject();
|
|
2091
2257
|
this.addUserRelationShoppingCartModule = new Subject();
|
|
2258
|
+
this.addArticleLine = new Subject();
|
|
2259
|
+
this.addTextLine = new Subject();
|
|
2260
|
+
this.addArticleLineAt = new Subject();
|
|
2261
|
+
this.addTextLineAt = new Subject();
|
|
2262
|
+
this.changeLineSequence = new Subject();
|
|
2263
|
+
this.transactionLineClicked = new Subject();
|
|
2264
|
+
this.rightSidebarClose = new Subject();
|
|
2265
|
+
this.scrollContent = new Subject();
|
|
2092
2266
|
}
|
|
2093
2267
|
}
|
|
2094
2268
|
TransactionEventService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TransactionEventService_Factory() { return new TransactionEventService(); }, token: TransactionEventService, providedIn: "root" });
|
|
@@ -2913,8 +3087,8 @@ CheckoutOverviewDeliveryEditComponent.decorators = [
|
|
|
2913
3087
|
<co-grid #addressGrid
|
|
2914
3088
|
[data]="addresses"
|
|
2915
3089
|
[columns]="columns"
|
|
2916
|
-
[pagingEnabled]="
|
|
2917
|
-
[maxNumberOfRows]="
|
|
3090
|
+
[pagingEnabled]="true"
|
|
3091
|
+
[maxNumberOfRows]="20"
|
|
2918
3092
|
(rowsSelected)="handleAddressSelected($event)"
|
|
2919
3093
|
></co-grid>
|
|
2920
3094
|
</div>
|
|
@@ -4065,6 +4239,7 @@ class IconComponent {
|
|
|
4065
4239
|
}
|
|
4066
4240
|
IconComponent.decorators = [
|
|
4067
4241
|
{ type: Component, args: [{
|
|
4242
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
4068
4243
|
selector: "icon",
|
|
4069
4244
|
template: "",
|
|
4070
4245
|
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"]
|
|
@@ -4151,7 +4326,6 @@ IoneCheckoutModule.decorators = [
|
|
|
4151
4326
|
IoneCheckoutComponent,
|
|
4152
4327
|
],
|
|
4153
4328
|
providers: [
|
|
4154
|
-
IOneConnectorAdapterService,
|
|
4155
4329
|
DictionaryService,
|
|
4156
4330
|
TransactionService,
|
|
4157
4331
|
OptionsService
|
|
@@ -4164,6 +4338,12 @@ IoneCheckoutModule.decorators = [
|
|
|
4164
4338
|
},] }
|
|
4165
4339
|
];
|
|
4166
4340
|
|
|
4341
|
+
var PositionGridRow;
|
|
4342
|
+
(function (PositionGridRow) {
|
|
4343
|
+
PositionGridRow["Before"] = "before";
|
|
4344
|
+
PositionGridRow["After"] = "after";
|
|
4345
|
+
})(PositionGridRow || (PositionGridRow = {}));
|
|
4346
|
+
|
|
4167
4347
|
class ShoppingCartManagerComponent {
|
|
4168
4348
|
constructor(service, transactionEvents, promptService, _dictionaryService) {
|
|
4169
4349
|
this.service = service;
|
|
@@ -4193,6 +4373,12 @@ class ShoppingCartManagerComponent {
|
|
|
4193
4373
|
}), this.transactionEvents.addToCartBySku.subscribe((params) => {
|
|
4194
4374
|
this.waitForLinesChangedToOpenCart = params.popCart;
|
|
4195
4375
|
this.addToCart(params.sku, params.amount).then();
|
|
4376
|
+
}), this.transactionEvents.addArticleLineAt.subscribe((params) => {
|
|
4377
|
+
this.addArticleLineToCartAt(params.sku, params.amount, params.lineNr, params.beforeOrAfter).then();
|
|
4378
|
+
}), this.transactionEvents.addTextLineAt.subscribe((params) => {
|
|
4379
|
+
this.addTextLineToCartAt(params.text, params.lineNr, params.beforeOrAfter).then();
|
|
4380
|
+
}), this.transactionEvents.changeLineSequence.subscribe((params) => {
|
|
4381
|
+
this.changeLineSequence(params.fromIndex, params.toIndex).then();
|
|
4196
4382
|
}), this.transactionEvents.addToCartBySelectorResult.subscribe((params) => {
|
|
4197
4383
|
this.waitForLinesChangedToOpenCart = params.popCart;
|
|
4198
4384
|
this.addToCartBySelectorResult(params.selectorResult).then();
|
|
@@ -4234,6 +4420,41 @@ class ShoppingCartManagerComponent {
|
|
|
4234
4420
|
this.articleAdded.emit();
|
|
4235
4421
|
});
|
|
4236
4422
|
}
|
|
4423
|
+
addArticleLineToCartAt(sku, amount, lineNr, beforeOrAfter) {
|
|
4424
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4425
|
+
const goodId = yield this.service.getGoodIdFromArticleNr(sku);
|
|
4426
|
+
yield this._loadArticle(goodId);
|
|
4427
|
+
yield this._createTransaction();
|
|
4428
|
+
yield this._handleAddArticleLineAt(amount, lineNr, beforeOrAfter);
|
|
4429
|
+
this.articleAdded.emit();
|
|
4430
|
+
});
|
|
4431
|
+
}
|
|
4432
|
+
addTextLineToCartAt(text, lineNr, beforeOrAfter) {
|
|
4433
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4434
|
+
yield this.service.addTextLineToTransaction(0, text, 0, false, 0, beforeOrAfter === PositionGridRow.Before ? lineNr : undefined, beforeOrAfter === PositionGridRow.After ? lineNr : undefined)
|
|
4435
|
+
.then((value) => {
|
|
4436
|
+
this._handleLineOperationStatus();
|
|
4437
|
+
}, (error) => this.promptService.showError(error));
|
|
4438
|
+
});
|
|
4439
|
+
}
|
|
4440
|
+
changeLineSequence(fromIndex, toIndex) {
|
|
4441
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4442
|
+
let fromLine = this._getTransactionLineInfoByIndex(fromIndex);
|
|
4443
|
+
let toLine = this._getTransactionLineInfoByIndex(toIndex);
|
|
4444
|
+
let aboveLineNr;
|
|
4445
|
+
let belowLineNr;
|
|
4446
|
+
if (fromIndex > toIndex) {
|
|
4447
|
+
aboveLineNr = toLine.lineNr;
|
|
4448
|
+
}
|
|
4449
|
+
else {
|
|
4450
|
+
belowLineNr = toLine.lineNr;
|
|
4451
|
+
}
|
|
4452
|
+
yield this.service.changeLineSequence(fromLine.uuid, aboveLineNr, belowLineNr)
|
|
4453
|
+
.then((value) => {
|
|
4454
|
+
this._handleLineOperationStatus();
|
|
4455
|
+
}, (error) => this.promptService.showError(error));
|
|
4456
|
+
});
|
|
4457
|
+
}
|
|
4237
4458
|
addToCartBySelectorResult(result) {
|
|
4238
4459
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4239
4460
|
yield this._loadArticle(result.goodId);
|
|
@@ -4306,7 +4527,7 @@ class ShoppingCartManagerComponent {
|
|
|
4306
4527
|
}
|
|
4307
4528
|
else {
|
|
4308
4529
|
if (this.editingLine === undefined) {
|
|
4309
|
-
yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, this.amount, this.selectedWarehouseNr, this.commissionCode, this.isReturn)
|
|
4530
|
+
yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, this.amount, this.selectedWarehouseNr, this.commissionCode, this.isReturn, 0, 0)
|
|
4310
4531
|
.then((value) => {
|
|
4311
4532
|
this._handleLineOperationStatus();
|
|
4312
4533
|
});
|
|
@@ -4342,7 +4563,15 @@ class ShoppingCartManagerComponent {
|
|
|
4342
4563
|
}
|
|
4343
4564
|
_handleAddArticle(amount = 1) {
|
|
4344
4565
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4345
|
-
yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode)
|
|
4566
|
+
yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode, false, 0, 0)
|
|
4567
|
+
.then((value) => {
|
|
4568
|
+
this._handleLineOperationStatus();
|
|
4569
|
+
}, (error) => this.promptService.showError(error));
|
|
4570
|
+
});
|
|
4571
|
+
}
|
|
4572
|
+
_handleAddArticleLineAt(amount, lineNr, beforeOrAfter) {
|
|
4573
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4574
|
+
yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode, false, beforeOrAfter === PositionGridRow.Before ? lineNr : undefined, beforeOrAfter === PositionGridRow.After ? lineNr : undefined)
|
|
4346
4575
|
.then((value) => {
|
|
4347
4576
|
this._handleLineOperationStatus();
|
|
4348
4577
|
}, (error) => this.promptService.showError(error));
|
|
@@ -4476,9 +4705,19 @@ class ShoppingCartManagerComponent {
|
|
|
4476
4705
|
// eslint-disable-next-line no-magic-numbers
|
|
4477
4706
|
}, 1000);
|
|
4478
4707
|
}
|
|
4708
|
+
_getLineUuidByLineNr(lineNr) {
|
|
4709
|
+
const transactionLine = this.service.currentLines.filter(transLines => transLines.lineNr === lineNr);
|
|
4710
|
+
return transactionLine[0].uuid;
|
|
4711
|
+
}
|
|
4712
|
+
_getTransactionLineInfoByIndex(index) {
|
|
4713
|
+
if (index >= 0 && index < this.service.currentLines.length) {
|
|
4714
|
+
return this.service.currentLines[index];
|
|
4715
|
+
}
|
|
4716
|
+
}
|
|
4479
4717
|
}
|
|
4480
4718
|
ShoppingCartManagerComponent.decorators = [
|
|
4481
4719
|
{ type: Component, args: [{
|
|
4720
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
4482
4721
|
selector: "shopping-cart-manager",
|
|
4483
4722
|
template: `
|
|
4484
4723
|
<co-dialog #warehouseDialog
|
|
@@ -4580,13 +4819,15 @@ class ShoppingCartComponent {
|
|
|
4580
4819
|
this.overview = new EventEmitter();
|
|
4581
4820
|
this.activeViewMode = ContentViewMode.List;
|
|
4582
4821
|
this.columns = [];
|
|
4822
|
+
this.contextMenuItems = [];
|
|
4583
4823
|
this.showDiscountsSidebar = false;
|
|
4584
4824
|
this._transactionUpdated = this.service.transactionUpdated.subscribe(() => {
|
|
4585
4825
|
this.setFilteredCollection(this.service.currentLines);
|
|
4586
4826
|
});
|
|
4587
4827
|
this.setFilteredCollection(this.service.currentLines);
|
|
4588
4828
|
const mediaQuery = "(min-width: 500px)";
|
|
4589
|
-
this.columns.push({ field: "lineNr", headerText: this._dictionary.get("NR"), allowFiltering: false }, { field: "articleNumber", headerText: this._dictionary.get("ARTICLE_NR") }, { field: "goodDescription", headerText: this._dictionary.get("GOOD_DESCRIPTION"), hideAtMedia: mediaQuery }, { field: "amount", headerText: this._dictionary.get("NUMBER"), textAlign: "Right" }, { field: "price", headerText: this._dictionary.get("PRICE"), format: "C2", textAlign: "Right" }, { field: "priceListCode", headerText: this._dictionary.get("PRICE_LIST"), hideAtMedia: mediaQuery }, { field: "lineDiscount", headerText: this._dictionary.get("DISCOUNT_PERCENTAGE"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "specialDiscount", headerText: this._dictionary.get("SPECIAL_DISCOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "discountAmount", headerText: this._dictionary.get("DISCOUNT_AMOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "surchargeAmount", headerText: this._dictionary.get("SURCHARGE_AMOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "assemblyCost", headerText: this._dictionary.get("ASSEMBLY_COSTS"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "grossLineTotal", headerText: this._dictionary.get("TOTAL_GROSS"), format: "C2", visible: true, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "lineTotalDiscountAmount", headerText: this._dictionary.get("DISCOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "netLineTotal", headerText: this._dictionary.get("SUBTOTAL"), format: "C2", visible: false, textAlign: "Right" }, { field: "vatId", headerText: this._dictionary.get("VAT"), hideAtMedia: mediaQuery, visible: false, textAlign: "Right" }, { field: "priceDeclaration", headerText: this._dictionary.get("TRANSACTION_PRICE_DECLARATION"), visible: false, hideAtMedia: mediaQuery }, { field: "netto", headerText: this._dictionary.get("NETT"), format: "C2", hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "warehouseNumber", headerText: this._dictionary.get("WAREHOUSE"), hideAtMedia: mediaQuery, textAlign: "Right" });
|
|
4829
|
+
this.columns.push({ field: "lineNr", headerText: this._dictionary.get("NR"), allowFiltering: false, allowSorting: false }, { field: "text", headerText: this._dictionary.get("TEXT") }, { field: "articleNumber", headerText: this._dictionary.get("ARTICLE_NR") }, { field: "goodDescription", headerText: this._dictionary.get("GOOD_DESCRIPTION"), hideAtMedia: mediaQuery }, { field: "amount", headerText: this._dictionary.get("NUMBER"), textAlign: "Right" }, { field: "price", headerText: this._dictionary.get("PRICE"), format: "C2", textAlign: "Right" }, { field: "priceListCode", headerText: this._dictionary.get("PRICE_LIST"), hideAtMedia: mediaQuery }, { field: "lineDiscount", headerText: this._dictionary.get("DISCOUNT_PERCENTAGE"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "specialDiscount", headerText: this._dictionary.get("SPECIAL_DISCOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "discountAmount", headerText: this._dictionary.get("DISCOUNT_AMOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "surchargeAmount", headerText: this._dictionary.get("SURCHARGE_AMOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "assemblyCost", headerText: this._dictionary.get("ASSEMBLY_COSTS"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "grossLineTotal", headerText: this._dictionary.get("TOTAL_GROSS"), format: "C2", visible: true, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "lineTotalDiscountAmount", headerText: this._dictionary.get("DISCOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "netLineTotal", headerText: this._dictionary.get("SUBTOTAL"), format: "C2", visible: false, textAlign: "Right" }, { field: "vatId", headerText: this._dictionary.get("VAT"), hideAtMedia: mediaQuery, visible: false, textAlign: "Right" }, { field: "priceDeclaration", headerText: this._dictionary.get("TRANSACTION_PRICE_DECLARATION"), visible: false, hideAtMedia: mediaQuery }, { field: "netto", headerText: this._dictionary.get("NETT"), format: "C2", hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "warehouseNumber", headerText: this._dictionary.get("WAREHOUSE"), hideAtMedia: mediaQuery, textAlign: "Right" });
|
|
4830
|
+
this.contextMenuItems.push({ text: this._dictionary.get("ADD_ARTICLE_LINE_UP"), target: ".e-content", id: "articleLineUp" }, { text: this._dictionary.get("ADD_ARTICLE_LINE_DOWN"), target: ".e-content", id: "articleLineDown" }, { text: this._dictionary.get("ADD_ARTICLE_TEXT_LINE_UP"), target: ".e-content", id: "articleTextLineUp" }, { text: this._dictionary.get("ADD_ARTICLE_TEXT_LINE_DOWN"), target: ".e-content", id: "articleTextLineDown" });
|
|
4590
4831
|
}
|
|
4591
4832
|
get filteredCollection() {
|
|
4592
4833
|
return this._filteredCollection;
|
|
@@ -4599,7 +4840,7 @@ class ShoppingCartComponent {
|
|
|
4599
4840
|
property: "lineNr",
|
|
4600
4841
|
type: SortType.Number
|
|
4601
4842
|
};
|
|
4602
|
-
SortUtils.SortObjectArray(this._filteredCollection, [sortByLineNr]);
|
|
4843
|
+
// SortUtils.SortObjectArray(this._filteredCollection, [sortByLineNr]);
|
|
4603
4844
|
}
|
|
4604
4845
|
ngAfterViewInit() {
|
|
4605
4846
|
this.hideSidebar();
|
|
@@ -4660,7 +4901,7 @@ class ShoppingCartComponent {
|
|
|
4660
4901
|
return line.lineNr;
|
|
4661
4902
|
}
|
|
4662
4903
|
handleRowsSelected(rows) {
|
|
4663
|
-
|
|
4904
|
+
this._selectedRow = rows.find(x => x !== undefined);
|
|
4664
4905
|
}
|
|
4665
4906
|
showSidebar() {
|
|
4666
4907
|
this.showDiscountsSidebar = true;
|
|
@@ -4676,9 +4917,36 @@ class ShoppingCartComponent {
|
|
|
4676
4917
|
this.discountsSidebar.hide();
|
|
4677
4918
|
}
|
|
4678
4919
|
}
|
|
4920
|
+
menuItemClick(args) {
|
|
4921
|
+
const lineNr = this._selectedRow.lineNr;
|
|
4922
|
+
switch (args.item.id) {
|
|
4923
|
+
case "articleLineUp":
|
|
4924
|
+
// this._transactionEvents.addArticleLine.next({lineNr: lineNr, beforeOrAfter: PositionGridRow.Before});
|
|
4925
|
+
this._transactionEvents.addArticleLineAt.next({ sku: "iPod", amount: 1, lineNr: lineNr, beforeOrAfter: PositionGridRow.Before });
|
|
4926
|
+
break;
|
|
4927
|
+
case "articleLineDown":
|
|
4928
|
+
// this._transactionEvents.addArticleLine.next({lineNr: lineNr, beforeOrAfter: PositionGridRow.After});
|
|
4929
|
+
this._transactionEvents.addArticleLineAt.next({ sku: "iPod", amount: 1, lineNr: lineNr, beforeOrAfter: PositionGridRow.After });
|
|
4930
|
+
break;
|
|
4931
|
+
case "articleTextLineUp":
|
|
4932
|
+
// this._transactionEvents.addTextLine.next({lineNr: lineNr, beforeOrAfter: PositionGridRow.Before});
|
|
4933
|
+
this._transactionEvents.addTextLineAt.next({ text: "textregel before", lineNr: lineNr, beforeOrAfter: PositionGridRow.Before });
|
|
4934
|
+
break;
|
|
4935
|
+
case "articleTextLineDown":
|
|
4936
|
+
// this._transactionEvents.addTextLine.next({lineNr: lineNr, beforeOrAfter: PositionGridRow.After});
|
|
4937
|
+
this._transactionEvents.addTextLineAt.next({ text: "textregel after", lineNr: lineNr, beforeOrAfter: PositionGridRow.After });
|
|
4938
|
+
break;
|
|
4939
|
+
}
|
|
4940
|
+
}
|
|
4941
|
+
rowDrop(args) {
|
|
4942
|
+
this._transactionEvents.changeLineSequence.next({ fromIndex: args.fromIndex, toIndex: args.dropIndex });
|
|
4943
|
+
// Transaction lines will be reloaded by previous action on success, not by failure. So, cancel the drop in all cases.
|
|
4944
|
+
args.cancel = true;
|
|
4945
|
+
}
|
|
4679
4946
|
}
|
|
4680
4947
|
ShoppingCartComponent.decorators = [
|
|
4681
4948
|
{ type: Component, args: [{
|
|
4949
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
4682
4950
|
selector: "shopping-cart",
|
|
4683
4951
|
template: `
|
|
4684
4952
|
<div class="cart-header">
|
|
@@ -4697,19 +4965,24 @@ ShoppingCartComponent.decorators = [
|
|
|
4697
4965
|
</div>
|
|
4698
4966
|
</div>
|
|
4699
4967
|
<div class="cart-lines">
|
|
4700
|
-
<div class="cart-list-wrapper" *ngIf="
|
|
4968
|
+
<div class="cart-list-wrapper" *ngIf="activeViewMode === viewModes.List" fxFlex="column">
|
|
4701
4969
|
<shopping-cart-line [overlayMode]="overlayMode" [overviewMode]="overviewMode"
|
|
4702
4970
|
*ngFor="let line of filteredCollection; trackBy:trackByFn;"
|
|
4703
4971
|
[line]="line"
|
|
4704
4972
|
></shopping-cart-line>
|
|
4705
4973
|
</div>
|
|
4706
|
-
<div class="cart-list-wrapper" *ngIf="
|
|
4974
|
+
<div class="cart-list-wrapper" *ngIf="activeViewMode === viewModes.Grid" fxFlex="column">
|
|
4707
4975
|
<co-grid
|
|
4708
4976
|
[data]="filteredCollection"
|
|
4977
|
+
[rowDragAndDropEnabled]="true"
|
|
4978
|
+
[contextMenuItems]="contextMenuItems"
|
|
4979
|
+
[sortingEnabled]="false"
|
|
4709
4980
|
[columns]="columns"
|
|
4710
4981
|
[pagingEnabled]="'true'"
|
|
4711
4982
|
[maxNumberOfRows]="'20'"
|
|
4712
4983
|
(rowsSelected)="handleRowsSelected($event)"
|
|
4984
|
+
(contextMenuItemClick)="menuItemClick($event)"
|
|
4985
|
+
(rowDropEvent)="rowDrop($event)"
|
|
4713
4986
|
></co-grid>
|
|
4714
4987
|
</div>
|
|
4715
4988
|
</div>
|
|
@@ -4811,6 +5084,19 @@ ShoppingCartComponent.propDecorators = {
|
|
|
4811
5084
|
overview: [{ type: Output }]
|
|
4812
5085
|
};
|
|
4813
5086
|
|
|
5087
|
+
// <co-sidebar #catalogSidebar isOpen="false" *ngIf="showCatalogSidebar">
|
|
5088
|
+
// <div class="relation-sidebar-header">
|
|
5089
|
+
// <label [textContent]="'ARTICLE' | localize "
|
|
5090
|
+
// class="checkout-label-h3"
|
|
5091
|
+
// ></label>
|
|
5092
|
+
// </div>
|
|
5093
|
+
// <app-ione-catalog
|
|
5094
|
+
// [settings]="options"
|
|
5095
|
+
// [parameters]="{publicationCode: 71}"
|
|
5096
|
+
// (onAddToCart)="addToCart($event)"
|
|
5097
|
+
// (onAddArticleButtonClick)="addArticleButtonClick($event)"
|
|
5098
|
+
// ></app-ione-catalog>
|
|
5099
|
+
// </co-sidebar>
|
|
4814
5100
|
class IoneShoppingCartComponent {
|
|
4815
5101
|
constructor(_changeDetector, _optionsService, _connector, _dictionary, _service, transactionEvents, _promptService) {
|
|
4816
5102
|
this._changeDetector = _changeDetector;
|
|
@@ -4826,6 +5112,11 @@ class IoneShoppingCartComponent {
|
|
|
4826
5112
|
this.closeCart = new EventEmitter();
|
|
4827
5113
|
this.checkout = new EventEmitter();
|
|
4828
5114
|
this.overview = new EventEmitter();
|
|
5115
|
+
this.addArticleLine = new EventEmitter();
|
|
5116
|
+
this.addTextLine = new EventEmitter();
|
|
5117
|
+
this.showCatalogSidebar = false;
|
|
5118
|
+
this.currentArticleLineNr = 0;
|
|
5119
|
+
this.currentPositionGridRow = PositionGridRow.After;
|
|
4829
5120
|
this.show = false;
|
|
4830
5121
|
this.amountOfLines = 0;
|
|
4831
5122
|
this.upAndLoaded = false;
|
|
@@ -4833,24 +5124,26 @@ class IoneShoppingCartComponent {
|
|
|
4833
5124
|
this._subscriptions = [];
|
|
4834
5125
|
this._remoteOptions = true;
|
|
4835
5126
|
this._publicOptions = true;
|
|
4836
|
-
this._subscriptions.push(this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)));
|
|
5127
|
+
this._subscriptions.push(this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)), this.transactionEvents.addArticleLine.subscribe(args => this._handleAddArticleLine(args)), this.transactionEvents.addTextLine.subscribe(args => this._handleAddTextLine(args)));
|
|
4837
5128
|
}
|
|
4838
5129
|
set options(value) {
|
|
4839
5130
|
if (value) {
|
|
4840
|
-
let options;
|
|
4841
5131
|
if (typeof value === "string") {
|
|
4842
|
-
|
|
5132
|
+
this._options = JSON.parse(value);
|
|
4843
5133
|
}
|
|
4844
5134
|
else {
|
|
4845
|
-
|
|
5135
|
+
this._options = value;
|
|
4846
5136
|
}
|
|
4847
5137
|
this._publicOptions = true;
|
|
4848
|
-
this._optionsService.initialize(
|
|
5138
|
+
this._optionsService.initialize(this._options).then();
|
|
4849
5139
|
}
|
|
4850
5140
|
}
|
|
4851
5141
|
get transactionNr() {
|
|
4852
5142
|
return this._service.currentTransaction.transactionNr;
|
|
4853
5143
|
}
|
|
5144
|
+
get options() {
|
|
5145
|
+
return this._options;
|
|
5146
|
+
}
|
|
4854
5147
|
ngOnInit() {
|
|
4855
5148
|
if (!this._publicOptions) {
|
|
4856
5149
|
this._optionsService.initializeDevelopmentOptions(this._remoteOptions);
|
|
@@ -4874,6 +5167,18 @@ class IoneShoppingCartComponent {
|
|
|
4874
5167
|
addArticle(articleNo, amount) {
|
|
4875
5168
|
this.transactionEvents.addToCartBySku.next({ sku: articleNo, amount: amount, popCart: true });
|
|
4876
5169
|
}
|
|
5170
|
+
addArticleButtonClick(article) {
|
|
5171
|
+
this.transactionEvents.addArticleLineAt.next({ sku: article.articleNumber, amount: 1, lineNr: this.currentArticleLineNr, beforeOrAfter: this.currentPositionGridRow });
|
|
5172
|
+
}
|
|
5173
|
+
addToCart(article) {
|
|
5174
|
+
this.transactionEvents.addArticleLineAt.next({ sku: article.articleNumber, amount: 1, lineNr: this.currentArticleLineNr, beforeOrAfter: this.currentPositionGridRow });
|
|
5175
|
+
}
|
|
5176
|
+
addArticleLineAt(articleNo, amount, lineNr, beforeOrAfter) {
|
|
5177
|
+
this.transactionEvents.addArticleLineAt.next({ sku: articleNo, amount: amount, lineNr: lineNr, beforeOrAfter: beforeOrAfter });
|
|
5178
|
+
}
|
|
5179
|
+
addTextLineAt(text, lineNr, beforeOrAfter) {
|
|
5180
|
+
this.transactionEvents.addTextLineAt.next({ text: text, lineNr: lineNr, beforeOrAfter: beforeOrAfter });
|
|
5181
|
+
}
|
|
4877
5182
|
addArticleByBySelectorResult(selectorResult, popCart) {
|
|
4878
5183
|
this.transactionEvents.addToCartBySelectorResult.next({ selectorResult: selectorResult, popCart: popCart });
|
|
4879
5184
|
}
|
|
@@ -4897,9 +5202,19 @@ class IoneShoppingCartComponent {
|
|
|
4897
5202
|
});
|
|
4898
5203
|
});
|
|
4899
5204
|
}
|
|
5205
|
+
_handleAddArticleLine(args) {
|
|
5206
|
+
//this.addArticleLine.next(args);
|
|
5207
|
+
this.showCatalogSidebar = true;
|
|
5208
|
+
this.currentArticleLineNr = args.lineNr;
|
|
5209
|
+
this.currentPositionGridRow = args.beforeOrAfter;
|
|
5210
|
+
}
|
|
5211
|
+
_handleAddTextLine(args) {
|
|
5212
|
+
this.addTextLine.next(args);
|
|
5213
|
+
}
|
|
4900
5214
|
}
|
|
4901
5215
|
IoneShoppingCartComponent.decorators = [
|
|
4902
5216
|
{ type: Component, args: [{
|
|
5217
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
4903
5218
|
selector: "ione-shopping-cart",
|
|
4904
5219
|
template: `
|
|
4905
5220
|
<ng-container *ngIf="upAndLoaded">
|
|
@@ -4938,7 +5253,9 @@ IoneShoppingCartComponent.propDecorators = {
|
|
|
4938
5253
|
hideCloseCartButton: [{ type: Input }],
|
|
4939
5254
|
closeCart: [{ type: Output }],
|
|
4940
5255
|
checkout: [{ type: Output }],
|
|
4941
|
-
overview: [{ type: Output }]
|
|
5256
|
+
overview: [{ type: Output }],
|
|
5257
|
+
addArticleLine: [{ type: Output }],
|
|
5258
|
+
addTextLine: [{ type: Output }]
|
|
4942
5259
|
};
|
|
4943
5260
|
|
|
4944
5261
|
class ShoppingCartLineComponent {
|
|
@@ -5087,7 +5404,7 @@ ShoppingCartLineComponent.decorators = [
|
|
|
5087
5404
|
[textContent]="line.text">
|
|
5088
5405
|
</div>
|
|
5089
5406
|
`,
|
|
5090
|
-
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"]
|
|
5407
|
+
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-reverse}.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"]
|
|
5091
5408
|
},] }
|
|
5092
5409
|
];
|
|
5093
5410
|
ShoppingCartLineComponent.ctorParameters = () => [
|
|
@@ -5257,10 +5574,9 @@ IoneShoppingCartModule.decorators = [
|
|
|
5257
5574
|
PopupModule.forRoot(),
|
|
5258
5575
|
CoSidebarModule,
|
|
5259
5576
|
CoGridModule,
|
|
5260
|
-
CoreModule
|
|
5577
|
+
CoreModule
|
|
5261
5578
|
],
|
|
5262
5579
|
providers: [
|
|
5263
|
-
IOneConnectorAdapterService,
|
|
5264
5580
|
DictionaryService,
|
|
5265
5581
|
TransactionService,
|
|
5266
5582
|
OptionsService
|
|
@@ -5268,16 +5584,1959 @@ IoneShoppingCartModule.decorators = [
|
|
|
5268
5584
|
entryComponents: [
|
|
5269
5585
|
IoneShoppingCartComponent
|
|
5270
5586
|
],
|
|
5271
|
-
exports: [IoneShoppingCartComponent],
|
|
5587
|
+
exports: [IoneShoppingCartComponent, StockStatusIndicatorComponent],
|
|
5272
5588
|
bootstrap: [IoneShoppingCartComponent]
|
|
5273
5589
|
},] }
|
|
5274
5590
|
];
|
|
5275
5591
|
|
|
5592
|
+
class IoneServiceOrderComponent {
|
|
5593
|
+
constructor(_changeDetector, _optionsService, _connector, _dictionary, _service) {
|
|
5594
|
+
this._changeDetector = _changeDetector;
|
|
5595
|
+
this._optionsService = _optionsService;
|
|
5596
|
+
this._connector = _connector;
|
|
5597
|
+
this._dictionary = _dictionary;
|
|
5598
|
+
this._service = _service;
|
|
5599
|
+
this.orderNr = 0;
|
|
5600
|
+
this.orderId = 0;
|
|
5601
|
+
this.upAndLoaded = false;
|
|
5602
|
+
this._subscriptions = [];
|
|
5603
|
+
this._remoteOptions = true;
|
|
5604
|
+
this._publicOptions = true;
|
|
5605
|
+
this._subscriptions.push(this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)));
|
|
5606
|
+
}
|
|
5607
|
+
set options(value) {
|
|
5608
|
+
if (value) {
|
|
5609
|
+
let options;
|
|
5610
|
+
if (typeof value === "string") {
|
|
5611
|
+
options = JSON.parse(value);
|
|
5612
|
+
}
|
|
5613
|
+
else {
|
|
5614
|
+
options = value;
|
|
5615
|
+
}
|
|
5616
|
+
this._publicOptions = true;
|
|
5617
|
+
this._optionsService.initialize(options).then();
|
|
5618
|
+
}
|
|
5619
|
+
}
|
|
5620
|
+
ngOnInit() {
|
|
5621
|
+
if (!this._publicOptions) {
|
|
5622
|
+
this._optionsService.initializeDevelopmentOptions(this._remoteOptions);
|
|
5623
|
+
}
|
|
5624
|
+
}
|
|
5625
|
+
ngOnDestroy() {
|
|
5626
|
+
this._subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
5627
|
+
}
|
|
5628
|
+
_handleSettingsLoaded(loaded) {
|
|
5629
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5630
|
+
if (loaded) {
|
|
5631
|
+
yield this._initConnection().then();
|
|
5632
|
+
this.upAndLoaded = true;
|
|
5633
|
+
}
|
|
5634
|
+
});
|
|
5635
|
+
}
|
|
5636
|
+
_initConnection() {
|
|
5637
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5638
|
+
yield this._connector.connect(this._optionsService.options);
|
|
5639
|
+
if (this.orderNr) {
|
|
5640
|
+
yield this._service.getTransaction(this.orderNr);
|
|
5641
|
+
}
|
|
5642
|
+
else if (this.orderId) {
|
|
5643
|
+
yield this._service.getTransactionById(this.orderId);
|
|
5644
|
+
}
|
|
5645
|
+
else {
|
|
5646
|
+
yield this._service.getTransaction(IoneServiceOrderComponent.TEST_ORDER_NR);
|
|
5647
|
+
}
|
|
5648
|
+
if (this._optionsService.options.url) {
|
|
5649
|
+
this._dictionary.rootUrl = this._optionsService.options.url.replace("/ajaxservice", "");
|
|
5650
|
+
}
|
|
5651
|
+
yield this._dictionary.setDictionary(this._optionsService.options.languageCode);
|
|
5652
|
+
setTimeout(() => {
|
|
5653
|
+
this._changeDetector.detectChanges();
|
|
5654
|
+
});
|
|
5655
|
+
});
|
|
5656
|
+
}
|
|
5657
|
+
}
|
|
5658
|
+
IoneServiceOrderComponent.TEST_ORDER_NR = 18156;
|
|
5659
|
+
IoneServiceOrderComponent.decorators = [
|
|
5660
|
+
{ type: Component, args: [{
|
|
5661
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
5662
|
+
selector: "ione-service-order",
|
|
5663
|
+
template: `
|
|
5664
|
+
<div>
|
|
5665
|
+
<service-order></service-order>
|
|
5666
|
+
</div>
|
|
5667
|
+
<transaction-sidebar-right></transaction-sidebar-right>
|
|
5668
|
+
`
|
|
5669
|
+
},] }
|
|
5670
|
+
];
|
|
5671
|
+
IoneServiceOrderComponent.ctorParameters = () => [
|
|
5672
|
+
{ type: ChangeDetectorRef },
|
|
5673
|
+
{ type: OptionsService },
|
|
5674
|
+
{ type: IOneConnectorAdapterService },
|
|
5675
|
+
{ type: DictionaryService },
|
|
5676
|
+
{ type: TransactionService }
|
|
5677
|
+
];
|
|
5678
|
+
IoneServiceOrderComponent.propDecorators = {
|
|
5679
|
+
orderNr: [{ type: Input }],
|
|
5680
|
+
orderId: [{ type: Input }],
|
|
5681
|
+
options: [{ type: Input }]
|
|
5682
|
+
};
|
|
5683
|
+
|
|
5684
|
+
class TransactionBaseComponent {
|
|
5685
|
+
constructor(service) {
|
|
5686
|
+
this.service = service;
|
|
5687
|
+
this.relation = NULL_RELATION_LIST_OBJECT;
|
|
5688
|
+
this.customer = NULL_CUSTOMER_FULL_OBJECT;
|
|
5689
|
+
this._isService = false;
|
|
5690
|
+
this.basedOnProduct = false;
|
|
5691
|
+
}
|
|
5692
|
+
set transaction(value) {
|
|
5693
|
+
this._transaction = value;
|
|
5694
|
+
if (this._transaction && this._transaction.transactionInfo) {
|
|
5695
|
+
this._isService = this._transaction.transactionInfo.transactionKind === TransactionKind.ServiceOrder;
|
|
5696
|
+
}
|
|
5697
|
+
}
|
|
5698
|
+
get transaction() {
|
|
5699
|
+
return this._transaction;
|
|
5700
|
+
}
|
|
5701
|
+
get transactionInfo() {
|
|
5702
|
+
return this._transaction.transactionInfo;
|
|
5703
|
+
}
|
|
5704
|
+
get transactionLines() {
|
|
5705
|
+
if (this._transaction) {
|
|
5706
|
+
return this._transaction.transactionLines;
|
|
5707
|
+
}
|
|
5708
|
+
}
|
|
5709
|
+
get transactionTotal() {
|
|
5710
|
+
if (this._transaction) {
|
|
5711
|
+
return this._transaction.transactionTotal;
|
|
5712
|
+
}
|
|
5713
|
+
}
|
|
5714
|
+
get isService() {
|
|
5715
|
+
return this._isService;
|
|
5716
|
+
}
|
|
5717
|
+
set relationId(value) {
|
|
5718
|
+
if (value === undefined) {
|
|
5719
|
+
return;
|
|
5720
|
+
}
|
|
5721
|
+
this._relationId = value;
|
|
5722
|
+
this._retrieveRelation();
|
|
5723
|
+
}
|
|
5724
|
+
get relationId() {
|
|
5725
|
+
return this._relationId;
|
|
5726
|
+
}
|
|
5727
|
+
set customerId(value) {
|
|
5728
|
+
if (value === undefined) {
|
|
5729
|
+
return;
|
|
5730
|
+
}
|
|
5731
|
+
this._customerId = value;
|
|
5732
|
+
this._retrieveCustomer();
|
|
5733
|
+
}
|
|
5734
|
+
get customerId() {
|
|
5735
|
+
return this._customerId;
|
|
5736
|
+
}
|
|
5737
|
+
set product(value) {
|
|
5738
|
+
this._product = value;
|
|
5739
|
+
this.productSet();
|
|
5740
|
+
this._setBasedOnProduct();
|
|
5741
|
+
}
|
|
5742
|
+
get product() {
|
|
5743
|
+
return this._product;
|
|
5744
|
+
}
|
|
5745
|
+
get isNew() {
|
|
5746
|
+
return isNill$1(this.transaction) || isNill$1(this.transactionInfo.transactionNr);
|
|
5747
|
+
}
|
|
5748
|
+
transactionSet() {
|
|
5749
|
+
// overridden by descendents
|
|
5750
|
+
}
|
|
5751
|
+
productSet() {
|
|
5752
|
+
// overridden by descendents
|
|
5753
|
+
}
|
|
5754
|
+
_retrieveCustomer() {
|
|
5755
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5756
|
+
this.customer = yield this.service.getCustomerFulObjectByRelationId(this._customerId);
|
|
5757
|
+
});
|
|
5758
|
+
}
|
|
5759
|
+
_retrieveRelation() {
|
|
5760
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5761
|
+
const relationRequest = new RelationRequest();
|
|
5762
|
+
let relations = [];
|
|
5763
|
+
relationRequest.relationId = this.relationId;
|
|
5764
|
+
relations = yield this.service.getRelationListObjects(relationRequest);
|
|
5765
|
+
if (relations && relations.length) {
|
|
5766
|
+
this.relation = relations[0];
|
|
5767
|
+
}
|
|
5768
|
+
});
|
|
5769
|
+
}
|
|
5770
|
+
_setBasedOnProduct() {
|
|
5771
|
+
if (this.product) {
|
|
5772
|
+
this.basedOnProduct = true;
|
|
5773
|
+
}
|
|
5774
|
+
else { //check transaction (service) for product
|
|
5775
|
+
// TODO: assProduct is not a property of transaction right now.
|
|
5776
|
+
// this.basedOnProduct = notNill(this._transaction.assProduct);
|
|
5777
|
+
// if (this.basedOnProduct) {
|
|
5778
|
+
// this._product = this.transaction.assProduct;
|
|
5779
|
+
// }
|
|
5780
|
+
}
|
|
5781
|
+
}
|
|
5782
|
+
}
|
|
5783
|
+
TransactionBaseComponent.decorators = [
|
|
5784
|
+
{ type: Directive }
|
|
5785
|
+
];
|
|
5786
|
+
TransactionBaseComponent.ctorParameters = () => [
|
|
5787
|
+
{ type: TransactionService }
|
|
5788
|
+
];
|
|
5789
|
+
TransactionBaseComponent.propDecorators = {
|
|
5790
|
+
transaction: [{ type: Input }],
|
|
5791
|
+
relationId: [{ type: Input }],
|
|
5792
|
+
customerId: [{ type: Input }],
|
|
5793
|
+
product: [{ type: Input }],
|
|
5794
|
+
relation: [{ type: Input }],
|
|
5795
|
+
customer: [{ type: Input }]
|
|
5796
|
+
};
|
|
5797
|
+
|
|
5798
|
+
class TransactionArticleTextComponent extends TransactionBaseComponent {
|
|
5799
|
+
constructor(service) {
|
|
5800
|
+
super(service);
|
|
5801
|
+
this.service = service;
|
|
5802
|
+
this.visible = false;
|
|
5803
|
+
this.floatButtonSelected = false;
|
|
5804
|
+
this.overviewSelected = false;
|
|
5805
|
+
this.editArtikelText = false;
|
|
5806
|
+
this.collection = [
|
|
5807
|
+
{ id: 1, name: "Standaardtekst 1" },
|
|
5808
|
+
{ id: 2, name: "Standaardtekst 1" },
|
|
5809
|
+
{ id: 3, name: "Standaardtekst 1" },
|
|
5810
|
+
{ id: 4, name: "Standaardtekst 1" },
|
|
5811
|
+
{ id: 5, name: "Standaardtekst 1" }
|
|
5812
|
+
];
|
|
5813
|
+
this.articleTexts = [
|
|
5814
|
+
{ title: "title 1", description: "Omschrijving 1" },
|
|
5815
|
+
{ title: "title 2", description: "Omschrijving 2" },
|
|
5816
|
+
{ title: "title 3", description: "Omschrijving 3" },
|
|
5817
|
+
{ title: "title 4", description: "Omschrijving 4" },
|
|
5818
|
+
{ title: "title 5", description: "Omschrijving 5" },
|
|
5819
|
+
];
|
|
5820
|
+
this.fields = { text: "name", value: "id" };
|
|
5821
|
+
}
|
|
5822
|
+
onOkClick() {
|
|
5823
|
+
this.hide();
|
|
5824
|
+
}
|
|
5825
|
+
onPopupClose() {
|
|
5826
|
+
this.hide();
|
|
5827
|
+
this.hideOverview();
|
|
5828
|
+
this.hideEditArtikelText();
|
|
5829
|
+
}
|
|
5830
|
+
hide() {
|
|
5831
|
+
// TODO: throw hide event
|
|
5832
|
+
this.visible = false;
|
|
5833
|
+
}
|
|
5834
|
+
onOverview() {
|
|
5835
|
+
this.overviewSelected = true;
|
|
5836
|
+
}
|
|
5837
|
+
onOkOverviewClick() {
|
|
5838
|
+
this.hideOverview();
|
|
5839
|
+
}
|
|
5840
|
+
hideOverview() {
|
|
5841
|
+
this.overviewSelected = false;
|
|
5842
|
+
}
|
|
5843
|
+
onDetailLinkClick(bo) {
|
|
5844
|
+
this.editArtikelText = true;
|
|
5845
|
+
}
|
|
5846
|
+
hideEditArtikelText() {
|
|
5847
|
+
this.editArtikelText = false;
|
|
5848
|
+
}
|
|
5849
|
+
onOkEditArtikelTextClick() {
|
|
5850
|
+
this.editArtikelText = false;
|
|
5851
|
+
}
|
|
5852
|
+
}
|
|
5853
|
+
TransactionArticleTextComponent.decorators = [
|
|
5854
|
+
{ type: Component, args: [{
|
|
5855
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
5856
|
+
selector: "transaction-article-text",
|
|
5857
|
+
template: `
|
|
5858
|
+
<co-dialog [visible]="visible" (close)="onPopupClose()">
|
|
5859
|
+
<ng-container header>{{ subHeader }}</ng-container>
|
|
5860
|
+
<ng-container content>
|
|
5861
|
+
<div class="tags-join-content" fxLayout fxLayoutGap="10px">
|
|
5862
|
+
<div class="column-separator">
|
|
5863
|
+
<co-input-text placeholder="Titel"></co-input-text>
|
|
5864
|
+
<!--transactiontransaction-->
|
|
5865
|
+
<!-- label="Artikeltekst"-->
|
|
5866
|
+
<!-- ></co-text-editor>-->
|
|
5867
|
+
</div>
|
|
5868
|
+
<div style="margin-left:5px;">
|
|
5869
|
+
<div style="margin-top:16px;">
|
|
5870
|
+
<ejs-dropdownlist
|
|
5871
|
+
[dataSource]="collection"
|
|
5872
|
+
[fields]="fields"
|
|
5873
|
+
placeholder="Standaardteksten"
|
|
5874
|
+
></ejs-dropdownlist>
|
|
5875
|
+
</div>
|
|
5876
|
+
<div style="margin-top:20px;">
|
|
5877
|
+
<co-input-checkbox
|
|
5878
|
+
label="Artikelgebonden tekst"
|
|
5879
|
+
name="articleBoundText">
|
|
5880
|
+
</co-input-checkbox>
|
|
5881
|
+
</div>
|
|
5882
|
+
<div style="margin-top:20px;">
|
|
5883
|
+
<label>Bestemd voor documenten</label>
|
|
5884
|
+
<ejs-chiplist id="chip-default">
|
|
5885
|
+
<e-chips>
|
|
5886
|
+
<e-chip text="Apple" cssClass="e-primary"></e-chip>
|
|
5887
|
+
<e-chip text="Microsoft" cssClass="e-info"></e-chip>
|
|
5888
|
+
<e-chip text="Google" cssClass="e-success"></e-chip>
|
|
5889
|
+
<e-chip text="Tesla" cssClass="e-warning"></e-chip>
|
|
5890
|
+
<e-chip text="Intel" cssClass="e-danger"></e-chip>
|
|
5891
|
+
</e-chips>
|
|
5892
|
+
</ejs-chiplist>
|
|
5893
|
+
</div>
|
|
5894
|
+
</div>
|
|
5895
|
+
</div>
|
|
5896
|
+
</ng-container>
|
|
5897
|
+
<ng-container footer>
|
|
5898
|
+
<div class="footer" fxLayout fxLayoutAlign="center center" fxLayoutGap="10px" style="margin-top:30px;">
|
|
5899
|
+
<co-button label="OK" (click)="onOkClick()"></co-button>
|
|
5900
|
+
<co-button label="CANCEL" (click)="hide()"></co-button>
|
|
5901
|
+
<co-button label="OVERVIEW" (click)="onOverview()"></co-button>
|
|
5902
|
+
</div>
|
|
5903
|
+
</ng-container>
|
|
5904
|
+
</co-dialog>
|
|
5905
|
+
|
|
5906
|
+
<co-dialog [visible]="overviewSelected" (close)="hideOverview()">
|
|
5907
|
+
<ng-container header>Artikelgebonden teksten {{ subHeader }}</ng-container>
|
|
5908
|
+
<ng-container content>
|
|
5909
|
+
<div class="tags-join-content" fxLayout fxLayoutGap="10px">
|
|
5910
|
+
<div class="column-separator" style="width:75%">
|
|
5911
|
+
<!-- <grid [data]="articleTexts" detailLink (detailLinkClick)="onDetailLinkClick($event)">-->
|
|
5912
|
+
<!-- <grid-column key="title" header="TITLE" width="100px;"></grid-column>-->
|
|
5913
|
+
<!-- <grid-column key="description" header="DESCRIPTION" width="200px"></grid-column>-->
|
|
5914
|
+
<!-- </grid>-->
|
|
5915
|
+
</div>
|
|
5916
|
+
<div style="margin-left:5px;">
|
|
5917
|
+
<div style="margin-top:20px;">
|
|
5918
|
+
|
|
5919
|
+
<co-input-checkbox
|
|
5920
|
+
label="Artikelgebonden tekst"
|
|
5921
|
+
name="articleBoundText"
|
|
5922
|
+
value="true"
|
|
5923
|
+
></co-input-checkbox>
|
|
5924
|
+
</div>
|
|
5925
|
+
<div style="margin-top:20px;">
|
|
5926
|
+
<label>Bestemd voor documenten</label>
|
|
5927
|
+
<ejs-chiplist id="chip-default">
|
|
5928
|
+
<e-chips>
|
|
5929
|
+
<e-chip text="Apple" cssClass="e-primary"></e-chip>
|
|
5930
|
+
<e-chip text="Microsoft" cssClass="e-info"></e-chip>
|
|
5931
|
+
<e-chip text="Google" cssClass="e-success"></e-chip>
|
|
5932
|
+
<e-chip text="Tesla" cssClass="e-warning"></e-chip>
|
|
5933
|
+
<e-chip text="Intel" cssClass="e-danger"></e-chip>
|
|
5934
|
+
</e-chips>
|
|
5935
|
+
</ejs-chiplist>
|
|
5936
|
+
</div>
|
|
5937
|
+
</div>
|
|
5938
|
+
</div>
|
|
5939
|
+
</ng-container>
|
|
5940
|
+
<ng-container footer>
|
|
5941
|
+
<div class="footer" fxLayout fxPosition="row" fxLayoutAlign="center center" fxLayoutGap="10px" style="margin-top:30px;">
|
|
5942
|
+
<co-button label="OK" (click)="onOkOverviewClick()"></co-button>
|
|
5943
|
+
<co-button label="CANCEL" (click)="hideOverview()"></co-button>
|
|
5944
|
+
</div>
|
|
5945
|
+
</ng-container>
|
|
5946
|
+
</co-dialog>
|
|
5947
|
+
|
|
5948
|
+
<co-dialog [visible]="editArtikelText" (close)="hideEditArtikelText()">
|
|
5949
|
+
<ng-container header>{{ subHeader }}</ng-container>
|
|
5950
|
+
<ng-container content>
|
|
5951
|
+
<div class="tags-join-content" fxLayout fxLayoutGap="10px">
|
|
5952
|
+
<div class="column-separator">
|
|
5953
|
+
<co-input-text placeholder="Titel"></co-input-text>
|
|
5954
|
+
<!-- <co-text-editor-->
|
|
5955
|
+
<!-- label="Artikeltekst"-->
|
|
5956
|
+
<!-- ></co-text-editor>-->
|
|
5957
|
+
</div>
|
|
5958
|
+
</div>
|
|
5959
|
+
</ng-container>
|
|
5960
|
+
<ng-container footer>
|
|
5961
|
+
<div class="footer" fxLayout fxLayoutAlign="center center" fxLayoutGap="10px" style="margin-top:30px;">
|
|
5962
|
+
<co-button label="OK" (click)="onOkEditArtikelTextClick()"></co-button>
|
|
5963
|
+
<co-button label="CANCEL" (click)="hideEditArtikelText()"></co-button>
|
|
5964
|
+
</div>
|
|
5965
|
+
</ng-container>
|
|
5966
|
+
</co-dialog>
|
|
5967
|
+
`,
|
|
5968
|
+
styles: [""]
|
|
5969
|
+
},] }
|
|
5970
|
+
];
|
|
5971
|
+
TransactionArticleTextComponent.ctorParameters = () => [
|
|
5972
|
+
{ type: TransactionService }
|
|
5973
|
+
];
|
|
5974
|
+
TransactionArticleTextComponent.propDecorators = {
|
|
5975
|
+
subHeader: [{ type: Input }]
|
|
5976
|
+
};
|
|
5977
|
+
|
|
5978
|
+
class ServiceOrderComponent extends TransactionBaseComponent {
|
|
5979
|
+
constructor(service, transactionEvents, iconCacheService) {
|
|
5980
|
+
super(service);
|
|
5981
|
+
this.service = service;
|
|
5982
|
+
this.transactionEvents = transactionEvents;
|
|
5983
|
+
this.iconCacheService = iconCacheService;
|
|
5984
|
+
this.iconThickLines = CoreComponentsIcon.ThickLines;
|
|
5985
|
+
this.iconThinLines = CoreComponentsIcon.ThinLines;
|
|
5986
|
+
this.iconOrder = CoreComponentsIcon.Order;
|
|
5987
|
+
this.viewModes = ContentViewMode;
|
|
5988
|
+
this.canPlanDelivery = false;
|
|
5989
|
+
this.showTotals = true;
|
|
5990
|
+
this.contextMenuItems = [];
|
|
5991
|
+
this.isRouteOptimizationConfigured = false;
|
|
5992
|
+
this.activeViewMode = ContentViewMode.List;
|
|
5993
|
+
this.floatButtonSelected = false;
|
|
5994
|
+
this._subs = [];
|
|
5995
|
+
}
|
|
5996
|
+
get inListView() {
|
|
5997
|
+
return this.activeViewMode === ContentViewMode.List;
|
|
5998
|
+
}
|
|
5999
|
+
get inGridView() {
|
|
6000
|
+
return this.activeViewMode === ContentViewMode.Grid;
|
|
6001
|
+
}
|
|
6002
|
+
ngOnInit() {
|
|
6003
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
6004
|
+
this._subs.push(this.service.transactionLoaded.subscribe((transactionInfoResponse) => {
|
|
6005
|
+
if (transactionInfoResponse.isSuccess) {
|
|
6006
|
+
this.transaction = transactionInfoResponse;
|
|
6007
|
+
if (this.transaction && this.transaction.transactionInfo) {
|
|
6008
|
+
this.customerId = Number(this.transaction.transactionInfo.relation.relationNr);
|
|
6009
|
+
this.relationId = this.transaction.transactionInfo.relation.relationId;
|
|
6010
|
+
}
|
|
6011
|
+
}
|
|
6012
|
+
}), this.transactionEvents.rightSidebarClose.subscribe(() => {
|
|
6013
|
+
this.moveFloatingButtonToRight();
|
|
6014
|
+
}), this.transactionEvents.transactionLineClicked.subscribe((transactionLine) => {
|
|
6015
|
+
this._selectedTransLine = transactionLine;
|
|
6016
|
+
this.moveFloatingButtonToLeft();
|
|
6017
|
+
}), this.transactionEvents.scrollContent.subscribe((event) => {
|
|
6018
|
+
this.hideOrderTotals(event);
|
|
6019
|
+
}));
|
|
6020
|
+
});
|
|
6021
|
+
}
|
|
6022
|
+
ngOnDestroy() {
|
|
6023
|
+
this._subs.forEach(sub => sub.unsubscribe());
|
|
6024
|
+
}
|
|
6025
|
+
animationFn() {
|
|
6026
|
+
return trigger("showPopup", [
|
|
6027
|
+
state("void", style({ transform: "translate3d(0, 0, 0)" })),
|
|
6028
|
+
state("*", style({ transform: "translate3d(100%, 0, 0)" })),
|
|
6029
|
+
transition("void <=> *", [
|
|
6030
|
+
animate("200ms ease-in-out")
|
|
6031
|
+
])
|
|
6032
|
+
]);
|
|
6033
|
+
}
|
|
6034
|
+
trackByFn(index, line) {
|
|
6035
|
+
return line.lineNr;
|
|
6036
|
+
}
|
|
6037
|
+
handleRowsSelected(rows) {
|
|
6038
|
+
this._selectedTransLine = rows.find(x => x !== undefined);
|
|
6039
|
+
}
|
|
6040
|
+
handlePlanningRequest(event) {
|
|
6041
|
+
// TODO: handlePlanningRequest... from new Planning package
|
|
6042
|
+
}
|
|
6043
|
+
moveFloatingButtonToLeft() {
|
|
6044
|
+
if (this.floatButtonRightPosition === ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITHOUT_SIDEBAR) {
|
|
6045
|
+
this.floatButtonRightPosition = ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITH_SIDEBAR;
|
|
6046
|
+
}
|
|
6047
|
+
}
|
|
6048
|
+
moveFloatingButtonToRight() {
|
|
6049
|
+
if (this.floatButtonRightPosition === ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITH_SIDEBAR) {
|
|
6050
|
+
this.floatButtonRightPosition = ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITHOUT_SIDEBAR;
|
|
6051
|
+
}
|
|
6052
|
+
}
|
|
6053
|
+
onOkClick() {
|
|
6054
|
+
this.hide();
|
|
6055
|
+
}
|
|
6056
|
+
hide() {
|
|
6057
|
+
this.floatButtonSelected = false;
|
|
6058
|
+
}
|
|
6059
|
+
floatButtonClick() {
|
|
6060
|
+
this.floatButtonSelected = true;
|
|
6061
|
+
this._transactionArticleTextComponent.visible = this.floatButtonSelected;
|
|
6062
|
+
}
|
|
6063
|
+
get subHeader() {
|
|
6064
|
+
if (this._selectedTransLine && this._selectedTransLine !== undefined) {
|
|
6065
|
+
return this._selectedTransLine.goodDescription;
|
|
6066
|
+
}
|
|
6067
|
+
return "";
|
|
6068
|
+
}
|
|
6069
|
+
hideOrderTotals(event) {
|
|
6070
|
+
this.showTotals = false;
|
|
6071
|
+
}
|
|
6072
|
+
}
|
|
6073
|
+
ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITHOUT_SIDEBAR = 50;
|
|
6074
|
+
ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITH_SIDEBAR = 350;
|
|
6075
|
+
ServiceOrderComponent.decorators = [
|
|
6076
|
+
{ type: Component, args: [{
|
|
6077
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
6078
|
+
selector: "service-order",
|
|
6079
|
+
template: `
|
|
6080
|
+
<div id="transaction-general-tab" style="height:100%;">
|
|
6081
|
+
<transaction-header-block
|
|
6082
|
+
[relationId]="relationId"
|
|
6083
|
+
[transaction]="transaction"
|
|
6084
|
+
[canPlanDelivery]="canPlanDelivery"
|
|
6085
|
+
(planningRequestButtonClick)="handlePlanningRequest($event)"
|
|
6086
|
+
></transaction-header-block>
|
|
6087
|
+
<div *ngIf="!isService">
|
|
6088
|
+
<div class="transaction-view" fxLayout="row" fxLayoutGap="1px" fxLayoutAlign="flex-end">
|
|
6089
|
+
<div class="view-mode-buttons">
|
|
6090
|
+
<co-button [iconData]="iconCacheService.getIcon(iconThickLines)"
|
|
6091
|
+
[title]="'LIST_VIEW' | localize"
|
|
6092
|
+
(click)="this.activeViewMode = viewModes.List"
|
|
6093
|
+
class="triangle white"
|
|
6094
|
+
iconClass="medium light"></co-button>
|
|
6095
|
+
<co-button [iconData]="iconCacheService.getIcon(iconThinLines)"
|
|
6096
|
+
[title]="'GRID_VIEW' | localize"
|
|
6097
|
+
(click)="this.activeViewMode = viewModes.Grid"
|
|
6098
|
+
class="triangle white"
|
|
6099
|
+
iconClass="medium light"></co-button>
|
|
6100
|
+
</div>
|
|
6101
|
+
</div>
|
|
6102
|
+
<div *ngIf="this.activeViewMode === viewModes.List">
|
|
6103
|
+
<transaction-order-line-view *ngFor="let line of transactionLines; trackBy:trackByFn;"
|
|
6104
|
+
[line]="line"
|
|
6105
|
+
></transaction-order-line-view>
|
|
6106
|
+
</div>
|
|
6107
|
+
<div *ngIf="this.activeViewMode === viewModes.Grid">
|
|
6108
|
+
<transaction-order-lines [transaction]="transaction"></transaction-order-lines>
|
|
6109
|
+
</div>
|
|
6110
|
+
<div class="floating-icon-wrapper" [style.right.px]="floatButtonRightPosition">
|
|
6111
|
+
<icon [icon]="iconOrder"
|
|
6112
|
+
class="light"
|
|
6113
|
+
(click)="floatButtonClick()" id="floatingIcon"
|
|
6114
|
+
[style.right.px]="floatButtonRightPosition"></icon>
|
|
6115
|
+
</div>
|
|
6116
|
+
</div>
|
|
6117
|
+
<transaction-order-totals *ngIf="!isService"
|
|
6118
|
+
[transactionTotal]="transactionTotal"
|
|
6119
|
+
[ngClass]="showTotals ? 'transaction-totals-show' : 'transaction-totals-hide'"></transaction-order-totals>
|
|
6120
|
+
</div>
|
|
6121
|
+
|
|
6122
|
+
<transaction-article-text></transaction-article-text>
|
|
6123
|
+
`,
|
|
6124
|
+
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"]
|
|
6125
|
+
},] }
|
|
6126
|
+
];
|
|
6127
|
+
ServiceOrderComponent.ctorParameters = () => [
|
|
6128
|
+
{ type: TransactionService },
|
|
6129
|
+
{ type: TransactionEventService },
|
|
6130
|
+
{ type: IconCacheService }
|
|
6131
|
+
];
|
|
6132
|
+
ServiceOrderComponent.propDecorators = {
|
|
6133
|
+
_transactionArticleTextComponent: [{ type: ViewChild, args: [TransactionArticleTextComponent, { static: false },] }]
|
|
6134
|
+
};
|
|
6135
|
+
|
|
6136
|
+
class TransactionOrderTotalsComponent /*extends TransactionBaseComponent*/ {
|
|
6137
|
+
constructor(service) {
|
|
6138
|
+
this.service = service;
|
|
6139
|
+
//super(service);
|
|
6140
|
+
}
|
|
6141
|
+
}
|
|
6142
|
+
TransactionOrderTotalsComponent.decorators = [
|
|
6143
|
+
{ type: Component, args: [{
|
|
6144
|
+
selector: "transaction-order-totals",
|
|
6145
|
+
template: `
|
|
6146
|
+
<div class="totals-wrapper">
|
|
6147
|
+
<div class="totals-item">
|
|
6148
|
+
<div class="totals-item-description" [textContent]="'SUBTOTAL' | localize"></div>
|
|
6149
|
+
<div class="totals-item-value" [textContent]="transactionTotal.grossAmount | coCurrency | coCurrency"></div>
|
|
6150
|
+
</div>
|
|
6151
|
+
<div class="totals-item">
|
|
6152
|
+
<div class="totals-item-description" [textContent]="'VAT_AMOUNT' | localize"></div>
|
|
6153
|
+
<div class="totals-item-value" [textContent]="transactionTotal.surchargeAmount | coCurrency"></div>
|
|
6154
|
+
</div>
|
|
6155
|
+
<div class="totals-item total">
|
|
6156
|
+
<div class="totals-item-description" [textContent]="'TRANSACTION_SUM_I' | localize"></div>
|
|
6157
|
+
<div class="totals-item-value" [textContent]="transactionTotal.netAmount | coCurrency"></div>
|
|
6158
|
+
</div>
|
|
6159
|
+
</div>
|
|
6160
|
+
`,
|
|
6161
|
+
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"]
|
|
6162
|
+
},] }
|
|
6163
|
+
];
|
|
6164
|
+
TransactionOrderTotalsComponent.ctorParameters = () => [
|
|
6165
|
+
{ type: TransactionService }
|
|
6166
|
+
];
|
|
6167
|
+
TransactionOrderTotalsComponent.propDecorators = {
|
|
6168
|
+
transactionTotal: [{ type: Input }]
|
|
6169
|
+
};
|
|
6170
|
+
|
|
6171
|
+
class TransactionOrderLineViewComponent {
|
|
6172
|
+
constructor(_service, _eventService) {
|
|
6173
|
+
this._service = _service;
|
|
6174
|
+
this._eventService = _eventService;
|
|
6175
|
+
this.stock = StockStatus.Low;
|
|
6176
|
+
}
|
|
6177
|
+
ngOnInit() {
|
|
6178
|
+
this._loadArticleImage();
|
|
6179
|
+
}
|
|
6180
|
+
_loadArticleImage() {
|
|
6181
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
6182
|
+
if (this.line) {
|
|
6183
|
+
this.image = this.line ? yield this._service.retrieveLineImage(this.line) : undefined;
|
|
6184
|
+
}
|
|
6185
|
+
});
|
|
6186
|
+
}
|
|
6187
|
+
transactionLineClick(line) {
|
|
6188
|
+
this._eventService.transactionLineClicked.next(this.line);
|
|
6189
|
+
}
|
|
6190
|
+
}
|
|
6191
|
+
TransactionOrderLineViewComponent.decorators = [
|
|
6192
|
+
{ type: Component, args: [{
|
|
6193
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
6194
|
+
selector: "transaction-order-line-view",
|
|
6195
|
+
template: `
|
|
6196
|
+
<div class="transaction-order-line-r" fxFlex (click)="transactionLineClick(line)">
|
|
6197
|
+
<div fxLayout="row" class="full-width">
|
|
6198
|
+
<div fxLayout="column" class="transaction-order-line-description" fxLayoutGap="20px">
|
|
6199
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6200
|
+
<span [textContent]="line.goodDescription" class="cart-line-description-main"></span>
|
|
6201
|
+
<span *ngIf="line.goodDescription && line.articleNumber">|</span>
|
|
6202
|
+
<span [textContent]="line.articleNumber" class="cart-line-description-artnr"></span>
|
|
6203
|
+
</div>
|
|
6204
|
+
<div>
|
|
6205
|
+
<span [innerHTML]="line.configurationReadable" class="cart-line-description-detail"></span>
|
|
6206
|
+
</div>
|
|
6207
|
+
</div>
|
|
6208
|
+
<div fxLayout="column" class="transaction-order-line-image">
|
|
6209
|
+
<image-display [model]="image"></image-display>
|
|
6210
|
+
</div>
|
|
6211
|
+
</div>
|
|
6212
|
+
<div fxLayout="row" class="transaction-order-line-right">
|
|
6213
|
+
<div fxLayout="column" class="transaction-order-line-stock">
|
|
6214
|
+
<span [textContent]="'STOCK' | localize" class="small-font"></span>
|
|
6215
|
+
<stock-status-indicator [model]="stock"></stock-status-indicator>
|
|
6216
|
+
<span [textContent]="'DELIVERY_TIME_PERIOD' | localize" class="small-font"></span>
|
|
6217
|
+
<span [textContent]="line.deliveryDate | deliveryTime"></span>
|
|
6218
|
+
</div>
|
|
6219
|
+
<div class="transaction-order-line-amount">
|
|
6220
|
+
<co-input-number-picker
|
|
6221
|
+
class="horizontal"
|
|
6222
|
+
[(model)]="line.amount" [min]="0" [buttonShowMode]="'always'"
|
|
6223
|
+
[readonly]="true"></co-input-number-picker>
|
|
6224
|
+
</div>
|
|
6225
|
+
<div class="transaction-order-line-totals">
|
|
6226
|
+
<span [textContent]="line.netLineTotal | coCurrency: true"></span>
|
|
6227
|
+
</div>
|
|
6228
|
+
</div>
|
|
6229
|
+
</div>
|
|
6230
|
+
`,
|
|
6231
|
+
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:10em}.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"]
|
|
6232
|
+
},] }
|
|
6233
|
+
];
|
|
6234
|
+
TransactionOrderLineViewComponent.ctorParameters = () => [
|
|
6235
|
+
{ type: TransactionService },
|
|
6236
|
+
{ type: TransactionEventService }
|
|
6237
|
+
];
|
|
6238
|
+
TransactionOrderLineViewComponent.propDecorators = {
|
|
6239
|
+
line: [{ type: Input }]
|
|
6240
|
+
};
|
|
6241
|
+
|
|
6242
|
+
class TransactionOrderLinesComponent extends TransactionBaseComponent {
|
|
6243
|
+
constructor(service, _eventService, _dictionaryService) {
|
|
6244
|
+
super(service);
|
|
6245
|
+
this.service = service;
|
|
6246
|
+
this._eventService = _eventService;
|
|
6247
|
+
this._dictionaryService = _dictionaryService;
|
|
6248
|
+
this.createServiceClick = new EventEmitter();
|
|
6249
|
+
this.nothingSelected = true;
|
|
6250
|
+
this.columns = [];
|
|
6251
|
+
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") });
|
|
6252
|
+
}
|
|
6253
|
+
get pagingEnabled() {
|
|
6254
|
+
if (this.transactionLines) {
|
|
6255
|
+
return this.transactionLines.length >= TransactionOrderLinesComponent.MAX_TRANSACTION_LINES;
|
|
6256
|
+
}
|
|
6257
|
+
return false;
|
|
6258
|
+
}
|
|
6259
|
+
set selectedTransLine(value) {
|
|
6260
|
+
this._selectedTransLine = value;
|
|
6261
|
+
this.nothingSelected = this._selectedTransLine === null;
|
|
6262
|
+
}
|
|
6263
|
+
get selectedTransLine() {
|
|
6264
|
+
return this._selectedTransLine;
|
|
6265
|
+
}
|
|
6266
|
+
onRowClick(row) {
|
|
6267
|
+
this.selectedTransLine = row;
|
|
6268
|
+
this._eventService.transactionLineClicked.next(this.selectedTransLine);
|
|
6269
|
+
}
|
|
6270
|
+
onRowDeselect(event) {
|
|
6271
|
+
this.selectedTransLine = null;
|
|
6272
|
+
}
|
|
6273
|
+
// TODO: navragen wat de bedoeling is, zie originele source iOneJS
|
|
6274
|
+
newServiceRequestClick() {
|
|
6275
|
+
if (this.nothingSelected) {
|
|
6276
|
+
return;
|
|
6277
|
+
}
|
|
6278
|
+
this.createServiceClick.emit(this._selectedTransLine);
|
|
6279
|
+
}
|
|
6280
|
+
}
|
|
6281
|
+
TransactionOrderLinesComponent.MAX_TRANSACTION_LINES = 20;
|
|
6282
|
+
TransactionOrderLinesComponent.decorators = [
|
|
6283
|
+
{ type: Component, args: [{
|
|
6284
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
6285
|
+
selector: "transaction-order-lines",
|
|
6286
|
+
template: `
|
|
6287
|
+
<co-grid #transactionGrid
|
|
6288
|
+
[data]="transactionLines"
|
|
6289
|
+
[columns]="columns"
|
|
6290
|
+
[pagingEnabled]="pagingEnabled"
|
|
6291
|
+
[maxNumberOfRows]="'20'"
|
|
6292
|
+
(rowsSelected)="onRowClick($event)"
|
|
6293
|
+
></co-grid>
|
|
6294
|
+
`,
|
|
6295
|
+
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:10em}.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"]
|
|
6296
|
+
},] }
|
|
6297
|
+
];
|
|
6298
|
+
TransactionOrderLinesComponent.ctorParameters = () => [
|
|
6299
|
+
{ type: TransactionService },
|
|
6300
|
+
{ type: TransactionEventService },
|
|
6301
|
+
{ type: DictionaryService }
|
|
6302
|
+
];
|
|
6303
|
+
TransactionOrderLinesComponent.propDecorators = {
|
|
6304
|
+
transactionGrid: [{ type: ViewChild, args: ["transactionGrid",] }],
|
|
6305
|
+
createServiceClick: [{ type: Output }]
|
|
6306
|
+
};
|
|
6307
|
+
|
|
6308
|
+
class TransactionRelationAddressComponent {
|
|
6309
|
+
constructor(_dictionary, _connector) {
|
|
6310
|
+
this._dictionary = _dictionary;
|
|
6311
|
+
this._connector = _connector;
|
|
6312
|
+
this.countries = [];
|
|
6313
|
+
this.fields = { text: "description", value: "code" };
|
|
6314
|
+
this.postalCodeCheckErrorMessage = "";
|
|
6315
|
+
this._prevPostalCodeForCheck = "";
|
|
6316
|
+
}
|
|
6317
|
+
set address(address) {
|
|
6318
|
+
this._address = address;
|
|
6319
|
+
}
|
|
6320
|
+
get address() {
|
|
6321
|
+
if (this._address === undefined) {
|
|
6322
|
+
this._address = new Address();
|
|
6323
|
+
}
|
|
6324
|
+
return this._address;
|
|
6325
|
+
}
|
|
6326
|
+
ngOnInit() {
|
|
6327
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
6328
|
+
this.countries = yield this._connector.getCountries();
|
|
6329
|
+
});
|
|
6330
|
+
}
|
|
6331
|
+
checkForPostalCodeCheckError() {
|
|
6332
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
6333
|
+
if (!this.address.postalCode || isNill$1(this.address.houseNo)) {
|
|
6334
|
+
this.postalCodeCheckErrorMessage = "";
|
|
6335
|
+
return;
|
|
6336
|
+
}
|
|
6337
|
+
if (this._prevPostalCodeForCheck !== this.address.postalCode || this._prevHouseNoForCheck !== this.address.houseNo) {
|
|
6338
|
+
this._prevPostalCodeForCheck = this.address.postalCode;
|
|
6339
|
+
this._prevHouseNoForCheck = this.address.houseNo;
|
|
6340
|
+
const postalCodeResponse = yield this._connector.getPostalCodeRetrieval((this.address.postalCode ? this.address.postalCode : ""), StringUtils.ParseString(this.address.houseNo));
|
|
6341
|
+
if (postalCodeResponse && postalCodeResponse.isBadAddress) {
|
|
6342
|
+
this.postalCodeCheckErrorMessage = this._dictionary.get("UNKNOWN_ADDRESS_CHECK_IT");
|
|
6343
|
+
}
|
|
6344
|
+
else {
|
|
6345
|
+
this.postalCodeCheckErrorMessage = "";
|
|
6346
|
+
this.address.streetName = postalCodeResponse.street;
|
|
6347
|
+
this.address.city = postalCodeResponse.city;
|
|
6348
|
+
}
|
|
6349
|
+
}
|
|
6350
|
+
});
|
|
6351
|
+
}
|
|
6352
|
+
changeHouseNo() {
|
|
6353
|
+
this.address.houseNo = Number(this.address.houseNo);
|
|
6354
|
+
}
|
|
6355
|
+
}
|
|
6356
|
+
TransactionRelationAddressComponent.decorators = [
|
|
6357
|
+
{ type: Component, args: [{
|
|
6358
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
6359
|
+
selector: "transaction-relation-address",
|
|
6360
|
+
template: `
|
|
6361
|
+
<label [textContent]="label | localize"
|
|
6362
|
+
class="transaction-relation-label-h3"
|
|
6363
|
+
></label>
|
|
6364
|
+
<div class="default-flex-row">
|
|
6365
|
+
<div class="default-flex-column">
|
|
6366
|
+
<co-input-text [(model)]="address.postalCode"
|
|
6367
|
+
[placeholder]="'POSTAL_CODE' | localize"
|
|
6368
|
+
(blur)="checkForPostalCodeCheckError()"
|
|
6369
|
+
required
|
|
6370
|
+
></co-input-text>
|
|
6371
|
+
</div>
|
|
6372
|
+
<div class="default-flex-column">
|
|
6373
|
+
<co-input-text [(model)]="address.houseNo"
|
|
6374
|
+
[placeholder]="'HOUSE_NO' | localize"
|
|
6375
|
+
(blur)="checkForPostalCodeCheckError()"
|
|
6376
|
+
(modelChange) = "changeHouseNo()"
|
|
6377
|
+
required
|
|
6378
|
+
></co-input-text>
|
|
6379
|
+
</div>
|
|
6380
|
+
<div class="default-flex-column">
|
|
6381
|
+
<co-input-text [(model)]="address.houseNoAddition"
|
|
6382
|
+
[placeholder]="'HOUSE_NO_ADDITION' | localize"
|
|
6383
|
+
></co-input-text>
|
|
6384
|
+
</div>
|
|
6385
|
+
</div>
|
|
6386
|
+
<div>
|
|
6387
|
+
<div class="default-flex-row">
|
|
6388
|
+
<div class="default-flex-column">
|
|
6389
|
+
<co-input-text [(model)]="address.streetName" [placeholder]="'STREET' | localize" required></co-input-text>
|
|
6390
|
+
</div>
|
|
6391
|
+
<div class="default-flex-column">
|
|
6392
|
+
<co-input-text [(model)]="address.city" [placeholder]="'CITY' | localize" required></co-input-text>
|
|
6393
|
+
</div>
|
|
6394
|
+
<div class="default-flex-column">
|
|
6395
|
+
<co-input-combo-box [(model)]="address.countryId"
|
|
6396
|
+
[source]="countries"
|
|
6397
|
+
[fields]="fields"
|
|
6398
|
+
[placeholder]="'COUNTRY'| localize"
|
|
6399
|
+
[required]="true"
|
|
6400
|
+
></co-input-combo-box>
|
|
6401
|
+
</div>
|
|
6402
|
+
</div>
|
|
6403
|
+
</div>
|
|
6404
|
+
`,
|
|
6405
|
+
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"]
|
|
6406
|
+
},] }
|
|
6407
|
+
];
|
|
6408
|
+
TransactionRelationAddressComponent.ctorParameters = () => [
|
|
6409
|
+
{ type: DictionaryService },
|
|
6410
|
+
{ type: IOneConnectorAdapterService }
|
|
6411
|
+
];
|
|
6412
|
+
TransactionRelationAddressComponent.propDecorators = {
|
|
6413
|
+
label: [{ type: Input }],
|
|
6414
|
+
address: [{ type: Input }]
|
|
6415
|
+
};
|
|
6416
|
+
|
|
6417
|
+
class TransactionSidebarRightComponent extends TransactionBaseComponent {
|
|
6418
|
+
constructor(service, iconCacheService, _eventService, changeDetector) {
|
|
6419
|
+
super(service);
|
|
6420
|
+
this.service = service;
|
|
6421
|
+
this.iconCacheService = iconCacheService;
|
|
6422
|
+
this._eventService = _eventService;
|
|
6423
|
+
this.changeDetector = changeDetector;
|
|
6424
|
+
this.iconDetailView = CoreComponentsIcon.DetailView;
|
|
6425
|
+
this.iconArrowPointRight = CoreComponentsIcon.ArrowPointRight;
|
|
6426
|
+
this.iconStock = CoreComponentsIcon.Stock;
|
|
6427
|
+
this.iconDocuments = CoreComponentsIcon.Documents;
|
|
6428
|
+
this.test = "";
|
|
6429
|
+
this.defaultSidebar = new Sidebar({
|
|
6430
|
+
width: "320px",
|
|
6431
|
+
type: "Auto",
|
|
6432
|
+
isOpen: false,
|
|
6433
|
+
position: "Right",
|
|
6434
|
+
target: "#app-module-sidebar-right"
|
|
6435
|
+
});
|
|
6436
|
+
this._subscriptions = [];
|
|
6437
|
+
this._subscriptions.push(this._eventService.transactionLineClicked.subscribe((transactionLine) => {
|
|
6438
|
+
this.transactionLine = transactionLine;
|
|
6439
|
+
this.defaultSidebar.show();
|
|
6440
|
+
}));
|
|
6441
|
+
}
|
|
6442
|
+
ngOnInit() {
|
|
6443
|
+
setTimeout(() => {
|
|
6444
|
+
this.defaultSidebar.appendTo("#default-sidebar");
|
|
6445
|
+
this.sidebarCloseClick();
|
|
6446
|
+
this.changeDetector.detectChanges();
|
|
6447
|
+
});
|
|
6448
|
+
}
|
|
6449
|
+
ngOnDestroy() {
|
|
6450
|
+
this._subscriptions.forEach(sub => sub.unsubscribe());
|
|
6451
|
+
}
|
|
6452
|
+
sidebarCloseClick() {
|
|
6453
|
+
this.defaultSidebar.hide();
|
|
6454
|
+
this._eventService.rightSidebarClose.next();
|
|
6455
|
+
}
|
|
6456
|
+
}
|
|
6457
|
+
TransactionSidebarRightComponent.decorators = [
|
|
6458
|
+
{ type: Component, args: [{
|
|
6459
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
6460
|
+
selector: "transaction-sidebar-right",
|
|
6461
|
+
template: `
|
|
6462
|
+
<div id="default-sidebar">
|
|
6463
|
+
<div>
|
|
6464
|
+
<icon [icon]="iconArrowPointRight" (click)="sidebarCloseClick()"></icon>
|
|
6465
|
+
<label [textContent]="transactionLine?.goodDescription"></label>
|
|
6466
|
+
</div>
|
|
6467
|
+
<div>
|
|
6468
|
+
<ejs-tab id="element2">
|
|
6469
|
+
<e-tabitems>
|
|
6470
|
+
<e-tabitem>
|
|
6471
|
+
<ng-template #headerText>
|
|
6472
|
+
<icon [icon]="iconDetailView" title="Regeldetails"></icon>
|
|
6473
|
+
</ng-template>
|
|
6474
|
+
<ng-template #content>
|
|
6475
|
+
<transaction-line-accordion [transactionLine]="transactionLine"></transaction-line-accordion>
|
|
6476
|
+
</ng-template>
|
|
6477
|
+
</e-tabitem>
|
|
6478
|
+
<e-tabitem>
|
|
6479
|
+
<ng-template #headerText>
|
|
6480
|
+
<icon [icon]="iconStock" title="Voorraad"></icon>
|
|
6481
|
+
</ng-template>
|
|
6482
|
+
<ng-template #content>
|
|
6483
|
+
<div style="margin: 10px;">
|
|
6484
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6485
|
+
<co-input-text placeholder="In voorraad"></co-input-text>
|
|
6486
|
+
<co-input-text placeholder="In order voorraad"></co-input-text>
|
|
6487
|
+
</div>
|
|
6488
|
+
|
|
6489
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6490
|
+
<co-input-text placeholder="In order commissie"></co-input-text>
|
|
6491
|
+
<co-input-text placeholder="Beschikbaar"></co-input-text>
|
|
6492
|
+
</div>
|
|
6493
|
+
|
|
6494
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6495
|
+
<co-input-text placeholder="In bestelling"></co-input-text>
|
|
6496
|
+
<co-input-text placeholder="Later beschikbaar"></co-input-text>
|
|
6497
|
+
</div>
|
|
6498
|
+
|
|
6499
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6500
|
+
<co-input-text placeholder="Toegewezen" [model]="transactionLine?.amount"></co-input-text>
|
|
6501
|
+
<co-input-text placeholder="Vrije voorraad"></co-input-text>
|
|
6502
|
+
</div>
|
|
6503
|
+
</div>
|
|
6504
|
+
</ng-template>
|
|
6505
|
+
</e-tabitem>
|
|
6506
|
+
<e-tabitem>
|
|
6507
|
+
<ng-template #headerText>
|
|
6508
|
+
<icon [icon]="iconDocuments" title="Documenten en notities"></icon>
|
|
6509
|
+
</ng-template>
|
|
6510
|
+
<ng-template #content>
|
|
6511
|
+
<div>
|
|
6512
|
+
Documenten en notities
|
|
6513
|
+
</div>
|
|
6514
|
+
</ng-template>
|
|
6515
|
+
</e-tabitem>
|
|
6516
|
+
</e-tabitems>
|
|
6517
|
+
</ejs-tab>
|
|
6518
|
+
</div>
|
|
6519
|
+
</div>
|
|
6520
|
+
`,
|
|
6521
|
+
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"]
|
|
6522
|
+
},] }
|
|
6523
|
+
];
|
|
6524
|
+
TransactionSidebarRightComponent.ctorParameters = () => [
|
|
6525
|
+
{ type: TransactionService },
|
|
6526
|
+
{ type: IconCacheService },
|
|
6527
|
+
{ type: TransactionEventService },
|
|
6528
|
+
{ type: ChangeDetectorRef }
|
|
6529
|
+
];
|
|
6530
|
+
|
|
6531
|
+
class TransactionLineAccordionComponent {
|
|
6532
|
+
constructor(changeDetector) {
|
|
6533
|
+
this.changeDetector = changeDetector;
|
|
6534
|
+
this.transactionLine = new TransactionLineInfo;
|
|
6535
|
+
this.accordion = new Accordion({});
|
|
6536
|
+
this._subscriptions = [];
|
|
6537
|
+
}
|
|
6538
|
+
ngOnInit() {
|
|
6539
|
+
setTimeout(() => {
|
|
6540
|
+
this.accordion.appendTo("#accordion_html_markup");
|
|
6541
|
+
this.changeDetector.detectChanges();
|
|
6542
|
+
});
|
|
6543
|
+
}
|
|
6544
|
+
}
|
|
6545
|
+
TransactionLineAccordionComponent.decorators = [
|
|
6546
|
+
{ type: Component, args: [{
|
|
6547
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
6548
|
+
selector: "transaction-line-accordion",
|
|
6549
|
+
template: `
|
|
6550
|
+
<div id='container'>
|
|
6551
|
+
<div id='accordion_html_markup'>
|
|
6552
|
+
<div>
|
|
6553
|
+
<div>Prijsdetails</div>
|
|
6554
|
+
<div>
|
|
6555
|
+
<div style="margin-left:10px;">
|
|
6556
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6557
|
+
<co-input-text placeholder="Aantal" [model]="transactionLine?.amount"></co-input-text>
|
|
6558
|
+
<co-input-text placeholder="Verkoopprijs" [model]="transactionLine?.price"></co-input-text>
|
|
6559
|
+
</div>
|
|
6560
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6561
|
+
<co-input-text placeholder="Adviesprijs"></co-input-text>
|
|
6562
|
+
<co-input-text placeholder="Totaal korting"></co-input-text>
|
|
6563
|
+
</div>
|
|
6564
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6565
|
+
<co-input-text placeholder="Koritngspercentage"></co-input-text>
|
|
6566
|
+
<co-input-text placeholder="Kortingsbedrag" [model]="transactionLine?.discountAmount"></co-input-text>
|
|
6567
|
+
</div>
|
|
6568
|
+
|
|
6569
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6570
|
+
<co-input-text placeholder="Speciale korting"></co-input-text>
|
|
6571
|
+
<co-input-text placeholder="Transactiekorting"></co-input-text>
|
|
6572
|
+
</div>
|
|
6573
|
+
|
|
6574
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6575
|
+
<co-input-text placeholder="Business rule korting"></co-input-text>
|
|
6576
|
+
<co-input-text placeholder="Kwantumkorting"></co-input-text>
|
|
6577
|
+
</div>
|
|
6578
|
+
|
|
6579
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6580
|
+
<co-input-text placeholder="Toeslag"></co-input-text>
|
|
6581
|
+
<co-input-text placeholder="BTW"></co-input-text>
|
|
6582
|
+
</div>
|
|
6583
|
+
|
|
6584
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6585
|
+
<co-input-text placeholder="Prijslijst"></co-input-text>
|
|
6586
|
+
</div>
|
|
6587
|
+
</div>
|
|
6588
|
+
</div>
|
|
6589
|
+
</div>
|
|
6590
|
+
<div>
|
|
6591
|
+
<div>Logistiek</div>
|
|
6592
|
+
<div>
|
|
6593
|
+
<div style="margin-left:10px;">
|
|
6594
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6595
|
+
<co-input-text placeholder="Commissiecode"></co-input-text>
|
|
6596
|
+
<co-input-text placeholder="Levermethode"></co-input-text>
|
|
6597
|
+
</div>
|
|
6598
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6599
|
+
<co-input-text placeholder="Montagetijd"></co-input-text>
|
|
6600
|
+
<co-input-text placeholder="Bewerkingstijd"></co-input-text>
|
|
6601
|
+
</div>
|
|
6602
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6603
|
+
<co-input-text placeholder="Leverancier"></co-input-text>
|
|
6604
|
+
<co-input-text placeholder="Artikelnummer leverancier"></co-input-text>
|
|
6605
|
+
</div>
|
|
6606
|
+
|
|
6607
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6608
|
+
<co-input-text placeholder="In/uit collectie"></co-input-text>
|
|
6609
|
+
<co-input-text placeholder="Dropshipment"></co-input-text>
|
|
6610
|
+
</div>
|
|
6611
|
+
|
|
6612
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6613
|
+
<co-input-text placeholder="Leverdatum"></co-input-text>
|
|
6614
|
+
<co-input-text placeholder="Referentie"></co-input-text>
|
|
6615
|
+
</div>
|
|
6616
|
+
</div>
|
|
6617
|
+
</div>
|
|
6618
|
+
|
|
6619
|
+
</div>
|
|
6620
|
+
<div>
|
|
6621
|
+
<div id="header">Opmaak</div>
|
|
6622
|
+
<div id="opmaak">
|
|
6623
|
+
<div style="margin-left:10px;">
|
|
6624
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6625
|
+
<co-input-text placeholder="Orderregelset"></co-input-text>
|
|
6626
|
+
<co-input-text placeholder="Hoofdstuk"></co-input-text>
|
|
6627
|
+
</div>
|
|
6628
|
+
<div>
|
|
6629
|
+
<co-input-text placeholder="Laatste wijziging Door"></co-input-text>
|
|
6630
|
+
</div>
|
|
6631
|
+
<div>
|
|
6632
|
+
<co-input-text placeholder="Zichtbaar op documenten"></co-input-text>
|
|
6633
|
+
</div>
|
|
6634
|
+
</div>
|
|
6635
|
+
</div>
|
|
6636
|
+
</div>
|
|
6637
|
+
<div>
|
|
6638
|
+
<div>Artikelkenmerken</div>
|
|
6639
|
+
<div>
|
|
6640
|
+
<div style="margin-left:10px;">
|
|
6641
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6642
|
+
<co-input-text placeholder="Breedte"></co-input-text>
|
|
6643
|
+
<co-input-text placeholder="Lengte"></co-input-text>
|
|
6644
|
+
</div>
|
|
6645
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6646
|
+
<co-input-text placeholder="Hoogte"></co-input-text>
|
|
6647
|
+
<co-input-text placeholder="Zitdiepte"></co-input-text>
|
|
6648
|
+
</div>
|
|
6649
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6650
|
+
<co-input-text placeholder="Zithoogte"></co-input-text>
|
|
6651
|
+
<co-input-text placeholder="Volume"></co-input-text>
|
|
6652
|
+
</div>
|
|
6653
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6654
|
+
<co-input-text placeholder="Stopmaat"></co-input-text>
|
|
6655
|
+
<co-input-text placeholder="Patroonhoogte"></co-input-text>
|
|
6656
|
+
</div>
|
|
6657
|
+
<br>
|
|
6658
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6659
|
+
<co-input-text placeholder="Standaard levertijd"></co-input-text>
|
|
6660
|
+
<co-input-text placeholder="Standaard levertijd verkoop"></co-input-text>
|
|
6661
|
+
</div>
|
|
6662
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6663
|
+
<co-input-text placeholder="Eenheid verkoop"></co-input-text>
|
|
6664
|
+
<co-input-text placeholder="Verkoophoeveelheid"></co-input-text>
|
|
6665
|
+
</div>
|
|
6666
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6667
|
+
<co-input-text placeholder="Aantal"></co-input-text>
|
|
6668
|
+
<co-input-text placeholder="Colli"></co-input-text>
|
|
6669
|
+
</div>
|
|
6670
|
+
<br>
|
|
6671
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6672
|
+
<co-input-text placeholder="Omzetgroep"></co-input-text>
|
|
6673
|
+
<co-input-text placeholder="Artikelgroep"></co-input-text>
|
|
6674
|
+
</div>
|
|
6675
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6676
|
+
<co-input-text placeholder="Hoofdartikel"></co-input-text>
|
|
6677
|
+
<co-input-text placeholder="Sfeer"></co-input-text>
|
|
6678
|
+
</div>
|
|
6679
|
+
<div fxLayout="row" fxLayoutGap="10px">
|
|
6680
|
+
<co-input-text placeholder="Concept"></co-input-text>
|
|
6681
|
+
<co-input-text placeholder="Afdeling"></co-input-text>
|
|
6682
|
+
</div>
|
|
6683
|
+
</div>
|
|
6684
|
+
</div>
|
|
6685
|
+
</div>
|
|
6686
|
+
|
|
6687
|
+
</div>
|
|
6688
|
+
</div>
|
|
6689
|
+
`,
|
|
6690
|
+
styles: [""]
|
|
6691
|
+
},] }
|
|
6692
|
+
];
|
|
6693
|
+
TransactionLineAccordionComponent.ctorParameters = () => [
|
|
6694
|
+
{ type: ChangeDetectorRef }
|
|
6695
|
+
];
|
|
6696
|
+
TransactionLineAccordionComponent.propDecorators = {
|
|
6697
|
+
transactionLine: [{ type: Input }]
|
|
6698
|
+
};
|
|
6699
|
+
|
|
6700
|
+
class TransactionRelationEditComponent extends TransactionBaseComponent {
|
|
6701
|
+
constructor(service) {
|
|
6702
|
+
super(service);
|
|
6703
|
+
this.service = service;
|
|
6704
|
+
this.showPopup = false;
|
|
6705
|
+
this.relType = RelationNameKind;
|
|
6706
|
+
this.genderType = GenderType;
|
|
6707
|
+
this.validSubmit = new EventEmitter();
|
|
6708
|
+
this.invalidSubmit = new EventEmitter();
|
|
6709
|
+
this.dateOfBirth = new Date();
|
|
6710
|
+
this.phoneNumber = new ContactOption();
|
|
6711
|
+
}
|
|
6712
|
+
get readonly() {
|
|
6713
|
+
return false;
|
|
6714
|
+
}
|
|
6715
|
+
get subHeader() {
|
|
6716
|
+
return "";
|
|
6717
|
+
}
|
|
6718
|
+
get editFirstAddress() {
|
|
6719
|
+
if (this.firstAddress) {
|
|
6720
|
+
return this.firstAddress;
|
|
6721
|
+
}
|
|
6722
|
+
else if (this.customer) {
|
|
6723
|
+
const address = new Address();
|
|
6724
|
+
address.addressType = AddressType.DeliveryAddress;
|
|
6725
|
+
address.startDate = new Date();
|
|
6726
|
+
address.sequence = this.customer.getNextAddressSequence();
|
|
6727
|
+
this.customer.addresses.push(address);
|
|
6728
|
+
return address;
|
|
6729
|
+
}
|
|
6730
|
+
}
|
|
6731
|
+
get firstAddress() {
|
|
6732
|
+
if (!this.relation || !this.customer.addresses.length) {
|
|
6733
|
+
return;
|
|
6734
|
+
}
|
|
6735
|
+
return this.customer.getFirstAvailableAddress([
|
|
6736
|
+
AddressType.DeliveryAddress,
|
|
6737
|
+
AddressType.BillingAddress,
|
|
6738
|
+
AddressType.VisitingAddress,
|
|
6739
|
+
AddressType.MailingAddress,
|
|
6740
|
+
AddressType.NursingAddress
|
|
6741
|
+
]);
|
|
6742
|
+
}
|
|
6743
|
+
onPopupClose() {
|
|
6744
|
+
this.showPopup = false;
|
|
6745
|
+
}
|
|
6746
|
+
changeRelationType(relationType) {
|
|
6747
|
+
if (this.customer) {
|
|
6748
|
+
this.customer.type = relationType;
|
|
6749
|
+
}
|
|
6750
|
+
}
|
|
6751
|
+
changeGenderType(genderType) {
|
|
6752
|
+
if (this.customer) {
|
|
6753
|
+
this.customer.gender = genderType;
|
|
6754
|
+
}
|
|
6755
|
+
}
|
|
6756
|
+
firstNameChange(firstName) {
|
|
6757
|
+
if (this.customer) {
|
|
6758
|
+
this.customer.firstName = firstName;
|
|
6759
|
+
}
|
|
6760
|
+
}
|
|
6761
|
+
familyNameChange(familyName) {
|
|
6762
|
+
if (this.customer) {
|
|
6763
|
+
this.customer.familyName = familyName;
|
|
6764
|
+
}
|
|
6765
|
+
}
|
|
6766
|
+
}
|
|
6767
|
+
TransactionRelationEditComponent.decorators = [
|
|
6768
|
+
{ type: Component, args: [{
|
|
6769
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
6770
|
+
selector: "transaction-relation-edit",
|
|
6771
|
+
template: `
|
|
6772
|
+
<co-dialog [visible]="showPopup" header="ACCOUNT_DETAILS" (close)="onPopupClose()"
|
|
6773
|
+
noClickOutside contentSize>
|
|
6774
|
+
<ng-container content>
|
|
6775
|
+
<co-form #transactionRelationEditForm (validSubmit)="validSubmit.emit()" (invalidSubmit)="invalidSubmit.emit()">
|
|
6776
|
+
<div style="min-width: 500px;">
|
|
6777
|
+
<div>
|
|
6778
|
+
<label [textContent]="'PERSONAL_DATA' | localize"
|
|
6779
|
+
class="transaction-relation-label-h3"
|
|
6780
|
+
></label>
|
|
6781
|
+
</div>
|
|
6782
|
+
<div>
|
|
6783
|
+
<div>
|
|
6784
|
+
<label [textContent]="'ORDER_TYPE' | localize "
|
|
6785
|
+
class="transaction-relation-label-h3"
|
|
6786
|
+
></label>
|
|
6787
|
+
</div>
|
|
6788
|
+
<div *ngIf="customer?.type">
|
|
6789
|
+
<co-input-radio-button [name]="'type'"
|
|
6790
|
+
[label]="'PRIVATE_PERSON' | localize"
|
|
6791
|
+
[value]="relType.Private"
|
|
6792
|
+
[checked]="customer.type === relType.Private"
|
|
6793
|
+
(modelChange)="changeRelationType(relType.Private)"
|
|
6794
|
+
></co-input-radio-button>
|
|
6795
|
+
<co-input-radio-button [name]="'type'"
|
|
6796
|
+
[label]="'COMPANY' | localize"
|
|
6797
|
+
[value]="relType.Company"
|
|
6798
|
+
[checked]="customer.type === relType.Company"
|
|
6799
|
+
(modelChange)="changeRelationType(relType.Company)"
|
|
6800
|
+
></co-input-radio-button>
|
|
6801
|
+
</div>
|
|
6802
|
+
</div>
|
|
6803
|
+
<div *ngIf="customer?.type === relType.Private">
|
|
6804
|
+
<label [textContent]="'SALUTATION' | localize"
|
|
6805
|
+
class="transaction-relation-label-h3"
|
|
6806
|
+
></label>
|
|
6807
|
+
<div *ngIf="customer?.gender">
|
|
6808
|
+
<co-input-radio-button [name]="'gender'"
|
|
6809
|
+
[label]="'MALE' | localize"
|
|
6810
|
+
[value]="genderType.Male"
|
|
6811
|
+
[checked]="customer.gender === genderType.Male"
|
|
6812
|
+
(modelChange)="changeGenderType(genderType.Male)"
|
|
6813
|
+
></co-input-radio-button>
|
|
6814
|
+
<co-input-radio-button [name]="'gender'"
|
|
6815
|
+
[label]="'FEMALE' | localize "
|
|
6816
|
+
[value]="genderType.Female"
|
|
6817
|
+
[checked]="customer.gender === genderType.Female"
|
|
6818
|
+
(modelChange)="changeGenderType(genderType.Female)"
|
|
6819
|
+
></co-input-radio-button>
|
|
6820
|
+
<co-input-radio-button [name]="'gender'"
|
|
6821
|
+
[label]="'UNKNOWN' | localize"
|
|
6822
|
+
[value]="genderType.Unspecified"
|
|
6823
|
+
[checked]="customer.gender === genderType.Unspecified"
|
|
6824
|
+
(modelChange)="changeGenderType(genderType.Unspecified)"
|
|
6825
|
+
></co-input-radio-button>
|
|
6826
|
+
</div>
|
|
6827
|
+
</div>
|
|
6828
|
+
<div *ngIf="customer?.type === relType.Private">
|
|
6829
|
+
<div>
|
|
6830
|
+
<label [textContent]="'NAME' | localize "
|
|
6831
|
+
class="transaction-relation-label-h3"
|
|
6832
|
+
></label>
|
|
6833
|
+
<div class="default-flex-row">
|
|
6834
|
+
<div class="default-flex-column">
|
|
6835
|
+
<co-input-text
|
|
6836
|
+
[(model)]="customer.firstName"
|
|
6837
|
+
[placeholder]="'FIRST_NAME' | localize "
|
|
6838
|
+
(modelChange)="firstNameChange($event)"
|
|
6839
|
+
required
|
|
6840
|
+
></co-input-text>
|
|
6841
|
+
</div>
|
|
6842
|
+
<div class="default-flex-column">
|
|
6843
|
+
<co-input-text
|
|
6844
|
+
[(model)]="customer.prefix"
|
|
6845
|
+
[placeholder]="'PREFIX' | localize "
|
|
6846
|
+
></co-input-text>
|
|
6847
|
+
</div>
|
|
6848
|
+
<div class="default-flex-column">
|
|
6849
|
+
<co-input-text
|
|
6850
|
+
[(model)]="customer.familyName"
|
|
6851
|
+
[placeholder]="'LAST_NAME' | localize"
|
|
6852
|
+
(modelChange)="familyNameChange($event)"
|
|
6853
|
+
required
|
|
6854
|
+
></co-input-text>
|
|
6855
|
+
</div>
|
|
6856
|
+
<div class="default-flex-column">
|
|
6857
|
+
<co-input-date
|
|
6858
|
+
[placeholder]="'DATE_OF_BIRTH' | localize "
|
|
6859
|
+
[(model)]="dateOfBirth"
|
|
6860
|
+
required
|
|
6861
|
+
></co-input-date>
|
|
6862
|
+
</div>
|
|
6863
|
+
<div class="default-flex-column">
|
|
6864
|
+
<co-input-text
|
|
6865
|
+
[(model)]="phoneNumber.value"
|
|
6866
|
+
[placeholder]="'PHONE_NO' | localize "
|
|
6867
|
+
required
|
|
6868
|
+
></co-input-text>
|
|
6869
|
+
</div>
|
|
6870
|
+
</div>
|
|
6871
|
+
</div>
|
|
6872
|
+
</div>
|
|
6873
|
+
<div>
|
|
6874
|
+
<div *ngIf="customer?.type === relType.Company" class="default-flex-column">
|
|
6875
|
+
<label [textContent]="'COMPANY_NAME' | localize "
|
|
6876
|
+
class="transaction-relation-label-h3"
|
|
6877
|
+
></label>
|
|
6878
|
+
<co-input-text
|
|
6879
|
+
[(model)]="customer.familyName"
|
|
6880
|
+
[label]="'COMPANY_NAME'"
|
|
6881
|
+
required
|
|
6882
|
+
></co-input-text>
|
|
6883
|
+
</div>
|
|
6884
|
+
</div>
|
|
6885
|
+
|
|
6886
|
+
<div>
|
|
6887
|
+
<transaction-relation-address
|
|
6888
|
+
label="DELIVERY_ADDRESS" [address]="editFirstAddress"
|
|
6889
|
+
></transaction-relation-address>
|
|
6890
|
+
</div>
|
|
6891
|
+
|
|
6892
|
+
<div fxLayout="row" fxLayoutGap="10px" class="button-wrapper">
|
|
6893
|
+
<default-ok-cancel-buttons
|
|
6894
|
+
[okDisabled]="readonly"
|
|
6895
|
+
(okClick)="transactionRelationEditForm.submit()"
|
|
6896
|
+
(cancelClick)="onPopupClose()"
|
|
6897
|
+
></default-ok-cancel-buttons>
|
|
6898
|
+
</div>
|
|
6899
|
+
</div>
|
|
6900
|
+
</co-form>
|
|
6901
|
+
</ng-container>
|
|
6902
|
+
</co-dialog>
|
|
6903
|
+
`,
|
|
6904
|
+
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"]
|
|
6905
|
+
},] }
|
|
6906
|
+
];
|
|
6907
|
+
TransactionRelationEditComponent.ctorParameters = () => [
|
|
6908
|
+
{ type: TransactionService }
|
|
6909
|
+
];
|
|
6910
|
+
TransactionRelationEditComponent.propDecorators = {
|
|
6911
|
+
transactionRelationEditForm: [{ type: ViewChild, args: ["transactionRelationEditForm", { read: FormComponent },] }],
|
|
6912
|
+
showPopup: [{ type: Input }],
|
|
6913
|
+
validSubmit: [{ type: Output }]
|
|
6914
|
+
};
|
|
6915
|
+
|
|
6916
|
+
class TransactionHeaderBlockComponent extends TransactionBaseComponent {
|
|
6917
|
+
constructor(service) {
|
|
6918
|
+
super(service);
|
|
6919
|
+
this.service = service;
|
|
6920
|
+
this.planningRequestButtonClick = new EventEmitter();
|
|
6921
|
+
}
|
|
6922
|
+
showPopupTab(index) {
|
|
6923
|
+
this.selectedTab = index;
|
|
6924
|
+
}
|
|
6925
|
+
tabClick() {
|
|
6926
|
+
this.relationPopup.showPopup = true;
|
|
6927
|
+
}
|
|
6928
|
+
transactionEditClose() {
|
|
6929
|
+
this.relationPopup.showPopup = false;
|
|
6930
|
+
}
|
|
6931
|
+
}
|
|
6932
|
+
TransactionHeaderBlockComponent.decorators = [
|
|
6933
|
+
{ type: Component, args: [{
|
|
6934
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
6935
|
+
selector: "transaction-header-block",
|
|
6936
|
+
template: `
|
|
6937
|
+
<div fxLayout="row wrap" fxLayout.xs="column">
|
|
6938
|
+
<div class="summary-block" (click)="tabClick()">
|
|
6939
|
+
<div class="block-wrapper">
|
|
6940
|
+
<div class="content-wrapper">
|
|
6941
|
+
<div class="name"
|
|
6942
|
+
[textContent]="relation?.displayName"></div>
|
|
6943
|
+
<div class="address link pointer"
|
|
6944
|
+
[textContent]="relation?.displayAddressFull"></div>
|
|
6945
|
+
<div class="phone link pointer"
|
|
6946
|
+
[textContent]="relation?.tel1"></div>
|
|
6947
|
+
<div [textContent]="relation?.email"
|
|
6948
|
+
class="email link pointer"
|
|
6949
|
+
></div>
|
|
6950
|
+
</div>
|
|
6951
|
+
</div>
|
|
6952
|
+
</div>
|
|
6953
|
+
|
|
6954
|
+
<transaction-service-info class="summary-block"
|
|
6955
|
+
[transaction]="transaction"
|
|
6956
|
+
></transaction-service-info>
|
|
6957
|
+
<transaction-service-status class="summary-block"
|
|
6958
|
+
[transaction]="transaction"
|
|
6959
|
+
></transaction-service-status>
|
|
6960
|
+
<transaction-order-info class="summary-block"
|
|
6961
|
+
[transaction]="transaction"
|
|
6962
|
+
></transaction-order-info>
|
|
6963
|
+
<transaction-payment-info class="summary-block"
|
|
6964
|
+
[transaction]="transaction"
|
|
6965
|
+
></transaction-payment-info>
|
|
6966
|
+
<transaction-delivery-summary class="summary-block"
|
|
6967
|
+
[transaction]="transaction"
|
|
6968
|
+
[canPlanDelivery]="!isService && canPlanDelivery"
|
|
6969
|
+
(planningRequestButtonClick)="planningRequestButtonClick.emit($event)"
|
|
6970
|
+
(click)="showPopupTab(1)"
|
|
6971
|
+
></transaction-delivery-summary>
|
|
6972
|
+
<transaction-article-info class="summary-block"
|
|
6973
|
+
[transaction]="transaction"
|
|
6974
|
+
></transaction-article-info>
|
|
6975
|
+
<transaction-product-summary class="summary-block"
|
|
6976
|
+
[transaction]="transaction"
|
|
6977
|
+
[product]="product"
|
|
6978
|
+
></transaction-product-summary>
|
|
6979
|
+
</div>
|
|
6980
|
+
|
|
6981
|
+
<transaction-relation-edit [customerId]="relationId" (validSubmit)="transactionEditClose()"></transaction-relation-edit>
|
|
6982
|
+
`,
|
|
6983
|
+
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"]
|
|
6984
|
+
},] }
|
|
6985
|
+
];
|
|
6986
|
+
TransactionHeaderBlockComponent.ctorParameters = () => [
|
|
6987
|
+
{ type: TransactionService }
|
|
6988
|
+
];
|
|
6989
|
+
TransactionHeaderBlockComponent.propDecorators = {
|
|
6990
|
+
relationPopup: [{ type: ViewChild, args: [TransactionRelationEditComponent, { static: true },] }],
|
|
6991
|
+
canPlanDelivery: [{ type: Input }],
|
|
6992
|
+
planningRequestButtonClick: [{ type: Output }]
|
|
6993
|
+
};
|
|
6994
|
+
|
|
6995
|
+
class TransactionServiceSummaryComponent extends TransactionBaseComponent {
|
|
6996
|
+
constructor(service, iconCacheService) {
|
|
6997
|
+
super(service);
|
|
6998
|
+
this.service = service;
|
|
6999
|
+
this.iconCacheService = iconCacheService;
|
|
7000
|
+
this.iconWrench = CoreComponentsIcon.Wrench;
|
|
7001
|
+
}
|
|
7002
|
+
}
|
|
7003
|
+
TransactionServiceSummaryComponent.decorators = [
|
|
7004
|
+
{ type: Component, args: [{
|
|
7005
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
7006
|
+
selector: "transaction-service-info",
|
|
7007
|
+
template: `
|
|
7008
|
+
<transaction-summary-block
|
|
7009
|
+
[hideAvatar]="true"
|
|
7010
|
+
[class.disabled]="!isNew"
|
|
7011
|
+
label="SERVICE"
|
|
7012
|
+
[icon]="iconWrench"
|
|
7013
|
+
headerLabel="SERVICE_NUMBER"
|
|
7014
|
+
[headerValue]="transactionInfo.transactionNr"
|
|
7015
|
+
subHeaderLabel="SERVICE_REQUEST_DATE"
|
|
7016
|
+
[subHeaderValue]="transactionInfo.transactionDate | date:'shortDate'"
|
|
7017
|
+
></transaction-summary-block>
|
|
7018
|
+
`
|
|
7019
|
+
},] }
|
|
7020
|
+
];
|
|
7021
|
+
TransactionServiceSummaryComponent.ctorParameters = () => [
|
|
7022
|
+
{ type: TransactionService },
|
|
7023
|
+
{ type: IconCacheService }
|
|
7024
|
+
];
|
|
7025
|
+
TransactionServiceSummaryComponent.propDecorators = {
|
|
7026
|
+
hidden: [{ type: HostBinding, args: ["class.hidden",] }]
|
|
7027
|
+
};
|
|
7028
|
+
|
|
7029
|
+
class TransactionSummaryBlockComponent {
|
|
7030
|
+
constructor() {
|
|
7031
|
+
this.Icon = CoreComponentsIcon;
|
|
7032
|
+
this.hideAvatar = false;
|
|
7033
|
+
this.label = "";
|
|
7034
|
+
this.headerLabel = "";
|
|
7035
|
+
this.subHeaderLabel = "";
|
|
7036
|
+
}
|
|
7037
|
+
ngOnDestroy() {
|
|
7038
|
+
this.subHeaderTemplate = undefined;
|
|
7039
|
+
}
|
|
7040
|
+
}
|
|
7041
|
+
TransactionSummaryBlockComponent.decorators = [
|
|
7042
|
+
{ type: Component, args: [{
|
|
7043
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
7044
|
+
selector: "transaction-summary-block",
|
|
7045
|
+
template: `
|
|
7046
|
+
<div class="block-wrapper">
|
|
7047
|
+
<div *ngIf="hideAvatar" class="icon-wrapper">
|
|
7048
|
+
<icon *ngIf="icon" [icon]="icon" class="dark"></icon>
|
|
7049
|
+
<image-display *ngIf="!icon" [model]="image"></image-display>
|
|
7050
|
+
</div>
|
|
7051
|
+
<div class="content-wrapper">
|
|
7052
|
+
<div class="value-block">
|
|
7053
|
+
<div class="header-label" [textContent]="headerLabel | localize"></div>
|
|
7054
|
+
<div class="header" [textContent]="headerValue"></div>
|
|
7055
|
+
</div>
|
|
7056
|
+
<div class="value-block">
|
|
7057
|
+
<div class="subheader-label" [textContent]="subHeaderLabel | localize"></div>
|
|
7058
|
+
<ng-container *ngIf="subHeaderTemplate" [templateWrapper]="subHeaderTemplate"></ng-container>
|
|
7059
|
+
<div *ngIf="!subHeaderTemplate" class="subheader" [textContent]="subHeaderValue"></div>
|
|
7060
|
+
</div>
|
|
7061
|
+
</div>
|
|
7062
|
+
</div>
|
|
7063
|
+
`,
|
|
7064
|
+
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"]
|
|
7065
|
+
},] }
|
|
7066
|
+
];
|
|
7067
|
+
TransactionSummaryBlockComponent.ctorParameters = () => [];
|
|
7068
|
+
TransactionSummaryBlockComponent.propDecorators = {
|
|
7069
|
+
hideAvatar: [{ type: Input }],
|
|
7070
|
+
label: [{ type: Input }],
|
|
7071
|
+
icon: [{ type: Input }],
|
|
7072
|
+
image: [{ type: Input }],
|
|
7073
|
+
headerLabel: [{ type: Input }],
|
|
7074
|
+
headerValue: [{ type: Input }],
|
|
7075
|
+
subHeaderLabel: [{ type: Input }],
|
|
7076
|
+
subHeaderValue: [{ type: Input }],
|
|
7077
|
+
subHeaderTemplate: [{ type: ContentChild, args: ["subHeaderTemplate", { static: false },] }]
|
|
7078
|
+
};
|
|
7079
|
+
|
|
7080
|
+
class TransactionServiceStatusComponent extends TransactionBaseComponent {
|
|
7081
|
+
constructor(service) {
|
|
7082
|
+
super(service);
|
|
7083
|
+
this.service = service;
|
|
7084
|
+
this.iconPin = CoreComponentsIcon.Pin;
|
|
7085
|
+
}
|
|
7086
|
+
get serviceStatus() {
|
|
7087
|
+
// TODO: transaction.serviceStatus
|
|
7088
|
+
return "serviceStatus";
|
|
7089
|
+
}
|
|
7090
|
+
}
|
|
7091
|
+
TransactionServiceStatusComponent.decorators = [
|
|
7092
|
+
{ type: Component, args: [{
|
|
7093
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
7094
|
+
selector: "transaction-service-status",
|
|
7095
|
+
template: `
|
|
7096
|
+
<transaction-summary-block
|
|
7097
|
+
[class.disabled]="!isNew"
|
|
7098
|
+
label="STATUS"
|
|
7099
|
+
[icon]="iconPin"
|
|
7100
|
+
headerLabel="SERVICE_STATE"
|
|
7101
|
+
[headerValue]="serviceStatus"
|
|
7102
|
+
></transaction-summary-block>
|
|
7103
|
+
`
|
|
7104
|
+
},] }
|
|
7105
|
+
];
|
|
7106
|
+
TransactionServiceStatusComponent.ctorParameters = () => [
|
|
7107
|
+
{ type: TransactionService }
|
|
7108
|
+
];
|
|
7109
|
+
TransactionServiceStatusComponent.propDecorators = {
|
|
7110
|
+
hidden: [{ type: HostBinding, args: ["class.hidden",] }]
|
|
7111
|
+
};
|
|
7112
|
+
|
|
7113
|
+
class TransactionOrderSummaryComponent extends TransactionBaseComponent {
|
|
7114
|
+
constructor(service) {
|
|
7115
|
+
super(service);
|
|
7116
|
+
this.service = service;
|
|
7117
|
+
this.iconOrder = CoreComponentsIcon.Order;
|
|
7118
|
+
}
|
|
7119
|
+
get sourceTransactionNr() {
|
|
7120
|
+
// TODO: transaction.sourceTransactionNr
|
|
7121
|
+
return 0;
|
|
7122
|
+
}
|
|
7123
|
+
get sourceTransactionDate() {
|
|
7124
|
+
// TODO: transaction.sourceTransactionDate
|
|
7125
|
+
return new Date();
|
|
7126
|
+
}
|
|
7127
|
+
}
|
|
7128
|
+
TransactionOrderSummaryComponent.decorators = [
|
|
7129
|
+
{ type: Component, args: [{
|
|
7130
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
7131
|
+
selector: "transaction-order-info",
|
|
7132
|
+
template: `
|
|
7133
|
+
<transaction-summary-block
|
|
7134
|
+
[class.disabled]="!isNew"
|
|
7135
|
+
label="ORDER_INFO"
|
|
7136
|
+
[icon]="iconOrder"
|
|
7137
|
+
headerLabel="ORDER_NUMBER"
|
|
7138
|
+
[headerValue]="isService ? sourceTransactionNr : transactionInfo.transactionNr"
|
|
7139
|
+
subHeaderLabel="ORDER_DATE"
|
|
7140
|
+
[subHeaderValue]="(isService ? sourceTransactionDate : this.transactionInfo.transactionDate) | date:'shortDate'"
|
|
7141
|
+
></transaction-summary-block>
|
|
7142
|
+
`
|
|
7143
|
+
},] }
|
|
7144
|
+
];
|
|
7145
|
+
TransactionOrderSummaryComponent.ctorParameters = () => [
|
|
7146
|
+
{ type: TransactionService }
|
|
7147
|
+
];
|
|
7148
|
+
TransactionOrderSummaryComponent.propDecorators = {
|
|
7149
|
+
hidden: [{ type: HostBinding, args: ["class.hidden",] }]
|
|
7150
|
+
};
|
|
7151
|
+
|
|
7152
|
+
class TransactionPaymentInfoComponent extends TransactionBaseComponent {
|
|
7153
|
+
constructor(service) {
|
|
7154
|
+
super(service);
|
|
7155
|
+
this.service = service;
|
|
7156
|
+
this.euro = CoreComponentsIcon.Information;
|
|
7157
|
+
}
|
|
7158
|
+
}
|
|
7159
|
+
TransactionPaymentInfoComponent.decorators = [
|
|
7160
|
+
{ type: Component, args: [{
|
|
7161
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
7162
|
+
selector: "transaction-payment-info",
|
|
7163
|
+
template: `
|
|
7164
|
+
<transaction-summary-block
|
|
7165
|
+
[class.disabled]="!isNew"
|
|
7166
|
+
label="PAYMENT"
|
|
7167
|
+
[icon]="euro"
|
|
7168
|
+
headerLabel="TOTAL_AMOUNT"
|
|
7169
|
+
[headerValue]="transactionTotal.netAmount | coCurrency"
|
|
7170
|
+
subHeaderLabel="PAID_DOWN2"
|
|
7171
|
+
[subHeaderValue]="transactionTotal.transactionDiscountAmount | coCurrency"
|
|
7172
|
+
></transaction-summary-block>
|
|
7173
|
+
`
|
|
7174
|
+
},] }
|
|
7175
|
+
];
|
|
7176
|
+
TransactionPaymentInfoComponent.ctorParameters = () => [
|
|
7177
|
+
{ type: TransactionService }
|
|
7178
|
+
];
|
|
7179
|
+
TransactionPaymentInfoComponent.propDecorators = {
|
|
7180
|
+
hidden: [{ type: HostBinding, args: ["class.hidden",] }]
|
|
7181
|
+
};
|
|
7182
|
+
|
|
7183
|
+
class TransactionArticleSummaryComponent extends TransactionBaseComponent {
|
|
7184
|
+
constructor(service) {
|
|
7185
|
+
super(service);
|
|
7186
|
+
this.service = service;
|
|
7187
|
+
this.imageDataUri = "";
|
|
7188
|
+
}
|
|
7189
|
+
get sourceArticleDescription() {
|
|
7190
|
+
// TODO: transaction.sourceArticleDescription
|
|
7191
|
+
return "sourceArticleDescription";
|
|
7192
|
+
}
|
|
7193
|
+
get sourceArticleNr() {
|
|
7194
|
+
// TODO: transaction.sourceArticleNr
|
|
7195
|
+
return "sourceArticleNr";
|
|
7196
|
+
}
|
|
7197
|
+
_getArticleImage() {
|
|
7198
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
7199
|
+
// TODO: Add to TransactionAPI?
|
|
7200
|
+
// if (this.transaction.sourceGoodId) {
|
|
7201
|
+
// this.imageDataUri =
|
|
7202
|
+
// (await this._articleDalRepo.getThumbnailImageContentTableGoods(
|
|
7203
|
+
// this.transaction.sourceGoodId + "", DocumentPublication.None, false, true));
|
|
7204
|
+
// }
|
|
7205
|
+
});
|
|
7206
|
+
}
|
|
7207
|
+
transactionSet() {
|
|
7208
|
+
this._getArticleImage();
|
|
7209
|
+
}
|
|
7210
|
+
}
|
|
7211
|
+
TransactionArticleSummaryComponent.decorators = [
|
|
7212
|
+
{ type: Component, args: [{
|
|
7213
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
7214
|
+
selector: "transaction-article-info",
|
|
7215
|
+
template: `
|
|
7216
|
+
<transaction-summary-block
|
|
7217
|
+
[class.disabled]="!isNew"
|
|
7218
|
+
headerLabel="ARTICLE_DESCRIPTION"
|
|
7219
|
+
[image]="imageDataUri"
|
|
7220
|
+
[headerValue]="sourceArticleDescription"
|
|
7221
|
+
subHeaderLabel="ARTICLE_NR"
|
|
7222
|
+
[subHeaderValue]="sourceArticleNr"
|
|
7223
|
+
></transaction-summary-block>
|
|
7224
|
+
`
|
|
7225
|
+
},] }
|
|
7226
|
+
];
|
|
7227
|
+
TransactionArticleSummaryComponent.ctorParameters = () => [
|
|
7228
|
+
{ type: TransactionService }
|
|
7229
|
+
];
|
|
7230
|
+
TransactionArticleSummaryComponent.propDecorators = {
|
|
7231
|
+
hidden: [{ type: HostBinding, args: ["class.hidden",] }]
|
|
7232
|
+
};
|
|
7233
|
+
|
|
7234
|
+
class TransactionDeliverySummaryComponent extends TransactionBaseComponent {
|
|
7235
|
+
constructor(service) {
|
|
7236
|
+
super(service);
|
|
7237
|
+
this.service = service;
|
|
7238
|
+
this.deliveryTruck = CoreComponentsIcon.DeliveryTruck;
|
|
7239
|
+
this.calendarRoundOpen = CoreComponentsIcon.CalendarRoundOpen;
|
|
7240
|
+
this.deliveryMethodDescription = "";
|
|
7241
|
+
this.canPlanDelivery = false;
|
|
7242
|
+
this.planningRequestButtonClick = new EventEmitter();
|
|
7243
|
+
}
|
|
7244
|
+
transactionSet() {
|
|
7245
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
7246
|
+
// TODO: move call to TransactionAPI?
|
|
7247
|
+
//this.deliveryMethodDescription = await this._lookupService.lookup(DeliveryMethod, this.transaction.deliveryMethod);
|
|
7248
|
+
});
|
|
7249
|
+
}
|
|
7250
|
+
}
|
|
7251
|
+
TransactionDeliverySummaryComponent.decorators = [
|
|
7252
|
+
{ type: Component, args: [{
|
|
7253
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
7254
|
+
selector: "transaction-delivery-summary",
|
|
7255
|
+
template: `
|
|
7256
|
+
<transaction-summary-block
|
|
7257
|
+
label="DELIVERY"
|
|
7258
|
+
[icon]="deliveryTruck"
|
|
7259
|
+
headerLabel="DELIVERY_METHOD2"
|
|
7260
|
+
[headerValue]="deliveryMethodDescription"
|
|
7261
|
+
[subHeaderLabel]="transactionInfo.preferredDeliveryDate ? 'DELIVERY_DATE' : !canPlanDelivery ? 'EXPECTED_DELIVERY_WEEK' : 'EXPECTED_DELIVERY'"
|
|
7262
|
+
[subHeaderValue]="transactionInfo.preferredDeliveryDate ? (transactionInfo.deliveryDate | date:'shortDate') : 'WEEK' | localize | append:(' ') | append:(transactionInfo.deliveryDate | date:'w')">
|
|
7263
|
+
<ng-template #subHeaderTemplate *ngIf="canPlanDelivery">
|
|
7264
|
+
<div class="planning-wrapper">
|
|
7265
|
+
<span class="subheader" *ngIf="transactionInfo.preferredDeliveryDate"
|
|
7266
|
+
[textContent]="(transactionInfo.preferredDeliveryDate | date:'shortDate') + ', ' + transactionInfo.preferredDeliveryDate | date: 'time' "></span>
|
|
7267
|
+
<!-- <arrow-link *ngIf="!transactionInfo.preferredDeliveryDate"-->
|
|
7268
|
+
<!-- label="PLAN_YOUR_DELIVERY"-->
|
|
7269
|
+
<!-- (click)="planningRequestButtonClick.emit($event)"-->
|
|
7270
|
+
<!-- ></arrow-link>-->
|
|
7271
|
+
<icon [icon]="calendarRoundOpen" (click)="planningRequestButtonClick.emit($event)"></icon>
|
|
7272
|
+
</div>
|
|
7273
|
+
</ng-template>
|
|
7274
|
+
</transaction-summary-block>
|
|
7275
|
+
`,
|
|
7276
|
+
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"]
|
|
7277
|
+
},] }
|
|
7278
|
+
];
|
|
7279
|
+
TransactionDeliverySummaryComponent.ctorParameters = () => [
|
|
7280
|
+
{ type: TransactionService }
|
|
7281
|
+
];
|
|
7282
|
+
TransactionDeliverySummaryComponent.propDecorators = {
|
|
7283
|
+
hidden: [{ type: HostBinding, args: ["class.hidden",] }],
|
|
7284
|
+
canPlanDelivery: [{ type: Input }],
|
|
7285
|
+
planningRequestButtonClick: [{ type: Output }]
|
|
7286
|
+
};
|
|
7287
|
+
|
|
7288
|
+
class TransactionProductContractSummaryComponent extends TransactionBaseComponent {
|
|
7289
|
+
constructor(service) {
|
|
7290
|
+
super(service);
|
|
7291
|
+
this.service = service;
|
|
7292
|
+
}
|
|
7293
|
+
productSet() {
|
|
7294
|
+
// TODO: add to TransactionAPI?
|
|
7295
|
+
if (!this.product.imageAsDataUri) {
|
|
7296
|
+
// this._generalRepo.getDocument(this.product.image.documentId).then((doc: CoDocument) => {
|
|
7297
|
+
// this.product.imageAsDataUri = doc.thumbnailBodyAsDataUri;
|
|
7298
|
+
// });
|
|
7299
|
+
}
|
|
7300
|
+
}
|
|
7301
|
+
}
|
|
7302
|
+
TransactionProductContractSummaryComponent.decorators = [
|
|
7303
|
+
{ type: Component, args: [{
|
|
7304
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
7305
|
+
selector: "transaction-product-contract-summary",
|
|
7306
|
+
template: `
|
|
7307
|
+
<transaction-summary-block
|
|
7308
|
+
[class.disabled]="!isNew"
|
|
7309
|
+
label="CONTRACT"
|
|
7310
|
+
[image]="product?.imageAsDataUri"
|
|
7311
|
+
headerLabel="PRODUCT"
|
|
7312
|
+
[headerValue]="product?.product"
|
|
7313
|
+
subHeaderLabel="REFERENCE"
|
|
7314
|
+
[subHeaderValue]="product?.productReference"
|
|
7315
|
+
></transaction-summary-block>
|
|
7316
|
+
`
|
|
7317
|
+
},] }
|
|
7318
|
+
];
|
|
7319
|
+
TransactionProductContractSummaryComponent.ctorParameters = () => [
|
|
7320
|
+
{ type: TransactionService }
|
|
7321
|
+
];
|
|
7322
|
+
|
|
7323
|
+
class TransactionProductSummaryComponent extends TransactionBaseComponent {
|
|
7324
|
+
constructor(service) {
|
|
7325
|
+
super(service);
|
|
7326
|
+
this.service = service;
|
|
7327
|
+
}
|
|
7328
|
+
productSet() {
|
|
7329
|
+
// TODO: Add to TransactionAPI?
|
|
7330
|
+
if (this.product && !this.product.imageAsDataUri && this.product.image && this.product.image.documentId) {
|
|
7331
|
+
// this._generalRepo.getDocument(this.product.image.documentId).then((doc: CoDocument) => {
|
|
7332
|
+
// this.product.imageAsDataUri = doc.thumbnailBodyAsDataUri;
|
|
7333
|
+
// });
|
|
7334
|
+
}
|
|
7335
|
+
}
|
|
7336
|
+
}
|
|
7337
|
+
TransactionProductSummaryComponent.decorators = [
|
|
7338
|
+
{ type: Component, args: [{
|
|
7339
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
7340
|
+
selector: "transaction-product-summary",
|
|
7341
|
+
template: `
|
|
7342
|
+
<transaction-summary-block
|
|
7343
|
+
[class.disabled]="!isNew"
|
|
7344
|
+
label="PRODUCT"
|
|
7345
|
+
[image]="product?.imageAsDataUri"
|
|
7346
|
+
headerLabel="PRODUCT_TYPE"
|
|
7347
|
+
[headerValue]="product?.productReference"
|
|
7348
|
+
subHeaderLabel="PRODUCT"
|
|
7349
|
+
[subHeaderValue]="product?.product"
|
|
7350
|
+
></transaction-summary-block>
|
|
7351
|
+
`
|
|
7352
|
+
},] }
|
|
7353
|
+
];
|
|
7354
|
+
TransactionProductSummaryComponent.ctorParameters = () => [
|
|
7355
|
+
{ type: TransactionService }
|
|
7356
|
+
];
|
|
7357
|
+
TransactionProductSummaryComponent.propDecorators = {
|
|
7358
|
+
hidden: [{ type: HostBinding, args: ["class.hidden",] }]
|
|
7359
|
+
};
|
|
7360
|
+
|
|
7361
|
+
class TemplateWrapperDirective {
|
|
7362
|
+
constructor(viewContainer) {
|
|
7363
|
+
this.viewContainer = viewContainer;
|
|
7364
|
+
this.templateWrapper = null;
|
|
7365
|
+
this.templateWrapperContext = null;
|
|
7366
|
+
}
|
|
7367
|
+
ngOnChanges(changes) {
|
|
7368
|
+
const recreateView = this._shouldRecreateView(changes);
|
|
7369
|
+
if (recreateView) {
|
|
7370
|
+
if (this._viewRef) {
|
|
7371
|
+
this.viewContainer.remove(this.viewContainer.indexOf(this._viewRef));
|
|
7372
|
+
}
|
|
7373
|
+
if (this.templateWrapper) {
|
|
7374
|
+
this._viewRef = this.viewContainer.createEmbeddedView(this.templateWrapper, this.templateWrapperContext);
|
|
7375
|
+
}
|
|
7376
|
+
}
|
|
7377
|
+
else {
|
|
7378
|
+
if (this._viewRef && this.templateWrapperContext) {
|
|
7379
|
+
this._updateExistingContext(this.templateWrapperContext);
|
|
7380
|
+
}
|
|
7381
|
+
}
|
|
7382
|
+
}
|
|
7383
|
+
ngOnDestroy() {
|
|
7384
|
+
if (this._viewRef) {
|
|
7385
|
+
this.viewContainer.remove(this.viewContainer.indexOf(this._viewRef));
|
|
7386
|
+
this._viewRef = undefined;
|
|
7387
|
+
}
|
|
7388
|
+
this.templateWrapper = undefined;
|
|
7389
|
+
}
|
|
7390
|
+
_shouldRecreateView(changes) {
|
|
7391
|
+
const ctxChange = changes["templateWrapperContext"];
|
|
7392
|
+
return !!changes["templateWrapper"] || (ctxChange && this._hasContextShapeChanged(ctxChange));
|
|
7393
|
+
}
|
|
7394
|
+
_hasContextShapeChanged(ctxChange) {
|
|
7395
|
+
const prevCtxKeys = Object.keys(ctxChange.previousValue || {});
|
|
7396
|
+
const currCtxKeys = Object.keys(ctxChange.currentValue || {});
|
|
7397
|
+
if (prevCtxKeys.length === currCtxKeys.length) {
|
|
7398
|
+
for (const propName of currCtxKeys) {
|
|
7399
|
+
if (prevCtxKeys.indexOf(propName) === -1) {
|
|
7400
|
+
return true;
|
|
7401
|
+
}
|
|
7402
|
+
}
|
|
7403
|
+
return false;
|
|
7404
|
+
}
|
|
7405
|
+
else {
|
|
7406
|
+
return true;
|
|
7407
|
+
}
|
|
7408
|
+
}
|
|
7409
|
+
_updateExistingContext(ctx) {
|
|
7410
|
+
for (const propName of Object.keys(ctx)) {
|
|
7411
|
+
this._viewRef.context[propName] = this.templateWrapperContext[propName];
|
|
7412
|
+
}
|
|
7413
|
+
}
|
|
7414
|
+
}
|
|
7415
|
+
TemplateWrapperDirective.decorators = [
|
|
7416
|
+
{ type: Directive, args: [{
|
|
7417
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
7418
|
+
selector: "[templateWrapper]"
|
|
7419
|
+
},] }
|
|
7420
|
+
];
|
|
7421
|
+
TemplateWrapperDirective.ctorParameters = () => [
|
|
7422
|
+
{ type: ViewContainerRef }
|
|
7423
|
+
];
|
|
7424
|
+
TemplateWrapperDirective.propDecorators = {
|
|
7425
|
+
templateWrapper: [{ type: Input }],
|
|
7426
|
+
templateWrapperContext: [{ type: Input }]
|
|
7427
|
+
};
|
|
7428
|
+
|
|
7429
|
+
class DefaultOkCancelButtonsComponent {
|
|
7430
|
+
constructor() {
|
|
7431
|
+
this.hideCancel = false;
|
|
7432
|
+
this.hideOk = false;
|
|
7433
|
+
this.okLabel = "OK";
|
|
7434
|
+
// only emits when ok button was not disabled when it was clicked
|
|
7435
|
+
this.okClick = new EventEmitter();
|
|
7436
|
+
this.cancelClick = new EventEmitter();
|
|
7437
|
+
}
|
|
7438
|
+
onOkClick(event) {
|
|
7439
|
+
if (this.okButtonComp && !this.okButtonComp.disabled) {
|
|
7440
|
+
this.okClick.emit(event);
|
|
7441
|
+
}
|
|
7442
|
+
}
|
|
7443
|
+
}
|
|
7444
|
+
DefaultOkCancelButtonsComponent.decorators = [
|
|
7445
|
+
{ type: Component, args: [{
|
|
7446
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
7447
|
+
selector: "default-ok-cancel-buttons",
|
|
7448
|
+
template: `
|
|
7449
|
+
<co-button *ngIf="!hideOk" [label]="okLabel" [disabled]="okDisabled" class="ok" #okButton (click)="onOkClick($event)"></co-button>
|
|
7450
|
+
<co-button *ngIf="!hideCancel" label="CANCEL" (click)="cancelClick.emit($event)"></co-button>
|
|
7451
|
+
<ng-content></ng-content>
|
|
7452
|
+
`,
|
|
7453
|
+
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"]
|
|
7454
|
+
},] }
|
|
7455
|
+
];
|
|
7456
|
+
DefaultOkCancelButtonsComponent.ctorParameters = () => [];
|
|
7457
|
+
DefaultOkCancelButtonsComponent.propDecorators = {
|
|
7458
|
+
okDisabled: [{ type: Input }],
|
|
7459
|
+
hideCancel: [{ type: Input }],
|
|
7460
|
+
hideOk: [{ type: Input }],
|
|
7461
|
+
okLabel: [{ type: Input }],
|
|
7462
|
+
okClick: [{ type: Output }],
|
|
7463
|
+
cancelClick: [{ type: Output }],
|
|
7464
|
+
okButtonComp: [{ type: ViewChild, args: ["okButton",] }]
|
|
7465
|
+
};
|
|
7466
|
+
|
|
7467
|
+
class IoneServiceOrderModule {
|
|
7468
|
+
}
|
|
7469
|
+
IoneServiceOrderModule.decorators = [
|
|
7470
|
+
{ type: NgModule, args: [{
|
|
7471
|
+
imports: [
|
|
7472
|
+
BrowserAnimationsModule,
|
|
7473
|
+
IconModule,
|
|
7474
|
+
InputTextModule,
|
|
7475
|
+
InputCheckboxModule,
|
|
7476
|
+
InputRadioButtonModule,
|
|
7477
|
+
FormModule,
|
|
7478
|
+
InputComboBoxModule,
|
|
7479
|
+
InputDatePickerModule,
|
|
7480
|
+
InputNumberPickerModule,
|
|
7481
|
+
CoDialogModule,
|
|
7482
|
+
CoDialogPromptModule,
|
|
7483
|
+
ButtonModule,
|
|
7484
|
+
FlexModule,
|
|
7485
|
+
MultiSelectListModule,
|
|
7486
|
+
DropDownModule,
|
|
7487
|
+
PopupModule.forRoot(),
|
|
7488
|
+
CoSidebarModule,
|
|
7489
|
+
CoGridModule,
|
|
7490
|
+
CoreModule,
|
|
7491
|
+
ChipListModule,
|
|
7492
|
+
DropDownButtonModule,
|
|
7493
|
+
CheckBoxModule,
|
|
7494
|
+
DropDownListModule,
|
|
7495
|
+
IoneShoppingCartModule,
|
|
7496
|
+
TabModule,
|
|
7497
|
+
],
|
|
7498
|
+
declarations: [
|
|
7499
|
+
TemplateWrapperDirective,
|
|
7500
|
+
DefaultOkCancelButtonsComponent,
|
|
7501
|
+
IoneServiceOrderComponent,
|
|
7502
|
+
ServiceOrderComponent,
|
|
7503
|
+
TransactionOrderTotalsComponent,
|
|
7504
|
+
TransactionOrderLineViewComponent,
|
|
7505
|
+
TransactionOrderLinesComponent,
|
|
7506
|
+
TransactionRelationAddressComponent,
|
|
7507
|
+
TransactionArticleTextComponent,
|
|
7508
|
+
TransactionSidebarRightComponent,
|
|
7509
|
+
TransactionLineAccordionComponent,
|
|
7510
|
+
TransactionHeaderBlockComponent,
|
|
7511
|
+
TransactionServiceSummaryComponent,
|
|
7512
|
+
TransactionSummaryBlockComponent,
|
|
7513
|
+
TransactionServiceStatusComponent,
|
|
7514
|
+
TransactionOrderSummaryComponent,
|
|
7515
|
+
TransactionPaymentInfoComponent,
|
|
7516
|
+
TransactionRelationEditComponent,
|
|
7517
|
+
TransactionArticleSummaryComponent,
|
|
7518
|
+
TransactionDeliverySummaryComponent,
|
|
7519
|
+
TransactionProductContractSummaryComponent,
|
|
7520
|
+
TransactionProductSummaryComponent,
|
|
7521
|
+
],
|
|
7522
|
+
providers: [
|
|
7523
|
+
DictionaryService,
|
|
7524
|
+
TransactionService,
|
|
7525
|
+
OptionsService
|
|
7526
|
+
],
|
|
7527
|
+
entryComponents: [
|
|
7528
|
+
IoneServiceOrderComponent
|
|
7529
|
+
],
|
|
7530
|
+
exports: [IoneServiceOrderComponent],
|
|
7531
|
+
bootstrap: [IoneServiceOrderComponent]
|
|
7532
|
+
},] }
|
|
7533
|
+
];
|
|
7534
|
+
|
|
5276
7535
|
//export * from "./app/component/ione-transaction.module";
|
|
5277
7536
|
|
|
5278
7537
|
/**
|
|
5279
7538
|
* Generated bundle index. Do not edit.
|
|
5280
7539
|
*/
|
|
5281
7540
|
|
|
5282
|
-
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 };
|
|
7541
|
+
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, TransactionOrderTotalsComponent as ɵbk, TransactionOrderLineViewComponent as ɵbl, TransactionOrderLinesComponent as ɵbm, TransactionRelationAddressComponent as ɵbn, TransactionSidebarRightComponent as ɵbo, TransactionLineAccordionComponent as ɵbp, TransactionHeaderBlockComponent as ɵbq, TransactionRelationEditComponent as ɵbr, TransactionServiceSummaryComponent as ɵbs, TransactionSummaryBlockComponent as ɵbt, TransactionServiceStatusComponent as ɵbu, TransactionOrderSummaryComponent as ɵbv, TransactionPaymentInfoComponent as ɵbw, TransactionArticleSummaryComponent as ɵbx, TransactionDeliverySummaryComponent as ɵby, TransactionProductContractSummaryComponent as ɵbz, CheckoutOverviewComponent as ɵc, TransactionProductSummaryComponent as ɵca, 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 };
|
|
5283
7542
|
//# sourceMappingURL=colijnit-transaction.js.map
|