@colijnit/transaction 255.1.43 → 255.1.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/bundles/colijnit-transaction.umd.js +127 -54
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.metadata.json +1 -1
  4. package/esm2015/lib/component/core/base/transaction-base.component.js +24 -11
  5. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.component.js +3 -1
  6. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-picking-button-bar-button.component.js +32 -10
  7. package/esm2015/lib/component/transaction-cash-register-dialog/transaction-cash-register-dialog.component.js +6 -6
  8. package/esm2015/lib/component/transaction-line-fields/transaction-line-amount.component.js +7 -8
  9. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.component.js +2 -2
  10. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.component.js +2 -2
  11. package/esm2015/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales-reservation/transaction-line-side-panel-sales-reservation/transaction-line-side-panel-sales-reservation.component.js +4 -2
  12. package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/transaction-lines-side-panel-cash-desk.component.js +2 -2
  13. package/esm2015/lib/enum/transaction-picking-button-category.enum.js +7 -0
  14. package/esm2015/lib/service/transaction-mapping.service.js +9 -1
  15. package/esm2015/lib/service/transaction-payment.service.js +2 -2
  16. package/esm2015/lib/service/transaction.service.js +21 -6
  17. package/esm2015/lib/transaction-version.js +3 -3
  18. package/fesm2015/colijnit-transaction.js +109 -43
  19. package/fesm2015/colijnit-transaction.js.map +1 -1
  20. package/lib/component/core/base/transaction-base.component.d.ts +4 -1
  21. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-picking-button-bar-button.component.d.ts +6 -2
  22. package/lib/component/transaction-line/transaction-base-line/style/_layout.scss +1 -0
  23. package/lib/component/transaction-line-fields/transaction-line-amount.component.d.ts +1 -1
  24. package/lib/enum/transaction-picking-button-category.enum.d.ts +5 -0
  25. package/package.json +1 -1
@@ -33,8 +33,8 @@
33
33
  function Version() {
34
34
  this.name = "@colijnit/transaction";
35
35
  this.description = "Colijn IT transaction package";
36
- this.symVer = "255.1.43";
37
- this.publishDate = "30-9-2024 11:15:28";
36
+ this.symVer = "255.1.45";
37
+ this.publishDate = "2-10-2024 17:30:09";
38
38
  }
39
39
  return Version;
40
40
  }());
@@ -11670,6 +11670,7 @@
11670
11670
 
11671
11671
  var TransactionBaseComponent = /** @class */ (function () {
11672
11672
  function TransactionBaseComponent(transactionEventService, iconCacheService, screenConfigService, imageService, dictionaryService, transactionService, changeDetector) {
11673
+ var _this = this;
11673
11674
  this.transactionEventService = transactionEventService;
11674
11675
  this.iconCacheService = iconCacheService;
11675
11676
  this.screenConfigService = screenConfigService;
@@ -11739,6 +11740,23 @@
11739
11740
  this._orderLineSets = [];
11740
11741
  this._transactionTotal = new transactionTotal_bo.TransactionTotal();
11741
11742
  this._baseSubs = [];
11743
+ this.handleCommit = function (value) { return __awaiter(_this, void 0, void 0, function () {
11744
+ var response;
11745
+ return __generator(this, function (_a) {
11746
+ switch (_a.label) {
11747
+ case 0: return [4 /*yield*/, this.lockTransaction()];
11748
+ case 1:
11749
+ if (!_a.sent()) return [3 /*break*/, 3];
11750
+ this.committing = true;
11751
+ return [4 /*yield*/, this.commit(value)];
11752
+ case 2:
11753
+ response = _a.sent();
11754
+ this.committing = false;
11755
+ return [2 /*return*/, response];
11756
+ case 3: return [2 /*return*/];
11757
+ }
11758
+ });
11759
+ }); };
11742
11760
  }
11743
11761
  Object.defineProperty(TransactionBaseComponent.prototype, "cfgName", {
11744
11762
  get: function () {
@@ -11751,6 +11769,21 @@
11751
11769
  enumerable: false,
11752
11770
  configurable: true
11753
11771
  });
11772
+ Object.defineProperty(TransactionBaseComponent.prototype, "forceWritable", {
11773
+ get: function () {
11774
+ return this._forceWritable;
11775
+ },
11776
+ set: function (value) {
11777
+ this._forceWritable = value;
11778
+ if (this._forceWritable) {
11779
+ this.readonly = false;
11780
+ this.headerReadonly = false;
11781
+ this.tooltipMessage = undefined;
11782
+ }
11783
+ },
11784
+ enumerable: false,
11785
+ configurable: true
11786
+ });
11754
11787
  Object.defineProperty(TransactionBaseComponent.prototype, "transaction", {
11755
11788
  get: function () {
11756
11789
  return this._transaction;
@@ -11966,25 +11999,6 @@
11966
11999
  TransactionBaseComponent.prototype.ngOnDestroy = function () {
11967
12000
  this._baseSubs.forEach(function (s) { return s.unsubscribe(); });
11968
12001
  };
11969
- TransactionBaseComponent.prototype.handleCommit = function (value) {
11970
- return __awaiter(this, void 0, void 0, function () {
11971
- var response;
11972
- return __generator(this, function (_a) {
11973
- switch (_a.label) {
11974
- case 0: return [4 /*yield*/, this.lockTransaction()];
11975
- case 1:
11976
- if (!_a.sent()) return [3 /*break*/, 3];
11977
- this.committing = true;
11978
- return [4 /*yield*/, this.commit(value)];
11979
- case 2:
11980
- response = _a.sent();
11981
- this.committing = false;
11982
- return [2 /*return*/, response];
11983
- case 3: return [2 /*return*/];
11984
- }
11985
- });
11986
- });
11987
- };
11988
12002
  TransactionBaseComponent.prototype.deleteTransactionLineClick = function (event) {
11989
12003
  return __awaiter(this, void 0, void 0, function () {
11990
12004
  return __generator(this, function (_a) {
@@ -12039,6 +12053,9 @@
12039
12053
  }
12040
12054
  };
12041
12055
  TransactionBaseComponent.prototype.prepareTooltipMessage = function () {
12056
+ if (this.forceWritable) { // should not check readonly-ness
12057
+ return;
12058
+ }
12042
12059
  this.tooltipMessage = '';
12043
12060
  var tooltips = [];
12044
12061
  if (this.headerTooltipMessages.length > 0 || this.lineTooltipMessages.length > 0) {
@@ -12100,6 +12117,7 @@
12100
12117
  ]; };
12101
12118
  TransactionBaseComponent.propDecorators = {
12102
12119
  cfgName: [{ type: i0.Input }],
12120
+ forceWritable: [{ type: i0.Input }],
12103
12121
  transaction: [{ type: i0.Input }],
12104
12122
  transactionLine: [{ type: i0.Input }],
12105
12123
  transactionMarginInfo: [{ type: i0.Input }],
@@ -12256,7 +12274,7 @@
12256
12274
  DialogTransactionLineWarehouseCcComponent.decorators = [
12257
12275
  { type: i0.Component, args: [{
12258
12276
  selector: "co-dialog-transaction-line-warehouse-cc",
12259
- template: "\n <co-dialog\n [customCssClass]=\"'co-small-scrollbar'\"\n [headerTemplate]=\"dialogHeader\"\n [footerTemplate]=\"footerTemplate\"\n (closeClick)=\"handleCloseDialog($event, buttonType.Cancel)\">\n <div class=\"transaction-line-warehouse-cc-section flex\">\n <co-input-number-picker\n class=\"quantity-number-picker\"\n [(model)]=\"quantity\" [min]=\"1\"\n [decimals]=\"decimals\"\n [leftIconData]=\"iconCacheService.getIcon(icons.CartShoppingRegular)\"\n (modelChange)=\"handleQuantityChange($event)\">\n </co-input-number-picker>\n <co-button\n *ngIf=\"showDirectSell\"\n class=\"bordered\"\n [iconData]=\"iconCacheService.getIcon(icons.IndustryRegular)\"\n (click)=\"directSellModalVisible = true\">\n </co-button>\n </div>\n <div class=\"transaction-line-warehouse-cc-section\" *ngIf=\"transactionKind !== transKind.PurchaseOrder\">\n <div class=\"transaction-line-warehouse-cc-section-label\" [textContent]=\"'COMMISSION_CODE' | localize\"></div>\n <co-transaction-line-commission-code\n [transactionLine]=\"transactionLine\"\n [value]=\"commissionCode\"\n [useModel]=\"false\"\n (valueChange)=\"handleCommissionCodeChange($event)\"></co-transaction-line-commission-code>\n </div>\n <div class=\"transaction-line-warehouse-cc-section\">\n <div class=\"transaction-line-warehouse-cc-section-label\" [textContent]=\"'WAREHOUSE' | localize\"></div>\n <co-transaction-line-warehouse\n [transactionLine]=\"transactionLine\"\n [value]=\"warehouse\"\n [useModel]=\"false\"\n [transactionInfo]=\"transactionInfo\"\n (valueChange)=\"handleWarehouseChange($event)\"></co-transaction-line-warehouse>\n </div>\n </co-dialog>\n <ng-template #dialogHeader>\n <div class=\"co-dialog-header-title\" [textContent]=\"'COMMISSION_CODE_WAREHOUSE_SELECTION' | localize\"></div>\n </ng-template>\n <ng-template #footerTemplate>\n <div class=\"co-dialog-footer-button-wrapper\">\n <co-button class=\"save-button\"\n [iconData]=\"iconCacheService.getIcon(icons.CheckDuotone)\"\n (click)=\"handleOkClick()\"></co-button>\n <co-button class=\"close-button\"\n [iconData]=\"iconCacheService.getIcon(icons.Crossskinny)\"\n (click)=\"handleCloseDialog($event, buttonType.Cancel)\"></co-button>\n </div>\n </ng-template>\n\n <co-dialog-sell\n *ngIf=\"directSellModalVisible\"\n [transactionUuid]=\"transactionInfo.uuid\"\n [lineUuid]=\"transactionLine.uuid\"\n [goodId]=\"transactionLine.goodId\"\n (showDirectSellModal)=\"showDirectSellModal($event)\">\n </co-dialog-sell>\n ",
12277
+ template: "\n <co-dialog\n [customCssClass]=\"'co-small-scrollbar'\"\n [headerTemplate]=\"dialogHeader\"\n [footerTemplate]=\"footerTemplate\"\n (closeClick)=\"handleCloseDialog($event, buttonType.Cancel)\">\n <div class=\"transaction-line-warehouse-cc-section flex\">\n <co-input-number-picker\n class=\"quantity-number-picker\"\n [(model)]=\"quantity\" [min]=\"1\"\n [decimals]=\"decimals\"\n [leftIconData]=\"iconCacheService.getIcon(icons.CartShoppingRegular)\"\n (modelChange)=\"handleQuantityChange($event)\">\n </co-input-number-picker>\n <co-button\n *ngIf=\"showDirectSell\"\n class=\"bordered\"\n [iconData]=\"iconCacheService.getIcon(icons.IndustryRegular)\"\n (click)=\"directSellModalVisible = true\">\n </co-button>\n </div>\n <div class=\"transaction-line-warehouse-cc-section\" *ngIf=\"transactionKind !== transKind.PurchaseOrder\">\n <div class=\"transaction-line-warehouse-cc-section-label\" [textContent]=\"'COMMISSION_CODE' | localize\"></div>\n <co-transaction-line-commission-code\n [transactionLine]=\"transactionLine\"\n [value]=\"commissionCode\"\n [useModel]=\"false\"\n [forceWritable]=\"true\"\n (valueChange)=\"handleCommissionCodeChange($event)\"></co-transaction-line-commission-code>\n </div>\n <div class=\"transaction-line-warehouse-cc-section\">\n <div class=\"transaction-line-warehouse-cc-section-label\" [textContent]=\"'WAREHOUSE' | localize\"></div>\n <co-transaction-line-warehouse\n [transactionLine]=\"transactionLine\"\n [value]=\"warehouse\"\n [useModel]=\"false\"\n [forceWritable]=\"true\"\n [transactionInfo]=\"transactionInfo\"\n (valueChange)=\"handleWarehouseChange($event)\"></co-transaction-line-warehouse>\n </div>\n </co-dialog>\n <ng-template #dialogHeader>\n <div class=\"co-dialog-header-title\" [textContent]=\"'COMMISSION_CODE_WAREHOUSE_SELECTION' | localize\"></div>\n </ng-template>\n <ng-template #footerTemplate>\n <div class=\"co-dialog-footer-button-wrapper\">\n <co-button class=\"save-button\"\n [iconData]=\"iconCacheService.getIcon(icons.CheckDuotone)\"\n (click)=\"handleOkClick()\"></co-button>\n <co-button class=\"close-button\"\n [iconData]=\"iconCacheService.getIcon(icons.Crossskinny)\"\n (click)=\"handleCloseDialog($event, buttonType.Cancel)\"></co-button>\n </div>\n </ng-template>\n\n <co-dialog-sell\n *ngIf=\"directSellModalVisible\"\n [transactionUuid]=\"transactionInfo.uuid\"\n [lineUuid]=\"transactionLine.uuid\"\n [goodId]=\"transactionLine.goodId\"\n (showDirectSellModal)=\"showDirectSellModal($event)\">\n </co-dialog-sell>\n ",
12260
12278
  encapsulation: i0.ViewEncapsulation.None
12261
12279
  },] }
12262
12280
  ];
@@ -15949,8 +15967,16 @@
15949
15967
  case 0: return [4 /*yield*/, this.connector.deleteTransactionLine(transactionUuid, TransactionLineUuid)];
15950
15968
  case 1:
15951
15969
  response = _a.sent();
15952
- this.transactionDirty = true;
15953
- return [2 /*return*/, this.handleLineOperationStatuses(response)];
15970
+ if (response) {
15971
+ this.transactionDirty = true;
15972
+ return [2 /*return*/, this.handleLineOperationStatuses(response)];
15973
+ }
15974
+ if (!!this.manualSaveParam) return [3 /*break*/, 3];
15975
+ return [4 /*yield*/, this.rollback()];
15976
+ case 2:
15977
+ _a.sent();
15978
+ _a.label = 3;
15979
+ case 3: return [2 /*return*/, false];
15954
15980
  }
15955
15981
  });
15956
15982
  });
@@ -15960,11 +15986,22 @@
15960
15986
  var response;
15961
15987
  return __generator(this, function (_a) {
15962
15988
  switch (_a.label) {
15963
- case 0: return [4 /*yield*/, this.connector.changeTransactionLineQuantity(transactionUuid, lineUuid, newQuantity)];
15989
+ case 0: return [4 /*yield*/, this.connector.changeTransactionLineQuantity(transactionUuid, lineUuid, newQuantity)
15990
+ .catch(function () {
15991
+ return null;
15992
+ })];
15964
15993
  case 1:
15965
15994
  response = _a.sent();
15966
- this.transactionDirty = true;
15967
- return [2 /*return*/, this.handleLineOperationStatuses(response)];
15995
+ if (response) {
15996
+ this.transactionDirty = true;
15997
+ return [2 /*return*/, this.handleLineOperationStatuses(response)];
15998
+ }
15999
+ if (!!this.manualSaveParam) return [3 /*break*/, 3];
16000
+ return [4 /*yield*/, this.rollback()];
16001
+ case 2:
16002
+ _a.sent();
16003
+ _a.label = 3;
16004
+ case 3: return [2 /*return*/, false];
15968
16005
  }
15969
16006
  });
15970
16007
  });
@@ -25575,15 +25612,24 @@
25575
25612
  showClass: [{ type: i0.HostBinding, args: ["class.co-transaction-card-order-delivery",] }]
25576
25613
  };
25577
25614
 
25615
+ var TransactionPickingButtonCategory;
25616
+ (function (TransactionPickingButtonCategory) {
25617
+ TransactionPickingButtonCategory["OrderPicking"] = "serviceOrderPicking";
25618
+ TransactionPickingButtonCategory["OrderToBePicked"] = "serviceOrderToBePicked";
25619
+ TransactionPickingButtonCategory["OrderPicked"] = "serviceOrderPicked";
25620
+ })(TransactionPickingButtonCategory || (TransactionPickingButtonCategory = {}));
25621
+
25578
25622
  var TransactionSalesPickingButtonBarButtonComponent = /** @class */ (function (_super) {
25579
25623
  __extends(TransactionSalesPickingButtonBarButtonComponent, _super);
25580
- function TransactionSalesPickingButtonBarButtonComponent(iconCacheService, _mappingService, _transactionEventService) {
25624
+ function TransactionSalesPickingButtonBarButtonComponent(iconCacheService, _mappingService, _transactionEventService, _transactionService) {
25581
25625
  var _this = _super.call(this) || this;
25582
25626
  _this.iconCacheService = iconCacheService;
25583
25627
  _this._mappingService = _mappingService;
25584
25628
  _this._transactionEventService = _transactionEventService;
25629
+ _this._transactionService = _transactionService;
25585
25630
  _this.icons = Icon;
25586
25631
  _this.category = TransactionTypeCategory;
25632
+ _this.buttonCategory = TransactionPickingButtonCategory;
25587
25633
  _this.buttonClicked = new i0.EventEmitter();
25588
25634
  _this.showClass = true;
25589
25635
  _this.showCategories = false;
@@ -25619,18 +25665,35 @@
25619
25665
  this.showCategories = !this.showCategories;
25620
25666
  };
25621
25667
  TransactionSalesPickingButtonBarButtonComponent.prototype.handlePickingCategoryClicked = function (event, category) {
25622
- var pickingButton = this._mappingService.getButtonBar(transactionKind_enum.TransactionKind.SalesOrder)
25623
- .find(function (button) { return button.title === 'LOGISTICS'; });
25668
+ var pickingButton;
25669
+ if (this._transactionService.transactionKind === transactionKind_enum.TransactionKind.SalesOrder) {
25670
+ pickingButton = this._mappingService.getButtonBar(transactionKind_enum.TransactionKind.SalesOrder)
25671
+ .find(function (button) { return button.title === 'LOGISTICS'; });
25672
+ }
25673
+ else {
25674
+ pickingButton = this._mappingService.getButtonBar(transactionKind_enum.TransactionKind.ServiceOrder)
25675
+ .find(function (button) { return button.title === 'LOGISTICS'; });
25676
+ }
25624
25677
  this.showCategories = false;
25625
25678
  event.preventDefault();
25626
25679
  event.stopPropagation();
25627
- if (category === TransactionTypeCategory.SalesOrderToBePicked) {
25680
+ if (category === TransactionPickingButtonCategory.OrderToBePicked) {
25628
25681
  pickingButton.icon = this.icons.BoxesPackingRegular;
25629
- pickingButton.category = TransactionTypeCategory.SalesOrderToBePicked;
25682
+ if (this._transactionService.transactionKind === transactionKind_enum.TransactionKind.SalesOrder) {
25683
+ pickingButton.category = TransactionTypeCategory.SalesOrderToBePicked;
25684
+ }
25685
+ else {
25686
+ pickingButton.category = TransactionTypeCategory.ServiceOrderToBePicked;
25687
+ }
25630
25688
  }
25631
25689
  else {
25632
25690
  pickingButton.icon = this.icons.RegularBoxesPackingCircleCheck;
25633
- pickingButton.category = TransactionTypeCategory.SalesOrderPicked;
25691
+ if (this._transactionService.transactionKind === transactionKind_enum.TransactionKind.SalesOrder) {
25692
+ pickingButton.category = TransactionTypeCategory.SalesOrderPicked;
25693
+ }
25694
+ else {
25695
+ pickingButton.category = TransactionTypeCategory.ServiceOrderPicked;
25696
+ }
25634
25697
  }
25635
25698
  this.buttonClicked.next(pickingButton);
25636
25699
  };
@@ -25643,14 +25706,15 @@
25643
25706
  TransactionSalesPickingButtonBarButtonComponent.decorators = [
25644
25707
  { type: i0.Component, args: [{
25645
25708
  selector: "co-transaction-sales-picking-button-bar-button",
25646
- template: "\n <div class=\"sales-picking-button-wrapper\" (click)=\"handleClickWrapper($event)\">\n <co-icon class=\"co-transaction-button-bar-icon\" [iconData]=\"iconCacheService.getIcon(iconName)\"></co-icon>\n <span class=\"button-title\" [textContent]=\"title | localize\"></span>\n <div class=\"picking-type-wrapper\" *ngIf=\"showCategories\">\n <div class=\"button-wrapper\" (click)=\"handlePickingCategoryClicked($event, category.SalesOrderToBePicked)\">\n <co-animated-checkbox [checked]=\"toBePickedChecked\"></co-animated-checkbox>\n <co-icon class=\"co-transaction-button-bar-icon\" [iconData]=\"iconCacheService.getIcon(icons.BoxesPackingRegular)\"></co-icon>\n <span class=\"button-title\" [textContent]=\"'TO_PICK' | localize\"></span>\n </div>\n <div class=\"button-wrapper\" (click)=\"handlePickingCategoryClicked($event, category.SalesOrderPicked)\">\n <co-animated-checkbox [checked]=\"pickedChecked\"></co-animated-checkbox>\n <co-icon class=\"co-transaction-button-bar-icon\"\n [iconData]=\"iconCacheService.getIcon(icons.RegularBoxesPackingCircleCheck)\"></co-icon>\n <span class=\"button-title\" [textContent]=\"'PICKED' | localize\"></span>\n </div>\n </div>\n </div>\n ",
25709
+ template: "\n <div class=\"sales-picking-button-wrapper\" (click)=\"handleClickWrapper($event)\">\n <co-icon class=\"co-transaction-button-bar-icon\" [iconData]=\"iconCacheService.getIcon(iconName)\"></co-icon>\n <span class=\"button-title\" [textContent]=\"title | localize\"></span>\n <div class=\"picking-type-wrapper\" *ngIf=\"showCategories\">\n <div class=\"button-wrapper\" (click)=\"handlePickingCategoryClicked($event, buttonCategory.OrderToBePicked)\">\n <co-animated-checkbox [checked]=\"toBePickedChecked\"></co-animated-checkbox>\n <co-icon class=\"co-transaction-button-bar-icon\" [iconData]=\"iconCacheService.getIcon(icons.BoxesPackingRegular)\"></co-icon>\n <span class=\"button-title\" [textContent]=\"'TO_PICK' | localize\"></span>\n </div>\n <div class=\"button-wrapper\" (click)=\"handlePickingCategoryClicked($event, buttonCategory.OrderPicked)\">\n <co-animated-checkbox [checked]=\"pickedChecked\"></co-animated-checkbox>\n <co-icon class=\"co-transaction-button-bar-icon\"\n [iconData]=\"iconCacheService.getIcon(icons.RegularBoxesPackingCircleCheck)\"></co-icon>\n <span class=\"button-title\" [textContent]=\"'PICKED' | localize\"></span>\n </div>\n </div>\n </div>\n ",
25647
25710
  encapsulation: i0.ViewEncapsulation.None
25648
25711
  },] }
25649
25712
  ];
25650
25713
  TransactionSalesPickingButtonBarButtonComponent.ctorParameters = function () { return [
25651
25714
  { type: IconCacheService },
25652
25715
  { type: TransactionMappingService },
25653
- { type: TransactionEventService }
25716
+ { type: TransactionEventService },
25717
+ { type: TransactionService }
25654
25718
  ]; };
25655
25719
  TransactionSalesPickingButtonBarButtonComponent.propDecorators = {
25656
25720
  buttonClicked: [{ type: i0.Output }],
@@ -27130,7 +27194,7 @@
27130
27194
  TransactionLinesSidePanelCashDeskComponent.decorators = [
27131
27195
  { type: i0.Component, args: [{
27132
27196
  selector: 'co-transaction-lines-side-panel-cash-desk',
27133
- template: "\n <div class=\"cash-register-button-wrapper\">\n <co-button class=\"expense-button\" [iconData]=\"iconCacheService.getIcon(icons.UpFromLineRegular)\"\n [label]=\"'EXPENSE' | localize\" (click)=\"showExpenseDialog = true\">\n </co-button>\n </div>\n <div class=\"cash-register-payment-methods-wrapper\">\n <co-payment-tile *ngFor=\"let paymentMethod of paymentMethods; let index = index\"\n [image]=\"paymentMethod.image\"\n [description]=\"paymentMethod.payment.description\"\n [showRadioButton]=\"false\"\n (selectedChange)=\"paymentMethodSelected(paymentMethod, index)\"\n ></co-payment-tile>\n </div>\n <co-transaction-cash-register-payment-dialog *ngIf=\"showCashRegisterPaymentDialog\"\n [transactionNr]=\"transaction.transactionInfo.transactionNr\"\n [transId]=\"transaction.transactionInfo.id\"\n [branch]=\"transaction.transactionInfo.branch?.relationNr\"\n [transactionUuid]=\"transaction.transactionInfo.uuid\"\n [amount]=\"transaction.transactionTotal.netAmount\"\n [currencyId]=\"transaction.transactionInfo.currencyId\"\n [relation]=\"relation\"\n [paymentViewModel]=\"selectedPaymentMethod\"\n [cashRegisterNr]=\"cashRegisterNr\"\n [cashRegisterGroupId]=\"cashRegisterGroupId\"\n [cashRegisterDrawerId]=\"cashRegisterDrawerId\"\n [cashRegisterDrawerNr]=\"cashRegisterDrawerNr\"\n [printerName]=\"printerName\"\n [emailLayout]=\"emailLayout\"\n [printerLayout]=\"printerLayout\"\n (posOrderPayed)=\"handlePayed()\"\n (closeDialog)=\"showCashRegisterPaymentDialog = false\"\n >\n </co-transaction-cash-register-payment-dialog>\n <co-transaction-cash-register-order-expense-dialog *ngIf=\"showExpenseDialog\"\n [transaction]=\"this.transaction\"\n (cancelClicked)=\"showExpenseDialog = false\"\n (okayClicked)=\"createExpenseForOrder($event)\"\n >\n </co-transaction-cash-register-order-expense-dialog>\n ",
27197
+ template: "\n <div class=\"cash-register-button-wrapper\">\n <co-button class=\"expense-button\" [iconData]=\"iconCacheService.getIcon(icons.UpFromLineRegular)\"\n [label]=\"'EXPENSE' | localize\" (click)=\"showExpenseDialog = true\">\n </co-button>\n </div>\n <div class=\"cash-register-payment-methods-wrapper\">\n <co-payment-tile *ngFor=\"let paymentMethod of paymentMethods; let index = index\"\n [image]=\"paymentMethod.image\"\n [description]=\"paymentMethod.payment.description\"\n [showRadioButton]=\"false\"\n (selectedChange)=\"paymentMethodSelected(paymentMethod, index)\"\n ></co-payment-tile>\n </div>\n <co-transaction-cash-register-payment-dialog *ngIf=\"showCashRegisterPaymentDialog\"\n [transactionNr]=\"transaction.transactionInfo.transactionNr\"\n [transId]=\"transaction.transactionInfo.id\"\n [branch]=\"transaction.transactionInfo.branch?.relationNr\"\n [transactionUuid]=\"transaction.transactionInfo.uuid\"\n [amount]=\"transaction.transactionTotal.netAmount\"\n [currencyId]=\"transaction.transactionInfo.currencyId\"\n [relation]=\"relation\"\n [paymentViewModel]=\"selectedPaymentMethod\"\n [cashRegisterNr]=\"cashRegisterNr\"\n [cashRegisterGroupId]=\"cashRegisterGroupId\"\n [cashRegisterDrawerNr]=\"cashRegisterDrawerNr\"\n [cashRegisterDrawerId]=\"cashRegisterDrawerId\"\n [printerName]=\"printerName\"\n [emailLayout]=\"emailLayout\"\n [printerLayout]=\"printerLayout\"\n (posOrderPayed)=\"handlePayed()\"\n (closeDialog)=\"showCashRegisterPaymentDialog = false\"\n >\n </co-transaction-cash-register-payment-dialog>\n <co-transaction-cash-register-order-expense-dialog *ngIf=\"showExpenseDialog\"\n [transaction]=\"this.transaction\"\n (cancelClicked)=\"showExpenseDialog = false\"\n (okayClicked)=\"createExpenseForOrder($event)\"\n >\n </co-transaction-cash-register-order-expense-dialog>\n ",
27134
27198
  encapsulation: i0.ViewEncapsulation.None
27135
27199
  },] }
27136
27200
  ];
@@ -28040,6 +28104,14 @@
28040
28104
  [{ type: transactionKind_enum.TransactionKind.SalesOrder, category: TransactionTypeCategory.SalesOrderToBePicked }, TransactionQuickAccessToBePickedComponent],
28041
28105
  [{ type: transactionKind_enum.TransactionKind.SalesOrder, category: TransactionTypeCategory.SalesOrderPicked }, TransactionQuickAccessPickedComponent],
28042
28106
  [{ type: transactionKind_enum.TransactionKind.SalesOrder, category: TransactionTypeCategory.SalesOrderPlanning }, TransactionQuickAccessPlanningComponent],
28107
+ [{ type: transactionKind_enum.TransactionKind.ServiceOrder, category: TransactionTypeCategory.ServiceOrderOverview }, TransactionQuickAccessOverviewComponent],
28108
+ [{ type: transactionKind_enum.TransactionKind.ServiceOrder, category: TransactionTypeCategory.ServiceOrderPurchase }, TransactionQuickAccessOrderPurchaseComponent],
28109
+ [{ type: transactionKind_enum.TransactionKind.ServiceOrder, category: TransactionTypeCategory.ServiceOrderAllocation }, TransactionQuickAccessGoodsAllocationComponent],
28110
+ [{ type: transactionKind_enum.TransactionKind.ServiceOrder, category: TransactionTypeCategory.ServiceOrderDeliveryNote }, TransactionQuickAccessOrderDeliveryComponent],
28111
+ [{ type: transactionKind_enum.TransactionKind.ServiceOrder, category: TransactionTypeCategory.ServiceOrderInvoice }, TransactionQuickAccessInvoiceComponent],
28112
+ [{ type: transactionKind_enum.TransactionKind.ServiceOrder, category: TransactionTypeCategory.ServiceOrderToBePicked }, TransactionQuickAccessToBePickedComponent],
28113
+ [{ type: transactionKind_enum.TransactionKind.ServiceOrder, category: TransactionTypeCategory.ServiceOrderPicked }, TransactionQuickAccessPickedComponent],
28114
+ [{ type: transactionKind_enum.TransactionKind.ServiceOrder, category: TransactionTypeCategory.ServiceOrderPlanning }, TransactionQuickAccessPlanningComponent],
28043
28115
  [{ type: transactionKind_enum.TransactionKind.SalesQuotation, category: TransactionTypeCategory.SalesOrderQuotation }, TransactionQuickAccessSalesQuotationComponent]
28044
28116
  ]);
28045
28117
  this._transactionGridComponent = new Map([
@@ -29127,7 +29199,7 @@
29127
29199
  TransactionLineCommissionCodeComponent.decorators = [
29128
29200
  { type: i0.Component, args: [{
29129
29201
  selector: "co-transaction-line-commission-code",
29130
- template: "\n <co-transaction-line-checkbox-list\n [committing]=\"committing\"\n [collection]=\"viewModelsFiltered\"\n [readonly]=\"readonly\"\n [tooltip]=\"tooltipMessage\"\n (checked)=\"handleChecked($event)\"\n ></co-transaction-line-checkbox-list>\n ",
29202
+ template: "\n <co-transaction-line-checkbox-list\n [committing]=\"committing\"\n [collection]=\"viewModelsFiltered\"\n [readonly]=\"readonly && !forceWritable\"\n [tooltip]=\"tooltipMessage\"\n (checked)=\"handleChecked($event)\"\n ></co-transaction-line-checkbox-list>\n ",
29131
29203
  encapsulation: i0.ViewEncapsulation.None
29132
29204
  },] }
29133
29205
  ];
@@ -29519,7 +29591,7 @@
29519
29591
  TransactionLineWarehouseComponent.decorators = [
29520
29592
  { type: i0.Component, args: [{
29521
29593
  selector: "co-transaction-line-warehouse",
29522
- template: "\n <co-transaction-line-checkbox-list\n [committing]=\"committing\"\n [collection]=\"viewModelsFiltered\"\n [readonly]=\"readonly\"\n [tooltip]=\"tooltipMessage\"\n (checked)=\"handleChecked($event)\"\n ></co-transaction-line-checkbox-list>\n ",
29594
+ template: "\n <co-transaction-line-checkbox-list\n [committing]=\"committing\"\n [collection]=\"viewModelsFiltered\"\n [readonly]=\"readonly && !forceWritable\"\n [tooltip]=\"tooltipMessage\"\n (checked)=\"handleChecked($event)\"\n ></co-transaction-line-checkbox-list>\n ",
29523
29595
  encapsulation: i0.ViewEncapsulation.None
29524
29596
  },] }
29525
29597
  ];
@@ -30815,30 +30887,29 @@
30815
30887
  function TransactionLineAmountComponent() {
30816
30888
  var _this = _super_1.apply(this, __spreadArray([], __read(arguments))) || this;
30817
30889
  _this.isReturn = false;
30818
- return _this;
30819
- }
30820
- TransactionLineAmountComponent.prototype.showClass = function () {
30821
- return true;
30822
- };
30823
- TransactionLineAmountComponent.prototype.commit = function (amount) {
30824
- return __awaiter(this, void 0, void 0, function () {
30890
+ _this.commit = function (amount) { return __awaiter(_this, void 0, void 0, function () {
30825
30891
  var oldAmount, success;
30826
30892
  return __generator(this, function (_a) {
30827
30893
  switch (_a.label) {
30828
30894
  case 0:
30829
30895
  if (!(this.transactionInfo && this.transactionLine && this.transactionLine.amount !== amount)) return [3 /*break*/, 2];
30896
+ this.localAmount = amount;
30830
30897
  oldAmount = this.transactionLine.amount;
30831
30898
  return [4 /*yield*/, this.transactionService.changeTransactionLineQuantity(this.transactionInfo.uuid, this.transactionLine.uuid, amount)];
30832
30899
  case 1:
30833
30900
  success = _a.sent();
30834
30901
  if (!success) {
30835
- this.localAmount = amount;
30902
+ this.localAmount = oldAmount;
30836
30903
  }
30837
30904
  return [2 /*return*/, success];
30838
30905
  case 2: return [2 /*return*/, true];
30839
30906
  }
30840
30907
  });
30841
- });
30908
+ }); };
30909
+ return _this;
30910
+ }
30911
+ TransactionLineAmountComponent.prototype.showClass = function () {
30912
+ return true;
30842
30913
  };
30843
30914
  TransactionLineAmountComponent.prototype.transactionLineSet = function () {
30844
30915
  var _super = Object.create(null, {
@@ -34121,10 +34192,10 @@
34121
34192
  return __generator(this, function (_a) {
34122
34193
  switch (_a.label) {
34123
34194
  case 0:
34124
- this._cashRegisterDrawerId = NaN;
34125
34195
  if (!drawerNr) {
34126
34196
  return [2 /*return*/];
34127
34197
  }
34198
+ this._cashRegisterDrawerId = NaN;
34128
34199
  request = new cashDrawersRequest.CashDrawersRequest();
34129
34200
  request.group = this.cashRegisterGroupId;
34130
34201
  request.date = "?='" + this._datePipe.transform(new Date(), "dd-MM-yyyy") + "'";
@@ -51604,12 +51675,14 @@
51604
51675
  case 1:
51605
51676
  response = _a.sent();
51606
51677
  if (!response) return [3 /*break*/, 4];
51607
- return [4 /*yield*/, this._transactionService.checkRefTransaction()];
51678
+ this._transactionService.currentTransaction = response;
51679
+ return [4 /*yield*/, this._transactionService.saveTransaction()];
51608
51680
  case 2:
51609
51681
  _a.sent();
51610
- return [4 /*yield*/, this._transactionService.rememberCurrentTransaction(this._transactionService.currentTransaction)];
51682
+ return [4 /*yield*/, this._transactionService.checkRefTransaction()];
51611
51683
  case 3:
51612
51684
  _a.sent();
51685
+ // await this._transactionService.rememberCurrentTransaction(this._transactionService.currentTransaction);
51613
51686
  this.handleCloseSidePanel();
51614
51687
  _a.label = 4;
51615
51688
  case 4: return [2 /*return*/];
@@ -55021,9 +55094,9 @@
55021
55094
  this.selectedPrinterLayout = defaultPrintLayout ? defaultPrintLayout : null;
55022
55095
  var defaultEmailLayout = this.emailLayouts.find(function (layout) { return layout.isDefault; });
55023
55096
  this.selectedEmailLayout = defaultEmailLayout ? defaultEmailLayout : null;
55024
- if (this.activeCashDrawer && this.activePrinter && defaultPrintLayout && defaultEmailLayout) {
55025
- this.saveButtonClick();
55026
- }
55097
+ /*if (this.activeCashDrawer && this.activePrinter && defaultPrintLayout && defaultEmailLayout) {
55098
+ this.saveButtonClick();
55099
+ }*/
55027
55100
  };
55028
55101
  TransactionCashRegisterDialogComponent.prototype._prepareDialogData = function () {
55029
55102
  return __awaiter(this, void 0, void 0, function () {
@@ -55054,7 +55127,7 @@
55054
55127
  TransactionCashRegisterDialogComponent.decorators = [
55055
55128
  { type: i0.Component, args: [{
55056
55129
  selector: "co-transaction-cash-register-dialog",
55057
- template: "\n <co-dialog [showCloseIcon]=\"true\" [footerTemplate]=\"footerTemplate\" [headerTemplate]=\"headerTemplate\" *ngIf=\"dialogVisible\" (closeClick)=\"closeClicked.emit($event)\">\n <div class=\"dialog-content-wrapper\">\n <div class=\"cash-registers\">\n <co-payment-tile *ngFor=\"let cashRegister of cashRegisters\"\n [icon]=\"cashRegister.icon\"\n [description]=\"cashRegister.description\"\n [selected]=\"cashRegister === activeCashRegister\"\n (selectedChange)=\"cashRegisterSelected(cashRegister)\"\n ></co-payment-tile>\n </div>\n\n <co-list-of-values [label]=\"'CASH_DRAWER' | localize\"\n [(model)]=\"activeCashDrawer\"\n [displayField]=\"'nr'\"\n [collection]=\"cashDrawers\"\n [multiselect]=\"false\"\n [required]=\"false\"\n [readonly]=\"headerReadonly\"\n [searchDisabled]=\"true\"\n (modelChange)=\"handleDrawerChanged($event)\"\n ></co-list-of-values>\n\n <co-list-of-values [label]=\"'PRINTER' | localize\"\n [(model)]=\"activePrinter\"\n [displayField]=\"'name'\"\n [collection]=\"printerList\"\n [multiselect]=\"false\"\n [required]=\"false\"\n [readonly]=\"headerReadonly\"\n [searchDisabled]=\"true\"\n (modelChange)=\"handlePrinterChanged($event)\"\n ></co-list-of-values>\n\n <co-list-of-values [label]=\"'PRINTER_LAYOUT' | localize\"\n [(model)]=\"selectedPrinterLayout\"\n [displayField]=\"'name'\"\n [collection]=\"printerLayouts\"\n [multiselect]=\"false\"\n [required]=\"false\"\n [readonly]=\"headerReadonly\"\n [searchDisabled]=\"true\"\n ></co-list-of-values>\n\n <co-list-of-values [label]=\"'EMAIL_LAYOUT' | localize\"\n [(model)]=\"selectedEmailLayout\"\n [displayField]=\"'name'\"\n [collection]=\"emailLayouts\"\n [multiselect]=\"false\"\n [required]=\"false\"\n [readonly]=\"headerReadonly\"\n [searchDisabled]=\"true\"\n ></co-list-of-values>\n </div>\n </co-dialog>\n\n <ng-template #headerTemplate>\n <div class=\"title-wrapper\">\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.CashRegister)\"></co-icon>\n <span class=\"co-dialog-header-title\" [textContent]=\"'SELECT_CASH_REGISTER' | localize\"></span>\n </div>\n </ng-template>\n\n <ng-template #footerTemplate>\n <div class=\"co-dialog-footer-button-wrapper\">\n <ng-container>\n <co-button class=\"save-button\"\n [disabled]=\"!activeCashDrawer || !activePrinter || !selectedEmailLayout || !selectedPrinterLayout\"\n [iconData]=\"iconCacheService.getIcon(icons.CheckDuotone)\"\n (click)=\"saveButtonClick()\"\n ></co-button>\n </ng-container>\n </div>\n </ng-template>\n ",
55130
+ template: "\n <co-dialog [showCloseIcon]=\"true\" [footerTemplate]=\"footerTemplate\" [headerTemplate]=\"headerTemplate\" *ngIf=\"dialogVisible\" (closeClick)=\"closeClicked.emit($event)\">\n <div class=\"dialog-content-wrapper\">\n <div class=\"cash-registers\">\n <co-payment-tile *ngFor=\"let cashRegister of cashRegisters\"\n [icon]=\"cashRegister.icon\"\n [description]=\"cashRegister.description\"\n [selected]=\"cashRegister === activeCashRegister\"\n (selectedChange)=\"cashRegisterSelected(cashRegister)\"\n ></co-payment-tile>\n </div>\n\n <co-list-of-values [label]=\"'CASH_DRAWER' | localize\" *ngIf=\"!activeCashRegister?.defaultDrawerNumber\"\n [(model)]=\"activeCashDrawer\"\n [displayField]=\"'nr'\"\n [collection]=\"cashDrawers\"\n [multiselect]=\"false\"\n [required]=\"false\"\n [readonly]=\"headerReadonly\"\n [searchDisabled]=\"true\"\n (modelChange)=\"handleDrawerChanged($event)\"\n ></co-list-of-values>\n\n <co-list-of-values [label]=\"'PRINTER' | localize\" *ngIf=\"!activeCashRegister?.defaultPrinter\"\n [(model)]=\"activePrinter\"\n [displayField]=\"'name'\"\n [collection]=\"printerList\"\n [multiselect]=\"false\"\n [required]=\"false\"\n [readonly]=\"headerReadonly\"\n [searchDisabled]=\"true\"\n (modelChange)=\"handlePrinterChanged($event)\"\n ></co-list-of-values>\n\n <co-list-of-values [label]=\"'PRINTER_LAYOUT' | localize\"\n [(model)]=\"selectedPrinterLayout\"\n [displayField]=\"'name'\"\n [collection]=\"printerLayouts\"\n [multiselect]=\"false\"\n [required]=\"false\"\n [readonly]=\"headerReadonly\"\n [searchDisabled]=\"true\"\n ></co-list-of-values>\n\n <co-list-of-values [label]=\"'EMAIL_LAYOUT' | localize\"\n [(model)]=\"selectedEmailLayout\"\n [displayField]=\"'name'\"\n [collection]=\"emailLayouts\"\n [multiselect]=\"false\"\n [required]=\"false\"\n [readonly]=\"headerReadonly\"\n [searchDisabled]=\"true\"\n ></co-list-of-values>\n </div>\n </co-dialog>\n\n <ng-template #headerTemplate>\n <div class=\"title-wrapper\">\n <co-icon [iconData]=\"iconCacheService.getIcon(icons.CashRegister)\"></co-icon>\n <span class=\"co-dialog-header-title\" [textContent]=\"'SELECT_CASH_REGISTER' | localize\"></span>\n </div>\n </ng-template>\n\n <ng-template #footerTemplate>\n <div class=\"co-dialog-footer-button-wrapper\">\n <ng-container>\n <co-button class=\"save-button\"\n [disabled]=\"!activeCashDrawer || !activePrinter || !selectedEmailLayout || !selectedPrinterLayout\"\n [iconData]=\"iconCacheService.getIcon(icons.CheckDuotone)\"\n (click)=\"saveButtonClick()\"\n ></co-button>\n </ng-container>\n </div>\n </ng-template>\n ",
55058
55131
  encapsulation: i0.ViewEncapsulation.None
55059
55132
  },] }
55060
55133
  ];