@hitsoft/fbdocumentflow 0.0.1 → 0.0.2

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.
@@ -1,19 +1,19 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, Injectable, NgModule, HostListener } from '@angular/core';
3
- import * as i4 from '@angular/common';
3
+ import * as i3 from '@angular/common';
4
4
  import * as i1 from '@angular/router';
5
5
  import { RouterModule } from '@angular/router';
6
6
  import * as i1$1 from '@abp/ng.core';
7
7
  import { AuthGuard, PermissionGuard, CoreModule, LazyModuleFactory } from '@abp/ng.core';
8
- import * as i3 from '@abp/ng.theme.shared';
8
+ import * as i3$1 from '@abp/ng.theme.shared';
9
9
  import { Confirmation, ThemeSharedModule } from '@abp/ng.theme.shared';
10
- import * as i5 from '@angular/forms';
10
+ import * as i4 from '@angular/forms';
11
11
  import { FormsModule } from '@angular/forms';
12
12
  import * as i6 from 'devextreme-angular';
13
13
  import { DxDataGridModule } from 'devextreme-angular';
14
14
  import { finalize, filter, switchMap, concatMap, toArray } from 'rxjs/operators';
15
15
  import * as i7 from 'devextreme-angular/ui/nested';
16
- import * as i8 from 'devextreme-angular/core';
16
+ import * as i7$1 from 'devextreme-angular/core';
17
17
  import { of, from } from 'rxjs';
18
18
 
19
19
  class FBDocumentFlowComponent {
@@ -47,7 +47,7 @@ class FBDocumentFlowComponent {
47
47
  }
48
48
  }
49
49
  FBDocumentFlowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FBDocumentFlowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
50
- FBDocumentFlowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FBDocumentFlowComponent, selector: "lib-fbdocumentflow", ngImport: i0, template: "<div class=\"card mb-4\">\n <div class=\"card-body\">\n <h4 class=\"card-title mb-2\">{{ 'FBDocumentFlow::Menu:FBDocumentFlow' | abpLocalization }}</h4>\n <p class=\"text-muted mb-0\">{{ 'FBDocumentFlow::PortalDescription' | abpLocalization }}</p>\n <p class=\"text-muted mb-0\">{{ 'FBDocumentFlow::PortalSubDescription' | abpLocalization }}</p>\n </div>\n</div>\n\n<div class=\"row g-3\">\n <div class=\"col-md-6\" *ngFor=\"let card of cards\">\n <div class=\"card h-100\" *abpPermission=\"card.permission\" [routerLink]=\"card.routerLink\" style=\"cursor: pointer\">\n <div class=\"card-body\">\n <h5 class=\"card-title\">{{ card.titleKey | abpLocalization }}</h5>\n <p class=\"card-text text-muted mb-0\">{{ card.descriptionKey | abpLocalization }}</p>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "pipe", type: i1$1.LocalizationPipe, name: "abpLocalization" }] });
50
+ FBDocumentFlowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FBDocumentFlowComponent, selector: "lib-fbdocumentflow", ngImport: i0, template: "<div class=\"card mb-4\">\n <div class=\"card-body\">\n <h4 class=\"card-title mb-2\">{{ 'FBDocumentFlow::Menu:FBDocumentFlow' | abpLocalization }}</h4>\n <p class=\"text-muted mb-0\">{{ 'FBDocumentFlow::PortalDescription' | abpLocalization }}</p>\n <p class=\"text-muted mb-0\">{{ 'FBDocumentFlow::PortalSubDescription' | abpLocalization }}</p>\n </div>\n</div>\n\n<div class=\"row g-3\">\n <div class=\"col-md-6\" *ngFor=\"let card of cards\">\n <div class=\"card h-100\" *abpPermission=\"card.permission\" [routerLink]=\"card.routerLink\" style=\"cursor: pointer\">\n <div class=\"card-body\">\n <h5 class=\"card-title\">{{ card.titleKey | abpLocalization }}</h5>\n <p class=\"card-text text-muted mb-0\">{{ card.descriptionKey | abpLocalization }}</p>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1$1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "pipe", type: i1$1.LocalizationPipe, name: "abpLocalization" }] });
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FBDocumentFlowComponent, decorators: [{
52
52
  type: Component,
53
53
  args: [{ selector: 'lib-fbdocumentflow', template: "<div class=\"card mb-4\">\n <div class=\"card-body\">\n <h4 class=\"card-title mb-2\">{{ 'FBDocumentFlow::Menu:FBDocumentFlow' | abpLocalization }}</h4>\n <p class=\"text-muted mb-0\">{{ 'FBDocumentFlow::PortalDescription' | abpLocalization }}</p>\n <p class=\"text-muted mb-0\">{{ 'FBDocumentFlow::PortalSubDescription' | abpLocalization }}</p>\n </div>\n</div>\n\n<div class=\"row g-3\">\n <div class=\"col-md-6\" *ngFor=\"let card of cards\">\n <div class=\"card h-100\" *abpPermission=\"card.permission\" [routerLink]=\"card.routerLink\" style=\"cursor: pointer\">\n <div class=\"card-body\">\n <h5 class=\"card-title\">{{ card.titleKey | abpLocalization }}</h5>\n <p class=\"card-text text-muted mb-0\">{{ card.descriptionKey | abpLocalization }}</p>\n </div>\n </div>\n </div>\n</div>\n" }]
@@ -71,13 +71,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
71
71
  }]
72
72
  }], ctorParameters: function () { return [{ type: i1$1.RestService }]; } });
73
73
 
74
- var CompanyType;
75
- (function (CompanyType) {
76
- CompanyType[CompanyType["Source"] = 0] = "Source";
77
- CompanyType[CompanyType["Intermediate"] = 1] = "Intermediate";
78
- CompanyType[CompanyType["Construction"] = 2] = "Construction";
79
- })(CompanyType || (CompanyType = {}));
80
-
81
74
  class SapCompanyProfileService {
82
75
  constructor(restService) {
83
76
  this.restService = restService;
@@ -111,11 +104,6 @@ class HitSapCompanyProfileComponent {
111
104
  this.isModalOpen = false;
112
105
  this.isSaving = false;
113
106
  this.editingId = null;
114
- this.companyTypes = [
115
- { value: CompanyType.Source, label: 'Kaynak' },
116
- { value: CompanyType.Intermediate, label: 'Ara Şirket' },
117
- { value: CompanyType.Construction, label: 'Construction' },
118
- ];
119
107
  this.form = this.buildEmptyForm();
120
108
  }
121
109
  ngOnInit() {
@@ -134,14 +122,12 @@ class HitSapCompanyProfileComponent {
134
122
  this.isModalOpen = true;
135
123
  }
136
124
  openEdit(row) {
137
- var _a, _b, _c, _d;
125
+ var _a, _b, _c;
138
126
  this.editingId = row.id;
139
127
  this.form = {
140
128
  companyCode: (_a = row.companyCode) !== null && _a !== void 0 ? _a : '',
141
129
  companyName: (_b = row.companyName) !== null && _b !== void 0 ? _b : '',
142
130
  sapCompanyDb: (_c = row.sapCompanyDb) !== null && _c !== void 0 ? _c : '',
143
- serviceLayerUrl: (_d = row.serviceLayerUrl) !== null && _d !== void 0 ? _d : '',
144
- companyType: row.companyType,
145
131
  isActive: row.isActive,
146
132
  };
147
133
  this.isModalOpen = true;
@@ -165,18 +151,16 @@ class HitSapCompanyProfileComponent {
165
151
  companyCode: '',
166
152
  companyName: '',
167
153
  sapCompanyDb: '',
168
- serviceLayerUrl: '',
169
- companyType: CompanyType.Intermediate,
170
154
  isActive: true,
171
155
  };
172
156
  }
173
157
  }
174
- HitSapCompanyProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitSapCompanyProfileComponent, deps: [{ token: SapCompanyProfileService }, { token: i3.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
175
- HitSapCompanyProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitSapCompanyProfileComponent, selector: "hit-sap-company-profile", ngImport: i0, template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">SAP \u015Eirket Profilleri</h5>\n </div>\n <div class=\"col-auto d-flex align-items-center gap-2\">\n <button class=\"btn btn-sm btn-primary\" (click)=\"openCreate()\">\n <i class=\"fa fa-plus me-1\"></i>Yeni \u015Eirket\n </button>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">Y\u00FCkleniyor...</div>\n </div>\n\n <dx-data-grid *ngIf=\"!isLoading\" [dataSource]=\"data\" [showBorders]=\"true\" [showRowLines]=\"true\" [columnAutoWidth]=\"true\">\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n\n <dxi-column dataField=\"companyCode\" caption=\"\u015Eirket Kodu\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"companyName\" caption=\"\u015Eirket Ad\u0131\"></dxi-column>\n <dxi-column dataField=\"sapCompanyDb\" caption=\"SAP CompanyDB\"></dxi-column>\n <dxi-column dataField=\"companyType\" caption=\"Tip\" cellTemplate=\"typeTemplate\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"isActive\" caption=\"Aktif\" dataType=\"boolean\" [width]=\"80\"></dxi-column>\n <dxi-column caption=\"\u0130\u015Flemler\" cellTemplate=\"actionsTemplate\" [width]=\"140\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'typeTemplate'\">\n <span *ngIf=\"cell.value === 0\">Kaynak</span>\n <span *ngIf=\"cell.value === 1\">Ara \u015Eirket</span>\n <span *ngIf=\"cell.value === 2\">Construction</span>\n </div>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary me-1\" (click)=\"openEdit(cell.data)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"delete(cell.data)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </div>\n </dx-data-grid>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>{{ editingId ? '\u015Eirket D\u00FCzenle' : 'Yeni \u015Eirket' }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form>\n <div class=\"mb-3\">\n <label class=\"form-label\">\u015Eirket Kodu</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.companyCode\" name=\"companyCode\" required />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">\u015Eirket Ad\u0131</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.companyName\" name=\"companyName\" required />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">SAP CompanyDB</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.sapCompanyDb\" name=\"sapCompanyDb\" required />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">Service Layer URL</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.serviceLayerUrl\" name=\"serviceLayerUrl\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">\u015Eirket Tipi</label>\n <select class=\"form-select\" [(ngModel)]=\"form.companyType\" name=\"companyType\">\n <option *ngFor=\"let t of companyTypes\" [ngValue]=\"t.value\">{{ t.label }}</option>\n </select>\n </div>\n <div class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"form.isActive\" name=\"isActive\" id=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\">Aktif</label>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"isSaving\">\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i6.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "customizeExportData", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "focusStateEnabled", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExported", "onExporting", "onFileSaving", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "customizeExportDataChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "focusStateEnabledChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i7.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i7.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i7.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i7.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i7.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i7.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i8.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "pipe", type: i1$1.LocalizationPipe, name: "abpLocalization" }] });
158
+ HitSapCompanyProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitSapCompanyProfileComponent, deps: [{ token: SapCompanyProfileService }, { token: i3$1.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
159
+ HitSapCompanyProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitSapCompanyProfileComponent, selector: "hit-sap-company-profile", ngImport: i0, template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:SapCompanyProfiles' | abpLocalization }}</h5>\n </div>\n <div class=\"col-auto d-flex align-items-center gap-2\">\n <button class=\"btn btn-sm btn-primary\" (click)=\"openCreate()\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'FBDocumentFlow::NewCompany' | abpLocalization }}\n </button>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::Loading' | abpLocalization }}</div>\n </div>\n\n <dx-data-grid *ngIf=\"!isLoading\" [dataSource]=\"data\" [showBorders]=\"true\" [showRowLines]=\"true\" [columnAutoWidth]=\"true\">\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n\n <dxi-column dataField=\"companyCode\" [caption]=\"'FBDocumentFlow::CompanyCode' | abpLocalization\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"companyName\" [caption]=\"'FBDocumentFlow::CompanyName' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"sapCompanyDb\" [caption]=\"'FBDocumentFlow::SapCompanyDb' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"isActive\" [caption]=\"'FBDocumentFlow::Active' | abpLocalization\" dataType=\"boolean\" [width]=\"80\"></dxi-column>\n <dxi-column [caption]=\"'FBDocumentFlow::Actions' | abpLocalization\" cellTemplate=\"actionsTemplate\" [width]=\"140\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary me-1\" (click)=\"openEdit(cell.data)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"delete(cell.data)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </div>\n </dx-data-grid>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>{{ (editingId ? 'FBDocumentFlow::EditCompany' : 'FBDocumentFlow::NewCompany') | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::CompanyCode' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.companyCode\" name=\"companyCode\" required />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::CompanyName' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.companyName\" name=\"companyName\" required />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::SapCompanyDb' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.sapCompanyDb\" name=\"sapCompanyDb\" required />\n </div>\n <div class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"form.isActive\" name=\"isActive\" id=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\">{{ 'FBDocumentFlow::Active' | abpLocalization }}</label>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"isSaving\">\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3$1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3$1.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i6.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "customizeExportData", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "focusStateEnabled", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExported", "onExporting", "onFileSaving", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "customizeExportDataChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "focusStateEnabledChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i7.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i7.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i7.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i7.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i7.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i7.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i7$1.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "pipe", type: i1$1.LocalizationPipe, name: "abpLocalization" }] });
176
160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitSapCompanyProfileComponent, decorators: [{
177
161
  type: Component,
178
- args: [{ selector: 'hit-sap-company-profile', template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">SAP \u015Eirket Profilleri</h5>\n </div>\n <div class=\"col-auto d-flex align-items-center gap-2\">\n <button class=\"btn btn-sm btn-primary\" (click)=\"openCreate()\">\n <i class=\"fa fa-plus me-1\"></i>Yeni \u015Eirket\n </button>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">Y\u00FCkleniyor...</div>\n </div>\n\n <dx-data-grid *ngIf=\"!isLoading\" [dataSource]=\"data\" [showBorders]=\"true\" [showRowLines]=\"true\" [columnAutoWidth]=\"true\">\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n\n <dxi-column dataField=\"companyCode\" caption=\"\u015Eirket Kodu\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"companyName\" caption=\"\u015Eirket Ad\u0131\"></dxi-column>\n <dxi-column dataField=\"sapCompanyDb\" caption=\"SAP CompanyDB\"></dxi-column>\n <dxi-column dataField=\"companyType\" caption=\"Tip\" cellTemplate=\"typeTemplate\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"isActive\" caption=\"Aktif\" dataType=\"boolean\" [width]=\"80\"></dxi-column>\n <dxi-column caption=\"\u0130\u015Flemler\" cellTemplate=\"actionsTemplate\" [width]=\"140\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'typeTemplate'\">\n <span *ngIf=\"cell.value === 0\">Kaynak</span>\n <span *ngIf=\"cell.value === 1\">Ara \u015Eirket</span>\n <span *ngIf=\"cell.value === 2\">Construction</span>\n </div>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary me-1\" (click)=\"openEdit(cell.data)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"delete(cell.data)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </div>\n </dx-data-grid>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>{{ editingId ? '\u015Eirket D\u00FCzenle' : 'Yeni \u015Eirket' }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form>\n <div class=\"mb-3\">\n <label class=\"form-label\">\u015Eirket Kodu</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.companyCode\" name=\"companyCode\" required />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">\u015Eirket Ad\u0131</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.companyName\" name=\"companyName\" required />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">SAP CompanyDB</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.sapCompanyDb\" name=\"sapCompanyDb\" required />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">Service Layer URL</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.serviceLayerUrl\" name=\"serviceLayerUrl\" />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">\u015Eirket Tipi</label>\n <select class=\"form-select\" [(ngModel)]=\"form.companyType\" name=\"companyType\">\n <option *ngFor=\"let t of companyTypes\" [ngValue]=\"t.value\">{{ t.label }}</option>\n </select>\n </div>\n <div class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"form.isActive\" name=\"isActive\" id=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\">Aktif</label>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"isSaving\">\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n" }]
179
- }], ctorParameters: function () { return [{ type: SapCompanyProfileService }, { type: i3.ConfirmationService }]; } });
162
+ args: [{ selector: 'hit-sap-company-profile', template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:SapCompanyProfiles' | abpLocalization }}</h5>\n </div>\n <div class=\"col-auto d-flex align-items-center gap-2\">\n <button class=\"btn btn-sm btn-primary\" (click)=\"openCreate()\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'FBDocumentFlow::NewCompany' | abpLocalization }}\n </button>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::Loading' | abpLocalization }}</div>\n </div>\n\n <dx-data-grid *ngIf=\"!isLoading\" [dataSource]=\"data\" [showBorders]=\"true\" [showRowLines]=\"true\" [columnAutoWidth]=\"true\">\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n\n <dxi-column dataField=\"companyCode\" [caption]=\"'FBDocumentFlow::CompanyCode' | abpLocalization\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"companyName\" [caption]=\"'FBDocumentFlow::CompanyName' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"sapCompanyDb\" [caption]=\"'FBDocumentFlow::SapCompanyDb' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"isActive\" [caption]=\"'FBDocumentFlow::Active' | abpLocalization\" dataType=\"boolean\" [width]=\"80\"></dxi-column>\n <dxi-column [caption]=\"'FBDocumentFlow::Actions' | abpLocalization\" cellTemplate=\"actionsTemplate\" [width]=\"140\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary me-1\" (click)=\"openEdit(cell.data)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"delete(cell.data)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </div>\n </dx-data-grid>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>{{ (editingId ? 'FBDocumentFlow::EditCompany' : 'FBDocumentFlow::NewCompany') | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::CompanyCode' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.companyCode\" name=\"companyCode\" required />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::CompanyName' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.companyName\" name=\"companyName\" required />\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::SapCompanyDb' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.sapCompanyDb\" name=\"sapCompanyDb\" required />\n </div>\n <div class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"form.isActive\" name=\"isActive\" id=\"isActive\" />\n <label class=\"form-check-label\" for=\"isActive\">{{ 'FBDocumentFlow::Active' | abpLocalization }}</label>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"isSaving\">\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n" }]
163
+ }], ctorParameters: function () { return [{ type: SapCompanyProfileService }, { type: i3$1.ConfirmationService }]; } });
180
164
 
181
165
  const routes$5 = [
182
166
  {
@@ -334,12 +318,12 @@ class HitPartnerMappingComponent {
334
318
  };
335
319
  }
336
320
  }
337
- HitPartnerMappingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPartnerMappingComponent, deps: [{ token: PartnerMappingService }, { token: SapCompanyProfileService }, { token: i3.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
338
- HitPartnerMappingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitPartnerMappingComponent, selector: "hit-partner-mapping", ngImport: i0, template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:PartnerMappings' | abpLocalization }}</h5>\n </div>\n <div class=\"col-auto d-flex align-items-center gap-2\">\n <button class=\"btn btn-sm btn-primary\" (click)=\"openCreate()\">\n <i class=\"fa fa-plus me-1\"></i>Yeni E\u015Fle\u015Ftirme\n </button>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">Y\u00FCkleniyor...</div>\n </div>\n\n <dx-data-grid *ngIf=\"!isLoading\" [dataSource]=\"data\" [showBorders]=\"true\" [showRowLines]=\"true\" [columnAutoWidth]=\"true\">\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n\n <dxi-column dataField=\"sourceCompanyName\" caption=\"Bulunulan \u015Eirket\"></dxi-column>\n <dxi-column dataField=\"relatedCompanyName\" caption=\"\u0130li\u015Fkili \u015Eirket\"></dxi-column>\n <dxi-column dataField=\"customerCardCode\" caption=\"M\u00FC\u015Fteri CardCode\"></dxi-column>\n <dxi-column dataField=\"customerCardName\" caption=\"M\u00FC\u015Fteri Ad\u0131\"></dxi-column>\n <dxi-column dataField=\"vendorCardCode\" caption=\"Sat\u0131c\u0131 CardCode\"></dxi-column>\n <dxi-column dataField=\"vendorCardName\" caption=\"Sat\u0131c\u0131 Ad\u0131\"></dxi-column>\n <dxi-column caption=\"\u0130\u015Flemler\" cellTemplate=\"actionsTemplate\" [width]=\"140\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary me-1\" (click)=\"openEdit(cell.data)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"delete(cell.data)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </div>\n </dx-data-grid>\n\n <div class=\"alert alert-secondary mt-3 mb-0\">\n <strong>\u00C7al\u0131\u015Fma Kural\u0131</strong>\n <ul class=\"mb-0\">\n <li>Kaynak OINV.CardCode hedef \u015Firketin kim oldu\u011Funu belirler.</li>\n <li>Hedef \u015Firket DB'sindeki OPCH.CardCode, \"bulunulan \u015Firket + ili\u015Fkili \u015Firket\" e\u015Fle\u015Ftirmesindeki Sat\u0131c\u0131 CardCode de\u011Ferinden al\u0131n\u0131r.</li>\n <li>Ayn\u0131 \u015Firket i\u00E7inde sonraki OINV olu\u015Fturulacaksa, sonraki hedef \u015Firketin M\u00FC\u015Fteri CardCode e\u015Fle\u015Ftirmesi kullan\u0131l\u0131r.</li>\n <li>E\u015Fle\u015Ftirme bulunamazsa sistem rastgele CardCode se\u00E7mez; aktar\u0131m \u00F6ncesinde kullan\u0131c\u0131ya se\u00E7im yapt\u0131r\u0131l\u0131r.</li>\n </ul>\n </div>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>{{ editingId ? 'E\u015Fle\u015Ftirme D\u00FCzenle' : 'Yeni Muhatap E\u015Fle\u015Ftirmesi' }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form>\n <div class=\"mb-3\">\n <label class=\"form-label\">Bulunulan \u015Eirket</label>\n <select class=\"form-select\" [(ngModel)]=\"form.sourceCompanyId\" name=\"sourceCompanyId\" required>\n <option [ngValue]=\"''\" disabled>Se\u00E7iniz</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">\u0130li\u015Fkili \u015Eirket</label>\n <select class=\"form-select\" [(ngModel)]=\"form.relatedCompanyId\" name=\"relatedCompanyId\" required>\n <option [ngValue]=\"''\" disabled>Se\u00E7iniz</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"row\">\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">M\u00FC\u015Fteri CardCode</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.customerCardCode\" name=\"customerCardCode\" />\n </div>\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">M\u00FC\u015Fteri Ad\u0131</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.customerCardName\" name=\"customerCardName\" />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">Sat\u0131c\u0131 CardCode</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.vendorCardCode\" name=\"vendorCardCode\" />\n </div>\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">Sat\u0131c\u0131 Ad\u0131</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.vendorCardName\" name=\"vendorCardName\" />\n </div>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"isSaving\">\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i6.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "customizeExportData", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "focusStateEnabled", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExported", "onExporting", "onFileSaving", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "customizeExportDataChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "focusStateEnabledChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i7.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i7.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i7.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i7.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i7.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i7.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i8.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "pipe", type: i1$1.LocalizationPipe, name: "abpLocalization" }] });
321
+ HitPartnerMappingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPartnerMappingComponent, deps: [{ token: PartnerMappingService }, { token: SapCompanyProfileService }, { token: i3$1.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
322
+ HitPartnerMappingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitPartnerMappingComponent, selector: "hit-partner-mapping", ngImport: i0, template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:PartnerMappings' | abpLocalization }}</h5>\n </div>\n <div class=\"col-auto d-flex align-items-center gap-2\">\n <button class=\"btn btn-sm btn-primary\" (click)=\"openCreate()\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'FBDocumentFlow::NewMapping' | abpLocalization }}\n </button>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::Loading' | abpLocalization }}</div>\n </div>\n\n <dx-data-grid *ngIf=\"!isLoading\" [dataSource]=\"data\" [showBorders]=\"true\" [showRowLines]=\"true\" [columnAutoWidth]=\"true\">\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n\n <dxi-column dataField=\"sourceCompanyName\" [caption]=\"'FBDocumentFlow::LocalCompany' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"relatedCompanyName\" [caption]=\"'FBDocumentFlow::RelatedCompany' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"customerCardCode\" [caption]=\"'FBDocumentFlow::CustomerCardCode' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"customerCardName\" [caption]=\"'FBDocumentFlow::CustomerCardName' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"vendorCardCode\" [caption]=\"'FBDocumentFlow::VendorCardCode' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"vendorCardName\" [caption]=\"'FBDocumentFlow::VendorCardName' | abpLocalization\"></dxi-column>\n <dxi-column [caption]=\"'FBDocumentFlow::Actions' | abpLocalization\" cellTemplate=\"actionsTemplate\" [width]=\"140\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary me-1\" (click)=\"openEdit(cell.data)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"delete(cell.data)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </div>\n </dx-data-grid>\n\n <div class=\"alert alert-secondary mt-3 mb-0\">\n <strong>{{ 'FBDocumentFlow::WorkingRule' | abpLocalization }}</strong>\n <ul class=\"mb-0\">\n <li>{{ 'FBDocumentFlow::WorkingRuleItem1' | abpLocalization }}</li>\n <li>{{ 'FBDocumentFlow::WorkingRuleItem2' | abpLocalization }}</li>\n <li>{{ 'FBDocumentFlow::WorkingRuleItem3' | abpLocalization }}</li>\n <li>{{ 'FBDocumentFlow::WorkingRuleItem4' | abpLocalization }}</li>\n </ul>\n </div>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>{{ (editingId ? 'FBDocumentFlow::EditMapping' : 'FBDocumentFlow::NewPartnerMapping') | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::LocalCompany' | abpLocalization }}</label>\n <select class=\"form-select\" [(ngModel)]=\"form.sourceCompanyId\" name=\"sourceCompanyId\" required>\n <option [ngValue]=\"''\" disabled>{{ 'FBDocumentFlow::SelectPlaceholder' | abpLocalization }}</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::RelatedCompany' | abpLocalization }}</label>\n <select class=\"form-select\" [(ngModel)]=\"form.relatedCompanyId\" name=\"relatedCompanyId\" required>\n <option [ngValue]=\"''\" disabled>{{ 'FBDocumentFlow::SelectPlaceholder' | abpLocalization }}</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"row\">\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::CustomerCardCode' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.customerCardCode\" name=\"customerCardCode\" />\n </div>\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::CustomerCardName' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.customerCardName\" name=\"customerCardName\" />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::VendorCardCode' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.vendorCardCode\" name=\"vendorCardCode\" />\n </div>\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::VendorCardName' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.vendorCardName\" name=\"vendorCardName\" />\n </div>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"isSaving\">\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3$1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3$1.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i6.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "customizeExportData", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "focusStateEnabled", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExported", "onExporting", "onFileSaving", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "customizeExportDataChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "focusStateEnabledChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i7.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i7.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i7.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i7.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i7.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i7.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i7$1.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "pipe", type: i1$1.LocalizationPipe, name: "abpLocalization" }] });
339
323
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPartnerMappingComponent, decorators: [{
340
324
  type: Component,
341
- args: [{ selector: 'hit-partner-mapping', template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:PartnerMappings' | abpLocalization }}</h5>\n </div>\n <div class=\"col-auto d-flex align-items-center gap-2\">\n <button class=\"btn btn-sm btn-primary\" (click)=\"openCreate()\">\n <i class=\"fa fa-plus me-1\"></i>Yeni E\u015Fle\u015Ftirme\n </button>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">Y\u00FCkleniyor...</div>\n </div>\n\n <dx-data-grid *ngIf=\"!isLoading\" [dataSource]=\"data\" [showBorders]=\"true\" [showRowLines]=\"true\" [columnAutoWidth]=\"true\">\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n\n <dxi-column dataField=\"sourceCompanyName\" caption=\"Bulunulan \u015Eirket\"></dxi-column>\n <dxi-column dataField=\"relatedCompanyName\" caption=\"\u0130li\u015Fkili \u015Eirket\"></dxi-column>\n <dxi-column dataField=\"customerCardCode\" caption=\"M\u00FC\u015Fteri CardCode\"></dxi-column>\n <dxi-column dataField=\"customerCardName\" caption=\"M\u00FC\u015Fteri Ad\u0131\"></dxi-column>\n <dxi-column dataField=\"vendorCardCode\" caption=\"Sat\u0131c\u0131 CardCode\"></dxi-column>\n <dxi-column dataField=\"vendorCardName\" caption=\"Sat\u0131c\u0131 Ad\u0131\"></dxi-column>\n <dxi-column caption=\"\u0130\u015Flemler\" cellTemplate=\"actionsTemplate\" [width]=\"140\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary me-1\" (click)=\"openEdit(cell.data)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"delete(cell.data)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </div>\n </dx-data-grid>\n\n <div class=\"alert alert-secondary mt-3 mb-0\">\n <strong>\u00C7al\u0131\u015Fma Kural\u0131</strong>\n <ul class=\"mb-0\">\n <li>Kaynak OINV.CardCode hedef \u015Firketin kim oldu\u011Funu belirler.</li>\n <li>Hedef \u015Firket DB'sindeki OPCH.CardCode, \"bulunulan \u015Firket + ili\u015Fkili \u015Firket\" e\u015Fle\u015Ftirmesindeki Sat\u0131c\u0131 CardCode de\u011Ferinden al\u0131n\u0131r.</li>\n <li>Ayn\u0131 \u015Firket i\u00E7inde sonraki OINV olu\u015Fturulacaksa, sonraki hedef \u015Firketin M\u00FC\u015Fteri CardCode e\u015Fle\u015Ftirmesi kullan\u0131l\u0131r.</li>\n <li>E\u015Fle\u015Ftirme bulunamazsa sistem rastgele CardCode se\u00E7mez; aktar\u0131m \u00F6ncesinde kullan\u0131c\u0131ya se\u00E7im yapt\u0131r\u0131l\u0131r.</li>\n </ul>\n </div>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>{{ editingId ? 'E\u015Fle\u015Ftirme D\u00FCzenle' : 'Yeni Muhatap E\u015Fle\u015Ftirmesi' }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form>\n <div class=\"mb-3\">\n <label class=\"form-label\">Bulunulan \u015Eirket</label>\n <select class=\"form-select\" [(ngModel)]=\"form.sourceCompanyId\" name=\"sourceCompanyId\" required>\n <option [ngValue]=\"''\" disabled>Se\u00E7iniz</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">\u0130li\u015Fkili \u015Eirket</label>\n <select class=\"form-select\" [(ngModel)]=\"form.relatedCompanyId\" name=\"relatedCompanyId\" required>\n <option [ngValue]=\"''\" disabled>Se\u00E7iniz</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"row\">\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">M\u00FC\u015Fteri CardCode</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.customerCardCode\" name=\"customerCardCode\" />\n </div>\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">M\u00FC\u015Fteri Ad\u0131</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.customerCardName\" name=\"customerCardName\" />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">Sat\u0131c\u0131 CardCode</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.vendorCardCode\" name=\"vendorCardCode\" />\n </div>\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">Sat\u0131c\u0131 Ad\u0131</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.vendorCardName\" name=\"vendorCardName\" />\n </div>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"isSaving\">\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n" }]
342
- }], ctorParameters: function () { return [{ type: PartnerMappingService }, { type: SapCompanyProfileService }, { type: i3.ConfirmationService }]; } });
325
+ args: [{ selector: 'hit-partner-mapping', template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:PartnerMappings' | abpLocalization }}</h5>\n </div>\n <div class=\"col-auto d-flex align-items-center gap-2\">\n <button class=\"btn btn-sm btn-primary\" (click)=\"openCreate()\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'FBDocumentFlow::NewMapping' | abpLocalization }}\n </button>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::Loading' | abpLocalization }}</div>\n </div>\n\n <dx-data-grid *ngIf=\"!isLoading\" [dataSource]=\"data\" [showBorders]=\"true\" [showRowLines]=\"true\" [columnAutoWidth]=\"true\">\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n\n <dxi-column dataField=\"sourceCompanyName\" [caption]=\"'FBDocumentFlow::LocalCompany' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"relatedCompanyName\" [caption]=\"'FBDocumentFlow::RelatedCompany' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"customerCardCode\" [caption]=\"'FBDocumentFlow::CustomerCardCode' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"customerCardName\" [caption]=\"'FBDocumentFlow::CustomerCardName' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"vendorCardCode\" [caption]=\"'FBDocumentFlow::VendorCardCode' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"vendorCardName\" [caption]=\"'FBDocumentFlow::VendorCardName' | abpLocalization\"></dxi-column>\n <dxi-column [caption]=\"'FBDocumentFlow::Actions' | abpLocalization\" cellTemplate=\"actionsTemplate\" [width]=\"140\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary me-1\" (click)=\"openEdit(cell.data)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"delete(cell.data)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </div>\n </dx-data-grid>\n\n <div class=\"alert alert-secondary mt-3 mb-0\">\n <strong>{{ 'FBDocumentFlow::WorkingRule' | abpLocalization }}</strong>\n <ul class=\"mb-0\">\n <li>{{ 'FBDocumentFlow::WorkingRuleItem1' | abpLocalization }}</li>\n <li>{{ 'FBDocumentFlow::WorkingRuleItem2' | abpLocalization }}</li>\n <li>{{ 'FBDocumentFlow::WorkingRuleItem3' | abpLocalization }}</li>\n <li>{{ 'FBDocumentFlow::WorkingRuleItem4' | abpLocalization }}</li>\n </ul>\n </div>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>{{ (editingId ? 'FBDocumentFlow::EditMapping' : 'FBDocumentFlow::NewPartnerMapping') | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::LocalCompany' | abpLocalization }}</label>\n <select class=\"form-select\" [(ngModel)]=\"form.sourceCompanyId\" name=\"sourceCompanyId\" required>\n <option [ngValue]=\"''\" disabled>{{ 'FBDocumentFlow::SelectPlaceholder' | abpLocalization }}</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::RelatedCompany' | abpLocalization }}</label>\n <select class=\"form-select\" [(ngModel)]=\"form.relatedCompanyId\" name=\"relatedCompanyId\" required>\n <option [ngValue]=\"''\" disabled>{{ 'FBDocumentFlow::SelectPlaceholder' | abpLocalization }}</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"row\">\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::CustomerCardCode' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.customerCardCode\" name=\"customerCardCode\" />\n </div>\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::CustomerCardName' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.customerCardName\" name=\"customerCardName\" />\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::VendorCardCode' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.vendorCardCode\" name=\"vendorCardCode\" />\n </div>\n <div class=\"col-6 mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::VendorCardName' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.vendorCardName\" name=\"vendorCardName\" />\n </div>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"isSaving\">\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n" }]
326
+ }], ctorParameters: function () { return [{ type: PartnerMappingService }, { type: SapCompanyProfileService }, { type: i3$1.ConfirmationService }]; } });
343
327
 
344
328
  const routes$4 = [
345
329
  {
@@ -408,10 +392,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
408
392
  }], ctorParameters: function () { return [{ type: i1$1.RestService }]; } });
409
393
 
410
394
  class HitDocumentScenarioComponent {
411
- constructor(service, companyService, confirmation) {
395
+ constructor(service, companyService, confirmation, localization) {
412
396
  this.service = service;
413
397
  this.companyService = companyService;
414
398
  this.confirmation = confirmation;
399
+ this.localization = localization;
415
400
  this.data = [];
416
401
  this.companies = [];
417
402
  this.isLoading = false;
@@ -420,11 +405,12 @@ class HitDocumentScenarioComponent {
420
405
  this.editingId = null;
421
406
  this.selectedScenario = null;
422
407
  this.selectedRowKeys = [];
408
+ this.legBehaviors = [];
409
+ this.form = this.buildEmptyForm();
423
410
  this.legBehaviors = [
424
- { value: LegBehavior.IntermediateChain, label: 'Ara Şirket' },
425
- { value: LegBehavior.ConstructionChain, label: 'Construction' },
411
+ { value: LegBehavior.IntermediateChain, label: this.localization.instant('FBDocumentFlow::LegBehavior:IntermediateChain') },
412
+ { value: LegBehavior.ConstructionChain, label: this.localization.instant('FBDocumentFlow::LegBehavior:ConstructionChain') },
426
413
  ];
427
- this.form = this.buildEmptyForm();
428
414
  }
429
415
  ngOnInit() {
430
416
  this.companyService.getList({ maxResultCount: 1000, skipCount: 0, isActive: true }).subscribe(result => (this.companies = result.items));
@@ -458,7 +444,9 @@ class HitDocumentScenarioComponent {
458
444
  const chain = [(_b = legs[0].sourceCompanyName) !== null && _b !== void 0 ? _b : this.companyName(legs[0].sourceCompanyId)];
459
445
  for (const leg of legs) {
460
446
  const targetName = (_c = leg.targetCompanyName) !== null && _c !== void 0 ? _c : this.companyName(leg.targetCompanyId);
461
- chain.push(leg.legBehavior === LegBehavior.ConstructionChain ? `${targetName} (Construction)` : targetName);
447
+ chain.push(leg.legBehavior === LegBehavior.ConstructionChain
448
+ ? this.localization.instant('FBDocumentFlow::ConstructionChainTargetLabel', targetName)
449
+ : targetName);
462
450
  }
463
451
  return chain.join(' → ');
464
452
  }
@@ -470,9 +458,9 @@ class HitDocumentScenarioComponent {
470
458
  // Siparişli Mal Girişi (OPDN) → Satıcı Faturası (OPCH). "Mal Girişi" kısaltması OPDN'nin tam
471
459
  // adını yansıtmıyordu (kullanıcı geri bildirimiyle tespit edildi). SAP kısa tablo adları (OINV/OPCH
472
460
  // dahil) tüm belge tiplerinde tutarlı şekilde gösterilir.
473
- return `${source} Müşteri Faturası (OINV) ${target} Satınalma Siparişi (OPOR) → Satınalma Siparişli Mal Girişi (OPDN) → Satıcı Faturası (OPCH)`;
461
+ return this.localization.instant('FBDocumentFlow::ScenarioConstructionLegStep', source, target);
474
462
  }
475
- return `${source} Müşteri Faturası (OINV) ${target} Satıcı Faturası (OPCH) → ${target} Müşteri Faturası (OINV)`;
463
+ return this.localization.instant('FBDocumentFlow::ScenarioIntermediateLegStep', source, target);
476
464
  }
477
465
  openCreate() {
478
466
  this.editingId = null;
@@ -486,7 +474,9 @@ class HitDocumentScenarioComponent {
486
474
  name: (_a = row.name) !== null && _a !== void 0 ? _a : '',
487
475
  description: (_b = row.description) !== null && _b !== void 0 ? _b : '',
488
476
  isActive: row.isActive,
489
- legs: row.legs.map(l => ({
477
+ legs: [...row.legs]
478
+ .sort((a, b) => a.sequenceNo - b.sequenceNo)
479
+ .map(l => ({
490
480
  id: l.id,
491
481
  sourceCompanyId: l.sourceCompanyId,
492
482
  targetCompanyId: l.targetCompanyId,
@@ -541,12 +531,12 @@ class HitDocumentScenarioComponent {
541
531
  return { name: '', description: '', isActive: true, legs: [] };
542
532
  }
543
533
  }
544
- HitDocumentScenarioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDocumentScenarioComponent, deps: [{ token: DocumentScenarioService }, { token: SapCompanyProfileService }, { token: i3.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
545
- HitDocumentScenarioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitDocumentScenarioComponent, selector: "hit-document-scenario", ngImport: i0, template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:DocumentScenarios' | abpLocalization }}</h5>\n </div>\n <div class=\"col-auto d-flex align-items-center gap-2\">\n <button class=\"btn btn-sm btn-primary\" (click)=\"openCreate()\">\n <i class=\"fa fa-plus me-1\"></i>Yeni Senaryo\n </button>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">Y\u00FCkleniyor...</div>\n </div>\n\n <dx-data-grid\n *ngIf=\"!isLoading\"\n [dataSource]=\"data\"\n keyExpr=\"id\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [columnAutoWidth]=\"true\"\n [(selectedRowKeys)]=\"selectedRowKeys\"\n [hoverStateEnabled]=\"true\"\n (onRowClick)=\"selectRow($event.data)\"\n (onSelectionChanged)=\"selectRow($event.selectedRowsData[0])\"\n >\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection mode=\"single\"></dxo-selection>\n\n <dxi-column dataField=\"name\" caption=\"Senaryo Ad\u0131\"></dxi-column>\n <dxi-column caption=\"Ba\u015Flang\u0131\u00E7 / Devam Ak\u0131\u015F\u0131\" cellTemplate=\"flowTemplate\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n <dxi-column dataField=\"description\" caption=\"A\u00E7\u0131klama\"></dxi-column>\n <dxi-column caption=\"Bacak Say\u0131s\u0131\" cellTemplate=\"legCountTemplate\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"isActive\" caption=\"Aktif\" dataType=\"boolean\" [width]=\"80\"></dxi-column>\n <dxi-column caption=\"\u0130\u015Flemler\" cellTemplate=\"actionsTemplate\" [width]=\"140\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'flowTemplate'\">{{ flowSummary(cell.data) }}</div>\n\n <div *dxTemplate=\"let cell of 'legCountTemplate'\">{{ cell.data.legs?.length || 0 }}</div>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary me-1\" (click)=\"openEdit(cell.data)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"delete(cell.data)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </div>\n </dx-data-grid>\n\n <div class=\"card mt-3\" *ngIf=\"selectedScenario\">\n <div class=\"card-body\">\n <h6 class=\"mb-2\">Senaryo Detay\u0131 - {{ selectedScenario.name }}</h6>\n <p class=\"text-muted mb-2\" *ngIf=\"selectedScenario.description\">{{ selectedScenario.description }}</p>\n <ol class=\"mb-2\">\n <li *ngFor=\"let leg of selectedScenario.legs\">{{ legStepText(leg) }}</li>\n </ol>\n <small class=\"text-muted d-block\">\n Haz\u0131r senaryolar proje ba\u011F\u0131ms\u0131zd\u0131r. Kaynak belgenin header Project de\u011Feri her \u015Firkette ilgili OPRJ kayd\u0131 ile e\u015Fle\u015Ftirilir.\n </small>\n <small class=\"text-muted d-block\">\n Kullan\u0131c\u0131n\u0131n aktar\u0131m s\u0131ras\u0131nda yapt\u0131\u011F\u0131 manuel de\u011Fi\u015Fiklik yaln\u0131zca i\u015Flem \u00E7al\u0131\u015Fma kopyas\u0131n\u0131 etkiler; bu senaryo tan\u0131m\u0131 de\u011Fi\u015Fmez.\n </small>\n </div>\n </div>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\" [options]=\"{ size: 'lg' }\">\n <ng-template #abpHeader>\n <h3>{{ editingId ? 'Senaryo D\u00FCzenle' : 'Yeni Haz\u0131r Senaryo' }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form>\n <div class=\"row\">\n <div class=\"col-8 mb-3\">\n <label class=\"form-label\">Senaryo Ad\u0131</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.name\" name=\"name\" required />\n </div>\n <div class=\"col-4 mb-3 d-flex align-items-end\">\n <div class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"form.isActive\" name=\"isActive\" id=\"scIsActive\" />\n <label class=\"form-check-label\" for=\"scIsActive\">Aktif</label>\n </div>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">A\u00E7\u0131klama</label>\n <textarea class=\"form-control\" rows=\"2\" [(ngModel)]=\"form.description\" name=\"description\"></textarea>\n </div>\n\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\n <label class=\"form-label mb-0\">Bacaklar</label>\n <button type=\"button\" class=\"btn btn-sm btn-outline-primary\" (click)=\"addLeg()\">\n <i class=\"fa fa-plus me-1\"></i>Bacak Ekle\n </button>\n </div>\n\n <table class=\"table table-sm align-middle\">\n <thead>\n <tr>\n <th>Kaynak \u015Eirket</th>\n <th>Hedef \u015Eirket</th>\n <th>Davran\u0131\u015F</th>\n <th>Not</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let leg of form.legs; let i = index\">\n <td>\n <select\n *ngIf=\"i === 0; else sourceText\"\n class=\"form-select form-select-sm\"\n [(ngModel)]=\"leg.sourceCompanyId\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option [ngValue]=\"''\" disabled>Se\u00E7iniz</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n <ng-template #sourceText>\n <span class=\"form-control form-control-sm bg-light\">{{ companyName(leg.sourceCompanyId) }}</span>\n </ng-template>\n </td>\n <td>\n <select\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.targetCompanyId\"\n (ngModelChange)=\"updateLegTarget(i, $event)\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option [ngValue]=\"''\" disabled>Se\u00E7iniz</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </td>\n <td>\n <select class=\"form-select form-select-sm\" [(ngModel)]=\"leg.legBehavior\" [ngModelOptions]=\"{ standalone: true }\">\n <option *ngFor=\"let b of legBehaviors\" [ngValue]=\"b.value\">{{ b.label }}</option>\n </select>\n </td>\n <td>\n <input type=\"text\" class=\"form-control form-control-sm\" [(ngModel)]=\"leg.notes\" [ngModelOptions]=\"{ standalone: true }\" />\n </td>\n <td>\n <button type=\"button\" class=\"btn btn-sm btn-outline-danger\" (click)=\"removeLeg(leg)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"isSaving\">\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i6.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "customizeExportData", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "focusStateEnabled", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExported", "onExporting", "onFileSaving", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "customizeExportDataChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "focusStateEnabledChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i7.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i7.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i7.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i7.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i7.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i7.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "deferred", "mode", "selectAllMode", "showCheckBoxesMode", "recursive"] }, { kind: "component", type: i7.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i8.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "pipe", type: i1$1.LocalizationPipe, name: "abpLocalization" }] });
534
+ HitDocumentScenarioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDocumentScenarioComponent, deps: [{ token: DocumentScenarioService }, { token: SapCompanyProfileService }, { token: i3$1.ConfirmationService }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
535
+ HitDocumentScenarioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitDocumentScenarioComponent, selector: "hit-document-scenario", ngImport: i0, template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:DocumentScenarios' | abpLocalization }}</h5>\n </div>\n <div class=\"col-auto d-flex align-items-center gap-2\">\n <button class=\"btn btn-sm btn-primary\" (click)=\"openCreate()\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'FBDocumentFlow::NewScenario' | abpLocalization }}\n </button>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::Loading' | abpLocalization }}</div>\n </div>\n\n <dx-data-grid\n *ngIf=\"!isLoading\"\n [dataSource]=\"data\"\n keyExpr=\"id\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [columnAutoWidth]=\"true\"\n [(selectedRowKeys)]=\"selectedRowKeys\"\n [hoverStateEnabled]=\"true\"\n (onRowClick)=\"selectRow($event.data)\"\n (onSelectionChanged)=\"selectRow($event.selectedRowsData[0])\"\n >\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection mode=\"single\"></dxo-selection>\n\n <dxi-column dataField=\"name\" [caption]=\"'FBDocumentFlow::ScenarioName' | abpLocalization\"></dxi-column>\n <dxi-column [caption]=\"'FBDocumentFlow::FlowSummaryColumn' | abpLocalization\" cellTemplate=\"flowTemplate\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n <dxi-column dataField=\"description\" [caption]=\"'FBDocumentFlow::Description' | abpLocalization\"></dxi-column>\n <dxi-column [caption]=\"'FBDocumentFlow::LegCount' | abpLocalization\" cellTemplate=\"legCountTemplate\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"isActive\" [caption]=\"'FBDocumentFlow::Active' | abpLocalization\" dataType=\"boolean\" [width]=\"80\"></dxi-column>\n <dxi-column [caption]=\"'FBDocumentFlow::Actions' | abpLocalization\" cellTemplate=\"actionsTemplate\" [width]=\"140\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'flowTemplate'\">{{ flowSummary(cell.data) }}</div>\n\n <div *dxTemplate=\"let cell of 'legCountTemplate'\">{{ cell.data.legs?.length || 0 }}</div>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary me-1\" (click)=\"openEdit(cell.data)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"delete(cell.data)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </div>\n </dx-data-grid>\n\n <div class=\"card mt-3\" *ngIf=\"selectedScenario\">\n <div class=\"card-body\">\n <h6 class=\"mb-2\">{{ 'FBDocumentFlow::ScenarioDetailTitle' | abpLocalization: selectedScenario.name }}</h6>\n <p class=\"text-muted mb-2\" *ngIf=\"selectedScenario.description\">{{ selectedScenario.description }}</p>\n <ol class=\"mb-2\">\n <li *ngFor=\"let leg of selectedScenario.legs\">{{ legStepText(leg) }}</li>\n </ol>\n <small class=\"text-muted d-block\">\n {{ 'FBDocumentFlow::ScenarioProjectIndependentNote' | abpLocalization }}\n </small>\n <small class=\"text-muted d-block\">\n {{ 'FBDocumentFlow::ScenarioManualChangeNote' | abpLocalization }}\n </small>\n </div>\n </div>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\" [options]=\"{ size: 'lg' }\">\n <ng-template #abpHeader>\n <h3>{{ (editingId ? 'FBDocumentFlow::EditScenario' : 'FBDocumentFlow::NewReadyScenario') | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form>\n <div class=\"row\">\n <div class=\"col-8 mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::ScenarioName' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.name\" name=\"name\" required />\n </div>\n <div class=\"col-4 mb-3 d-flex align-items-end\">\n <div class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"form.isActive\" name=\"isActive\" id=\"scIsActive\" />\n <label class=\"form-check-label\" for=\"scIsActive\">{{ 'FBDocumentFlow::Active' | abpLocalization }}</label>\n </div>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::Description' | abpLocalization }}</label>\n <textarea class=\"form-control\" rows=\"2\" [(ngModel)]=\"form.description\" name=\"description\"></textarea>\n </div>\n\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\n <label class=\"form-label mb-0\">{{ 'FBDocumentFlow::Legs' | abpLocalization }}</label>\n <button type=\"button\" class=\"btn btn-sm btn-outline-primary\" (click)=\"addLeg()\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'FBDocumentFlow::AddLeg' | abpLocalization }}\n </button>\n </div>\n\n <table class=\"table table-sm align-middle\">\n <thead>\n <tr>\n <th>{{ 'FBDocumentFlow::SourceCompany' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::TargetCompany' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::Behavior' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::Notes' | abpLocalization }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let leg of form.legs; let i = index\">\n <td>\n <select\n *ngIf=\"i === 0; else sourceText\"\n class=\"form-select form-select-sm\"\n [(ngModel)]=\"leg.sourceCompanyId\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option [ngValue]=\"''\" disabled>{{ 'FBDocumentFlow::SelectPlaceholder' | abpLocalization }}</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n <ng-template #sourceText>\n <span class=\"form-control form-control-sm bg-light\">{{ companyName(leg.sourceCompanyId) }}</span>\n </ng-template>\n </td>\n <td>\n <select\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.targetCompanyId\"\n (ngModelChange)=\"updateLegTarget(i, $event)\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option [ngValue]=\"''\" disabled>{{ 'FBDocumentFlow::SelectPlaceholder' | abpLocalization }}</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </td>\n <td>\n <select class=\"form-select form-select-sm\" [(ngModel)]=\"leg.legBehavior\" [ngModelOptions]=\"{ standalone: true }\">\n <option *ngFor=\"let b of legBehaviors\" [ngValue]=\"b.value\">{{ b.label }}</option>\n </select>\n </td>\n <td>\n <input type=\"text\" class=\"form-control form-control-sm\" [(ngModel)]=\"leg.notes\" [ngModelOptions]=\"{ standalone: true }\" />\n </td>\n <td>\n <button type=\"button\" class=\"btn btn-sm btn-outline-danger\" (click)=\"removeLeg(leg)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"isSaving\">\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3$1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3$1.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i6.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "customizeExportData", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "focusStateEnabled", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExported", "onExporting", "onFileSaving", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "customizeExportDataChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "focusStateEnabledChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i7.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i7.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i7.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i7.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i7.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i7.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "deferred", "mode", "selectAllMode", "showCheckBoxesMode", "recursive"] }, { kind: "component", type: i7.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i7$1.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "pipe", type: i1$1.LocalizationPipe, name: "abpLocalization" }] });
546
536
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDocumentScenarioComponent, decorators: [{
547
537
  type: Component,
548
- args: [{ selector: 'hit-document-scenario', template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:DocumentScenarios' | abpLocalization }}</h5>\n </div>\n <div class=\"col-auto d-flex align-items-center gap-2\">\n <button class=\"btn btn-sm btn-primary\" (click)=\"openCreate()\">\n <i class=\"fa fa-plus me-1\"></i>Yeni Senaryo\n </button>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">Y\u00FCkleniyor...</div>\n </div>\n\n <dx-data-grid\n *ngIf=\"!isLoading\"\n [dataSource]=\"data\"\n keyExpr=\"id\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [columnAutoWidth]=\"true\"\n [(selectedRowKeys)]=\"selectedRowKeys\"\n [hoverStateEnabled]=\"true\"\n (onRowClick)=\"selectRow($event.data)\"\n (onSelectionChanged)=\"selectRow($event.selectedRowsData[0])\"\n >\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection mode=\"single\"></dxo-selection>\n\n <dxi-column dataField=\"name\" caption=\"Senaryo Ad\u0131\"></dxi-column>\n <dxi-column caption=\"Ba\u015Flang\u0131\u00E7 / Devam Ak\u0131\u015F\u0131\" cellTemplate=\"flowTemplate\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n <dxi-column dataField=\"description\" caption=\"A\u00E7\u0131klama\"></dxi-column>\n <dxi-column caption=\"Bacak Say\u0131s\u0131\" cellTemplate=\"legCountTemplate\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"isActive\" caption=\"Aktif\" dataType=\"boolean\" [width]=\"80\"></dxi-column>\n <dxi-column caption=\"\u0130\u015Flemler\" cellTemplate=\"actionsTemplate\" [width]=\"140\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'flowTemplate'\">{{ flowSummary(cell.data) }}</div>\n\n <div *dxTemplate=\"let cell of 'legCountTemplate'\">{{ cell.data.legs?.length || 0 }}</div>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary me-1\" (click)=\"openEdit(cell.data)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"delete(cell.data)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </div>\n </dx-data-grid>\n\n <div class=\"card mt-3\" *ngIf=\"selectedScenario\">\n <div class=\"card-body\">\n <h6 class=\"mb-2\">Senaryo Detay\u0131 - {{ selectedScenario.name }}</h6>\n <p class=\"text-muted mb-2\" *ngIf=\"selectedScenario.description\">{{ selectedScenario.description }}</p>\n <ol class=\"mb-2\">\n <li *ngFor=\"let leg of selectedScenario.legs\">{{ legStepText(leg) }}</li>\n </ol>\n <small class=\"text-muted d-block\">\n Haz\u0131r senaryolar proje ba\u011F\u0131ms\u0131zd\u0131r. Kaynak belgenin header Project de\u011Feri her \u015Firkette ilgili OPRJ kayd\u0131 ile e\u015Fle\u015Ftirilir.\n </small>\n <small class=\"text-muted d-block\">\n Kullan\u0131c\u0131n\u0131n aktar\u0131m s\u0131ras\u0131nda yapt\u0131\u011F\u0131 manuel de\u011Fi\u015Fiklik yaln\u0131zca i\u015Flem \u00E7al\u0131\u015Fma kopyas\u0131n\u0131 etkiler; bu senaryo tan\u0131m\u0131 de\u011Fi\u015Fmez.\n </small>\n </div>\n </div>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\" [options]=\"{ size: 'lg' }\">\n <ng-template #abpHeader>\n <h3>{{ editingId ? 'Senaryo D\u00FCzenle' : 'Yeni Haz\u0131r Senaryo' }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form>\n <div class=\"row\">\n <div class=\"col-8 mb-3\">\n <label class=\"form-label\">Senaryo Ad\u0131</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.name\" name=\"name\" required />\n </div>\n <div class=\"col-4 mb-3 d-flex align-items-end\">\n <div class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"form.isActive\" name=\"isActive\" id=\"scIsActive\" />\n <label class=\"form-check-label\" for=\"scIsActive\">Aktif</label>\n </div>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">A\u00E7\u0131klama</label>\n <textarea class=\"form-control\" rows=\"2\" [(ngModel)]=\"form.description\" name=\"description\"></textarea>\n </div>\n\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\n <label class=\"form-label mb-0\">Bacaklar</label>\n <button type=\"button\" class=\"btn btn-sm btn-outline-primary\" (click)=\"addLeg()\">\n <i class=\"fa fa-plus me-1\"></i>Bacak Ekle\n </button>\n </div>\n\n <table class=\"table table-sm align-middle\">\n <thead>\n <tr>\n <th>Kaynak \u015Eirket</th>\n <th>Hedef \u015Eirket</th>\n <th>Davran\u0131\u015F</th>\n <th>Not</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let leg of form.legs; let i = index\">\n <td>\n <select\n *ngIf=\"i === 0; else sourceText\"\n class=\"form-select form-select-sm\"\n [(ngModel)]=\"leg.sourceCompanyId\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option [ngValue]=\"''\" disabled>Se\u00E7iniz</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n <ng-template #sourceText>\n <span class=\"form-control form-control-sm bg-light\">{{ companyName(leg.sourceCompanyId) }}</span>\n </ng-template>\n </td>\n <td>\n <select\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.targetCompanyId\"\n (ngModelChange)=\"updateLegTarget(i, $event)\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option [ngValue]=\"''\" disabled>Se\u00E7iniz</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </td>\n <td>\n <select class=\"form-select form-select-sm\" [(ngModel)]=\"leg.legBehavior\" [ngModelOptions]=\"{ standalone: true }\">\n <option *ngFor=\"let b of legBehaviors\" [ngValue]=\"b.value\">{{ b.label }}</option>\n </select>\n </td>\n <td>\n <input type=\"text\" class=\"form-control form-control-sm\" [(ngModel)]=\"leg.notes\" [ngModelOptions]=\"{ standalone: true }\" />\n </td>\n <td>\n <button type=\"button\" class=\"btn btn-sm btn-outline-danger\" (click)=\"removeLeg(leg)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"isSaving\">\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n" }]
549
- }], ctorParameters: function () { return [{ type: DocumentScenarioService }, { type: SapCompanyProfileService }, { type: i3.ConfirmationService }]; } });
538
+ args: [{ selector: 'hit-document-scenario', template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:DocumentScenarios' | abpLocalization }}</h5>\n </div>\n <div class=\"col-auto d-flex align-items-center gap-2\">\n <button class=\"btn btn-sm btn-primary\" (click)=\"openCreate()\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'FBDocumentFlow::NewScenario' | abpLocalization }}\n </button>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading\">\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::Loading' | abpLocalization }}</div>\n </div>\n\n <dx-data-grid\n *ngIf=\"!isLoading\"\n [dataSource]=\"data\"\n keyExpr=\"id\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [columnAutoWidth]=\"true\"\n [(selectedRowKeys)]=\"selectedRowKeys\"\n [hoverStateEnabled]=\"true\"\n (onRowClick)=\"selectRow($event.data)\"\n (onSelectionChanged)=\"selectRow($event.selectedRowsData[0])\"\n >\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection mode=\"single\"></dxo-selection>\n\n <dxi-column dataField=\"name\" [caption]=\"'FBDocumentFlow::ScenarioName' | abpLocalization\"></dxi-column>\n <dxi-column [caption]=\"'FBDocumentFlow::FlowSummaryColumn' | abpLocalization\" cellTemplate=\"flowTemplate\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n <dxi-column dataField=\"description\" [caption]=\"'FBDocumentFlow::Description' | abpLocalization\"></dxi-column>\n <dxi-column [caption]=\"'FBDocumentFlow::LegCount' | abpLocalization\" cellTemplate=\"legCountTemplate\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"isActive\" [caption]=\"'FBDocumentFlow::Active' | abpLocalization\" dataType=\"boolean\" [width]=\"80\"></dxi-column>\n <dxi-column [caption]=\"'FBDocumentFlow::Actions' | abpLocalization\" cellTemplate=\"actionsTemplate\" [width]=\"140\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'flowTemplate'\">{{ flowSummary(cell.data) }}</div>\n\n <div *dxTemplate=\"let cell of 'legCountTemplate'\">{{ cell.data.legs?.length || 0 }}</div>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary me-1\" (click)=\"openEdit(cell.data)\">\n <i class=\"fa fa-pencil\"></i>\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"delete(cell.data)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </div>\n </dx-data-grid>\n\n <div class=\"card mt-3\" *ngIf=\"selectedScenario\">\n <div class=\"card-body\">\n <h6 class=\"mb-2\">{{ 'FBDocumentFlow::ScenarioDetailTitle' | abpLocalization: selectedScenario.name }}</h6>\n <p class=\"text-muted mb-2\" *ngIf=\"selectedScenario.description\">{{ selectedScenario.description }}</p>\n <ol class=\"mb-2\">\n <li *ngFor=\"let leg of selectedScenario.legs\">{{ legStepText(leg) }}</li>\n </ol>\n <small class=\"text-muted d-block\">\n {{ 'FBDocumentFlow::ScenarioProjectIndependentNote' | abpLocalization }}\n </small>\n <small class=\"text-muted d-block\">\n {{ 'FBDocumentFlow::ScenarioManualChangeNote' | abpLocalization }}\n </small>\n </div>\n </div>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\" [options]=\"{ size: 'lg' }\">\n <ng-template #abpHeader>\n <h3>{{ (editingId ? 'FBDocumentFlow::EditScenario' : 'FBDocumentFlow::NewReadyScenario') | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form>\n <div class=\"row\">\n <div class=\"col-8 mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::ScenarioName' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.name\" name=\"name\" required />\n </div>\n <div class=\"col-4 mb-3 d-flex align-items-end\">\n <div class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"form.isActive\" name=\"isActive\" id=\"scIsActive\" />\n <label class=\"form-check-label\" for=\"scIsActive\">{{ 'FBDocumentFlow::Active' | abpLocalization }}</label>\n </div>\n </div>\n </div>\n <div class=\"mb-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::Description' | abpLocalization }}</label>\n <textarea class=\"form-control\" rows=\"2\" [(ngModel)]=\"form.description\" name=\"description\"></textarea>\n </div>\n\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\n <label class=\"form-label mb-0\">{{ 'FBDocumentFlow::Legs' | abpLocalization }}</label>\n <button type=\"button\" class=\"btn btn-sm btn-outline-primary\" (click)=\"addLeg()\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'FBDocumentFlow::AddLeg' | abpLocalization }}\n </button>\n </div>\n\n <table class=\"table table-sm align-middle\">\n <thead>\n <tr>\n <th>{{ 'FBDocumentFlow::SourceCompany' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::TargetCompany' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::Behavior' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::Notes' | abpLocalization }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let leg of form.legs; let i = index\">\n <td>\n <select\n *ngIf=\"i === 0; else sourceText\"\n class=\"form-select form-select-sm\"\n [(ngModel)]=\"leg.sourceCompanyId\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option [ngValue]=\"''\" disabled>{{ 'FBDocumentFlow::SelectPlaceholder' | abpLocalization }}</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n <ng-template #sourceText>\n <span class=\"form-control form-control-sm bg-light\">{{ companyName(leg.sourceCompanyId) }}</span>\n </ng-template>\n </td>\n <td>\n <select\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.targetCompanyId\"\n (ngModelChange)=\"updateLegTarget(i, $event)\"\n [ngModelOptions]=\"{ standalone: true }\"\n >\n <option [ngValue]=\"''\" disabled>{{ 'FBDocumentFlow::SelectPlaceholder' | abpLocalization }}</option>\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </td>\n <td>\n <select class=\"form-select form-select-sm\" [(ngModel)]=\"leg.legBehavior\" [ngModelOptions]=\"{ standalone: true }\">\n <option *ngFor=\"let b of legBehaviors\" [ngValue]=\"b.value\">{{ b.label }}</option>\n </select>\n </td>\n <td>\n <input type=\"text\" class=\"form-control form-control-sm\" [(ngModel)]=\"leg.notes\" [ngModelOptions]=\"{ standalone: true }\" />\n </td>\n <td>\n <button type=\"button\" class=\"btn btn-sm btn-outline-danger\" (click)=\"removeLeg(leg)\">\n <i class=\"fa fa-trash\"></i>\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"save()\" [disabled]=\"isSaving\">\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n" }]
539
+ }], ctorParameters: function () { return [{ type: DocumentScenarioService }, { type: SapCompanyProfileService }, { type: i3$1.ConfirmationService }, { type: i1$1.LocalizationService }]; } });
550
540
 
551
541
  const routes$3 = [
552
542
  {
@@ -715,10 +705,10 @@ class HitProjectParameterComponent {
715
705
  }
716
706
  }
717
707
  HitProjectParameterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitProjectParameterComponent, deps: [{ token: SapProjectParameterService }, { token: SapCompanyProfileService }], target: i0.ɵɵFactoryTarget.Component });
718
- HitProjectParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitProjectParameterComponent, selector: "hit-project-parameter", ngImport: i0, template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:ProjectParameters' | abpLocalization }}</h5>\n </div>\n <div class=\"card-body pt-3\">\n <div class=\"row g-3 align-items-end mb-3\">\n <div class=\"col-md-4\">\n <label class=\"form-label\">\u015Eirket</label>\n <select class=\"form-select\" [(ngModel)]=\"selectedCompanyId\" (ngModelChange)=\"loadData()\">\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"col-auto\">\n <button class=\"btn btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading || !selectedCompanyId\" title=\"Listeyi yenile\">\n <i class=\"fa fa-refresh me-1\"></i>Yenile\n </button>\n </div>\n </div>\n\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\n <h6 class=\"mb-0\">SAP B1 Proje Parametreleri</h6>\n <button class=\"btn btn-primary btn-sm\" (click)=\"openCreateModal()\" [disabled]=\"!selectedCompanyId\">\n <i class=\"fa fa-plus me-1\"></i>Yeni Proje Ekle\n </button>\n </div>\n\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">SAP B1 proje parametreleri y\u00FCkleniyor...</div>\n </div>\n\n <dx-data-grid *ngIf=\"!isLoading\" [dataSource]=\"data\" [showBorders]=\"true\" [showRowLines]=\"true\" [columnAutoWidth]=\"true\" keyExpr=\"prjCode\">\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n\n <dxi-column dataField=\"prjCode\" caption=\"Proje Kodu\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"prjName\" caption=\"Proje Ad\u0131\"></dxi-column>\n <dxi-column dataField=\"ebaId\" caption=\"EBA ID\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"increaseRate\" caption=\"Art\u0131r\u0131m Oran\u0131\" dataType=\"number\" [width]=\"130\"></dxi-column>\n <dxi-column dataField=\"cardCode\" caption=\"Muhatap Kodu\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"currency\" caption=\"Para Birimi\" [width]=\"110\"></dxi-column>\n <dxi-column type=\"buttons\" caption=\"\" [width]=\"60\">\n <dxi-button icon=\"edit\" hint=\"D\u00FCzenle\" [onClick]=\"onEditButtonClick\"></dxi-button>\n </dxi-column>\n </dx-data-grid>\n\n <div class=\"alert alert-warning mt-3\" *ngIf=\"hasUndefinedIncreaseRate()\">\n 0 / NULL art\u0131r\u0131m oran\u0131 ak\u0131\u015F\u0131 bloklamaz. Aktar\u0131m baca\u011F\u0131nda k\u0131rm\u0131z\u0131 uyar\u0131 g\u00F6sterilir ve art\u0131r\u0131m uygulanmadan devam i\u00E7in kullan\u0131c\u0131 onay\u0131 al\u0131n\u0131r.\n </div>\n\n <small class=\"text-muted d-block mt-2\">\n Proje Kodu/Ad\u0131/EBA ID SAP'ta olu\u015Fturulduktan sonra bu ekrandan de\u011Fi\u015Ftirilemez (SAP anahtar/bilgi alanlar\u0131d\u0131r); yaln\u0131zca\n Art\u0131r\u0131m Oran\u0131, Muhatap Kodu ve Para Birimi g\u00FCncellenebilir.\n <br />\n U_CardCode varsay\u0131lan proje muhatab\u0131d\u0131r; Intercompany hedef OPCH.CardCode \u00E7\u00F6z\u00FCm\u00FCnde esas kaynak Muhatap E\u015Fle\u015Ftirmeleridir.\n </small>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>{{ modalMode === 'create' ? 'Yeni Proje Ekle' : 'Proje Parametrelerini G\u00FCncelle' }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <div class=\"row g-3\">\n <div class=\"col-md-6\">\n <label class=\"form-label\">Proje Kodu</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"form.prjCode\"\n [disabled]=\"modalMode === 'update'\"\n [readOnly]=\"modalMode === 'update'\"\n />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">Proje Ad\u0131</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"form.prjName\"\n [disabled]=\"modalMode === 'update'\"\n [readOnly]=\"modalMode === 'update'\"\n />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">EBA ID</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"form.ebaId\"\n [disabled]=\"modalMode === 'update'\"\n [readOnly]=\"modalMode === 'update'\"\n />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">Art\u0131r\u0131m Oran\u0131 (U_Oran)</label>\n <input type=\"number\" step=\"0.01\" class=\"form-control\" [(ngModel)]=\"form.increaseRate\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">Muhatap Kodu (U_CardCode)</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.cardCode\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">Para Birimi (U_Currency)</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.currency\" />\n </div>\n </div>\n\n <div class=\"alert alert-info small mt-3\" *ngIf=\"modalMode === 'update'\">\n Proje Kodu/Ad\u0131/EBA ID SAP'ta de\u011Fi\u015Ftirilemeyen alanlard\u0131r; yaln\u0131zca Art\u0131r\u0131m Oran\u0131, Muhatap Kodu ve Para Birimi g\u00FCncellenir.\n Dokunmad\u0131\u011F\u0131n\u0131z alanlar mevcut SAP de\u011Feriyle oldu\u011Fu gibi g\u00F6nderilir.\n </div>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancelModal()\">Vazge\u00E7</button>\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"saveModal()\"\n [disabled]=\"isSaving || !form.prjCode || !form.prjName\"\n >\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n Kaydet\n </button>\n </ng-template>\n</abp-modal>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "component", type: i6.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "customizeExportData", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "focusStateEnabled", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExported", "onExporting", "onFileSaving", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "customizeExportDataChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "focusStateEnabledChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i7.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i7.DxiButtonComponent, selector: "dxi-button", inputs: ["location", "name", "options", "cssClass", "disabled", "hint", "icon", "onClick", "template", "text", "visible"] }, { kind: "component", type: i7.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i7.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i7.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i7.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "pipe", type: i1$1.LocalizationPipe, name: "abpLocalization" }] });
708
+ HitProjectParameterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitProjectParameterComponent, selector: "hit-project-parameter", ngImport: i0, template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:ProjectParameters' | abpLocalization }}</h5>\n </div>\n <div class=\"card-body pt-3\">\n <div class=\"row g-3 align-items-end mb-3\">\n <div class=\"col-md-4\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::Company' | abpLocalization }}</label>\n <select class=\"form-select\" [(ngModel)]=\"selectedCompanyId\" (ngModelChange)=\"loadData()\">\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"col-auto\">\n <button\n class=\"btn btn-outline-primary\"\n (click)=\"loadData()\"\n [disabled]=\"isLoading || !selectedCompanyId\"\n [title]=\"'FBDocumentFlow::RefreshListTooltip' | abpLocalization\"\n >\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\n <h6 class=\"mb-0\">{{ 'FBDocumentFlow::ProjectParametersTitle' | abpLocalization }}</h6>\n <button class=\"btn btn-primary btn-sm\" (click)=\"openCreateModal()\" [disabled]=\"!selectedCompanyId\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'FBDocumentFlow::NewProject' | abpLocalization }}\n </button>\n </div>\n\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::LoadingProjectParameters' | abpLocalization }}</div>\n </div>\n\n <dx-data-grid *ngIf=\"!isLoading\" [dataSource]=\"data\" [showBorders]=\"true\" [showRowLines]=\"true\" [columnAutoWidth]=\"true\" keyExpr=\"prjCode\">\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n\n <dxi-column dataField=\"prjCode\" [caption]=\"'FBDocumentFlow::ProjectCode' | abpLocalization\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"prjName\" [caption]=\"'FBDocumentFlow::ProjectName' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"ebaId\" [caption]=\"'FBDocumentFlow::EbaId' | abpLocalization\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"increaseRate\" [caption]=\"'FBDocumentFlow::IncreaseRate' | abpLocalization\" dataType=\"number\" [width]=\"130\"></dxi-column>\n <dxi-column dataField=\"cardCode\" [caption]=\"'FBDocumentFlow::PartnerCode' | abpLocalization\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"currency\" [caption]=\"'FBDocumentFlow::CurrencyUnit' | abpLocalization\" [width]=\"110\"></dxi-column>\n <dxi-column type=\"buttons\" caption=\"\" [width]=\"60\">\n <dxi-button icon=\"edit\" [hint]=\"'FBDocumentFlow::Edit' | abpLocalization\" [onClick]=\"onEditButtonClick\"></dxi-button>\n </dxi-column>\n </dx-data-grid>\n\n <div class=\"alert alert-warning mt-3\" *ngIf=\"hasUndefinedIncreaseRate()\">\n {{ 'FBDocumentFlow::UndefinedIncreaseRateWarning' | abpLocalization }}\n </div>\n\n <small class=\"text-muted d-block mt-2\">\n {{ 'FBDocumentFlow::ProjectStaticFieldsNote' | abpLocalization }}\n <br />\n {{ 'FBDocumentFlow::DefaultPartnerNote' | abpLocalization }}\n </small>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>{{ (modalMode === 'create' ? 'FBDocumentFlow::NewProject' : 'FBDocumentFlow::UpdateProjectParameters') | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <div class=\"row g-3\">\n <div class=\"col-md-6\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::ProjectCode' | abpLocalization }}</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"form.prjCode\"\n [disabled]=\"modalMode === 'update'\"\n [readOnly]=\"modalMode === 'update'\"\n />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::ProjectName' | abpLocalization }}</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"form.prjName\"\n [disabled]=\"modalMode === 'update'\"\n [readOnly]=\"modalMode === 'update'\"\n />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::EbaId' | abpLocalization }}</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"form.ebaId\"\n [disabled]=\"modalMode === 'update'\"\n [readOnly]=\"modalMode === 'update'\"\n />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::IncreaseRateField' | abpLocalization }}</label>\n <input type=\"number\" step=\"0.01\" class=\"form-control\" [(ngModel)]=\"form.increaseRate\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::PartnerCodeField' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.cardCode\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::CurrencyUnitField' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.currency\" />\n </div>\n </div>\n\n <div class=\"alert alert-info small mt-3\" *ngIf=\"modalMode === 'update'\">\n {{ 'FBDocumentFlow::UpdateModalNote' | abpLocalization }}\n </div>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancelModal()\">{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"saveModal()\"\n [disabled]=\"isSaving || !form.prjCode || !form.prjName\"\n >\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "component", type: i6.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "customizeExportData", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "focusStateEnabled", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExported", "onExporting", "onFileSaving", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "customizeExportDataChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "focusStateEnabledChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i7.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i7.DxiButtonComponent, selector: "dxi-button", inputs: ["location", "name", "options", "cssClass", "disabled", "hint", "icon", "onClick", "template", "text", "visible"] }, { kind: "component", type: i7.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i7.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i7.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i7.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "pipe", type: i1$1.LocalizationPipe, name: "abpLocalization" }] });
719
709
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitProjectParameterComponent, decorators: [{
720
710
  type: Component,
721
- args: [{ selector: 'hit-project-parameter', template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:ProjectParameters' | abpLocalization }}</h5>\n </div>\n <div class=\"card-body pt-3\">\n <div class=\"row g-3 align-items-end mb-3\">\n <div class=\"col-md-4\">\n <label class=\"form-label\">\u015Eirket</label>\n <select class=\"form-select\" [(ngModel)]=\"selectedCompanyId\" (ngModelChange)=\"loadData()\">\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"col-auto\">\n <button class=\"btn btn-outline-primary\" (click)=\"loadData()\" [disabled]=\"isLoading || !selectedCompanyId\" title=\"Listeyi yenile\">\n <i class=\"fa fa-refresh me-1\"></i>Yenile\n </button>\n </div>\n </div>\n\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\n <h6 class=\"mb-0\">SAP B1 Proje Parametreleri</h6>\n <button class=\"btn btn-primary btn-sm\" (click)=\"openCreateModal()\" [disabled]=\"!selectedCompanyId\">\n <i class=\"fa fa-plus me-1\"></i>Yeni Proje Ekle\n </button>\n </div>\n\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">SAP B1 proje parametreleri y\u00FCkleniyor...</div>\n </div>\n\n <dx-data-grid *ngIf=\"!isLoading\" [dataSource]=\"data\" [showBorders]=\"true\" [showRowLines]=\"true\" [columnAutoWidth]=\"true\" keyExpr=\"prjCode\">\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n\n <dxi-column dataField=\"prjCode\" caption=\"Proje Kodu\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"prjName\" caption=\"Proje Ad\u0131\"></dxi-column>\n <dxi-column dataField=\"ebaId\" caption=\"EBA ID\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"increaseRate\" caption=\"Art\u0131r\u0131m Oran\u0131\" dataType=\"number\" [width]=\"130\"></dxi-column>\n <dxi-column dataField=\"cardCode\" caption=\"Muhatap Kodu\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"currency\" caption=\"Para Birimi\" [width]=\"110\"></dxi-column>\n <dxi-column type=\"buttons\" caption=\"\" [width]=\"60\">\n <dxi-button icon=\"edit\" hint=\"D\u00FCzenle\" [onClick]=\"onEditButtonClick\"></dxi-button>\n </dxi-column>\n </dx-data-grid>\n\n <div class=\"alert alert-warning mt-3\" *ngIf=\"hasUndefinedIncreaseRate()\">\n 0 / NULL art\u0131r\u0131m oran\u0131 ak\u0131\u015F\u0131 bloklamaz. Aktar\u0131m baca\u011F\u0131nda k\u0131rm\u0131z\u0131 uyar\u0131 g\u00F6sterilir ve art\u0131r\u0131m uygulanmadan devam i\u00E7in kullan\u0131c\u0131 onay\u0131 al\u0131n\u0131r.\n </div>\n\n <small class=\"text-muted d-block mt-2\">\n Proje Kodu/Ad\u0131/EBA ID SAP'ta olu\u015Fturulduktan sonra bu ekrandan de\u011Fi\u015Ftirilemez (SAP anahtar/bilgi alanlar\u0131d\u0131r); yaln\u0131zca\n Art\u0131r\u0131m Oran\u0131, Muhatap Kodu ve Para Birimi g\u00FCncellenebilir.\n <br />\n U_CardCode varsay\u0131lan proje muhatab\u0131d\u0131r; Intercompany hedef OPCH.CardCode \u00E7\u00F6z\u00FCm\u00FCnde esas kaynak Muhatap E\u015Fle\u015Ftirmeleridir.\n </small>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>{{ modalMode === 'create' ? 'Yeni Proje Ekle' : 'Proje Parametrelerini G\u00FCncelle' }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <div class=\"row g-3\">\n <div class=\"col-md-6\">\n <label class=\"form-label\">Proje Kodu</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"form.prjCode\"\n [disabled]=\"modalMode === 'update'\"\n [readOnly]=\"modalMode === 'update'\"\n />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">Proje Ad\u0131</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"form.prjName\"\n [disabled]=\"modalMode === 'update'\"\n [readOnly]=\"modalMode === 'update'\"\n />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">EBA ID</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"form.ebaId\"\n [disabled]=\"modalMode === 'update'\"\n [readOnly]=\"modalMode === 'update'\"\n />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">Art\u0131r\u0131m Oran\u0131 (U_Oran)</label>\n <input type=\"number\" step=\"0.01\" class=\"form-control\" [(ngModel)]=\"form.increaseRate\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">Muhatap Kodu (U_CardCode)</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.cardCode\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">Para Birimi (U_Currency)</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.currency\" />\n </div>\n </div>\n\n <div class=\"alert alert-info small mt-3\" *ngIf=\"modalMode === 'update'\">\n Proje Kodu/Ad\u0131/EBA ID SAP'ta de\u011Fi\u015Ftirilemeyen alanlard\u0131r; yaln\u0131zca Art\u0131r\u0131m Oran\u0131, Muhatap Kodu ve Para Birimi g\u00FCncellenir.\n Dokunmad\u0131\u011F\u0131n\u0131z alanlar mevcut SAP de\u011Feriyle oldu\u011Fu gibi g\u00F6nderilir.\n </div>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancelModal()\">Vazge\u00E7</button>\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"saveModal()\"\n [disabled]=\"isSaving || !form.prjCode || !form.prjName\"\n >\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n Kaydet\n </button>\n </ng-template>\n</abp-modal>\n" }]
711
+ args: [{ selector: 'hit-project-parameter', template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:ProjectParameters' | abpLocalization }}</h5>\n </div>\n <div class=\"card-body pt-3\">\n <div class=\"row g-3 align-items-end mb-3\">\n <div class=\"col-md-4\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::Company' | abpLocalization }}</label>\n <select class=\"form-select\" [(ngModel)]=\"selectedCompanyId\" (ngModelChange)=\"loadData()\">\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"col-auto\">\n <button\n class=\"btn btn-outline-primary\"\n (click)=\"loadData()\"\n [disabled]=\"isLoading || !selectedCompanyId\"\n [title]=\"'FBDocumentFlow::RefreshListTooltip' | abpLocalization\"\n >\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\n <h6 class=\"mb-0\">{{ 'FBDocumentFlow::ProjectParametersTitle' | abpLocalization }}</h6>\n <button class=\"btn btn-primary btn-sm\" (click)=\"openCreateModal()\" [disabled]=\"!selectedCompanyId\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'FBDocumentFlow::NewProject' | abpLocalization }}\n </button>\n </div>\n\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::LoadingProjectParameters' | abpLocalization }}</div>\n </div>\n\n <dx-data-grid *ngIf=\"!isLoading\" [dataSource]=\"data\" [showBorders]=\"true\" [showRowLines]=\"true\" [columnAutoWidth]=\"true\" keyExpr=\"prjCode\">\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n\n <dxi-column dataField=\"prjCode\" [caption]=\"'FBDocumentFlow::ProjectCode' | abpLocalization\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"prjName\" [caption]=\"'FBDocumentFlow::ProjectName' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"ebaId\" [caption]=\"'FBDocumentFlow::EbaId' | abpLocalization\" [width]=\"120\"></dxi-column>\n <dxi-column dataField=\"increaseRate\" [caption]=\"'FBDocumentFlow::IncreaseRate' | abpLocalization\" dataType=\"number\" [width]=\"130\"></dxi-column>\n <dxi-column dataField=\"cardCode\" [caption]=\"'FBDocumentFlow::PartnerCode' | abpLocalization\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"currency\" [caption]=\"'FBDocumentFlow::CurrencyUnit' | abpLocalization\" [width]=\"110\"></dxi-column>\n <dxi-column type=\"buttons\" caption=\"\" [width]=\"60\">\n <dxi-button icon=\"edit\" [hint]=\"'FBDocumentFlow::Edit' | abpLocalization\" [onClick]=\"onEditButtonClick\"></dxi-button>\n </dxi-column>\n </dx-data-grid>\n\n <div class=\"alert alert-warning mt-3\" *ngIf=\"hasUndefinedIncreaseRate()\">\n {{ 'FBDocumentFlow::UndefinedIncreaseRateWarning' | abpLocalization }}\n </div>\n\n <small class=\"text-muted d-block mt-2\">\n {{ 'FBDocumentFlow::ProjectStaticFieldsNote' | abpLocalization }}\n <br />\n {{ 'FBDocumentFlow::DefaultPartnerNote' | abpLocalization }}\n </small>\n </div>\n</div>\n\n<abp-modal [(visible)]=\"isModalOpen\">\n <ng-template #abpHeader>\n <h3>{{ (modalMode === 'create' ? 'FBDocumentFlow::NewProject' : 'FBDocumentFlow::UpdateProjectParameters') | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <div class=\"row g-3\">\n <div class=\"col-md-6\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::ProjectCode' | abpLocalization }}</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"form.prjCode\"\n [disabled]=\"modalMode === 'update'\"\n [readOnly]=\"modalMode === 'update'\"\n />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::ProjectName' | abpLocalization }}</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"form.prjName\"\n [disabled]=\"modalMode === 'update'\"\n [readOnly]=\"modalMode === 'update'\"\n />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::EbaId' | abpLocalization }}</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [(ngModel)]=\"form.ebaId\"\n [disabled]=\"modalMode === 'update'\"\n [readOnly]=\"modalMode === 'update'\"\n />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::IncreaseRateField' | abpLocalization }}</label>\n <input type=\"number\" step=\"0.01\" class=\"form-control\" [(ngModel)]=\"form.increaseRate\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::PartnerCodeField' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.cardCode\" />\n </div>\n <div class=\"col-md-6\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::CurrencyUnitField' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"form.currency\" />\n </div>\n </div>\n\n <div class=\"alert alert-info small mt-3\" *ngIf=\"modalMode === 'update'\">\n {{ 'FBDocumentFlow::UpdateModalNote' | abpLocalization }}\n </div>\n </ng-template>\n\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancelModal()\">{{ 'AbpUi::Cancel' | abpLocalization }}</button>\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"saveModal()\"\n [disabled]=\"isSaving || !form.prjCode || !form.prjName\"\n >\n <span *ngIf=\"isSaving\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'AbpUi::Save' | abpLocalization }}\n </button>\n </ng-template>\n</abp-modal>\n" }]
722
712
  }], ctorParameters: function () { return [{ type: SapProjectParameterService }, { type: SapCompanyProfileService }]; } });
723
713
 
724
714
  const routes$2 = [
@@ -841,11 +831,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
841
831
  }], ctorParameters: function () { return [{ type: i1$1.RestService }]; } });
842
832
 
843
833
  class HitDocumentTransferComponent {
844
- constructor(service, companyService, router, confirmation) {
834
+ constructor(service, companyService, router, confirmation, localization) {
845
835
  this.service = service;
846
836
  this.companyService = companyService;
847
837
  this.router = router;
848
838
  this.confirmation = confirmation;
839
+ this.localization = localization;
849
840
  this.companies = [];
850
841
  // Aktarıma uygun müşteri faturaları - Proje/NumAtCard/Belge No vb. daraltma tablonun kendi sütun
851
842
  // filtreleriyle yapılır.
@@ -860,24 +851,15 @@ class HitDocumentTransferComponent {
860
851
  // Kaynak HER ZAMAN bir Müşteri Faturasıdır (OINV) - etiket bunu netleştirir (kullanıcı geri
861
852
  // bildirimiyle netleştirildi). İşlem Geçmişi tablosundaki "Hedef Belge Durumu" sütununda da (kullanıcı
862
853
  // isteğiyle) AYNI etiketler kullanılır.
863
- this.sourceDocumentLifecycleOptions = [
864
- { value: SapDocumentLifecycle.Posted, label: 'Kayıtlı Müşteri Faturası' },
865
- { value: SapDocumentLifecycle.Draft, label: 'Taslak Müşteri Faturası' },
866
- ];
854
+ this.sourceDocumentLifecycleOptions = [];
867
855
  // İşlem Geçmişi - daha önce başlatılmış (işlem bekliyor/devam eden/tamamlanan/hatalı/iptal edilen) aktarımlar.
868
856
  // "Kapat"/"Listeye Dön" sonrası kullanıcının bir zincire tekrar dönüp bakabilmesi için.
869
857
  this.isTransfersLoading = false;
870
858
  this.transfers = [];
871
859
  this.isHistoryExpanded = true;
872
- // Durum sütununun header-filter/filter-row açılır listesinde okunabilir Türkçe etiketler gösterebilmesi
860
+ // Durum sütununun header-filter/filter-row açılır listesinde okunabilir etiketler gösterebilmesi
873
861
  // için (aksi halde DevExtreme ham sayısal enum değerlerini - 0/1/2/3/4 - listeler).
874
- this.transferStatusLookup = [
875
- { value: 0, text: 'İşlem Bekliyor' },
876
- { value: 1, text: 'Devam Ediyor' },
877
- { value: 2, text: 'Tamamlandı' },
878
- { value: 3, text: 'Hatalı' },
879
- { value: 4, text: 'İptal Edildi' },
880
- ];
862
+ this.transferStatusLookup = [];
881
863
  this.eligibleInvoicesRequestId = 0;
882
864
  this.transfersRequestId = 0;
883
865
  // Bu menü için üç farklı yaklaşım denendi ve hepsi DevExtreme grid hücresi içinde başarısız oldu:
@@ -892,6 +874,17 @@ class HitDocumentTransferComponent {
892
874
  // kanıtlanmış tekli "İşlemler" butonuyla (actionsTemplate) birebir aynı, basit (click) mekanizması.
893
875
  this.openActionsRow = null;
894
876
  this.actionsMenuPosition = { top: 0, left: 0 };
877
+ this.sourceDocumentLifecycleOptions = [
878
+ { value: SapDocumentLifecycle.Posted, label: this.localization.instant('FBDocumentFlow::DocumentLifecycle:Posted') },
879
+ { value: SapDocumentLifecycle.Draft, label: this.localization.instant('FBDocumentFlow::DocumentLifecycle:Draft') },
880
+ ];
881
+ this.transferStatusLookup = [
882
+ { value: 0, text: this.localization.instant('FBDocumentFlow::TransferStatus:Pending') },
883
+ { value: 1, text: this.localization.instant('FBDocumentFlow::TransferStatus:InProgress') },
884
+ { value: 2, text: this.localization.instant('FBDocumentFlow::TransferStatus:Completed') },
885
+ { value: 3, text: this.localization.instant('FBDocumentFlow::TransferStatus:Failed') },
886
+ { value: 4, text: this.localization.instant('FBDocumentFlow::TransferStatus:Cancelled') },
887
+ ];
895
888
  }
896
889
  ngOnInit() {
897
890
  this.companyService.getList({ maxResultCount: 1000, skipCount: 0, isActive: true }).subscribe(result => {
@@ -950,11 +943,21 @@ class HitDocumentTransferComponent {
950
943
  this.transfers = result.items;
951
944
  });
952
945
  }
953
- invoiceStatusLabel(row) {
946
+ invoiceStatusVariant(row) {
954
947
  if (row.targetHasDuplicateNumAtCard) {
955
- return 'Hedefte mevcut';
948
+ return 'duplicate';
949
+ }
950
+ return row.isResolved ? 'resolved' : 'unresolved';
951
+ }
952
+ invoiceStatusLabel(row) {
953
+ switch (this.invoiceStatusVariant(row)) {
954
+ case 'duplicate':
955
+ return this.localization.instant('FBDocumentFlow::InvoiceStatus:AlreadyAtTarget');
956
+ case 'resolved':
957
+ return this.localization.instant('FBDocumentFlow::InvoiceStatus:Transferable');
958
+ default:
959
+ return this.localization.instant('FBDocumentFlow::InvoiceStatus:NoMapping');
956
960
  }
957
- return row.isResolved ? 'Aktarılabilir' : 'Eşleştirme yok';
958
961
  }
959
962
  transferStatusLabel(status) {
960
963
  var _a, _b;
@@ -967,9 +970,10 @@ class HitDocumentTransferComponent {
967
970
  if (existing) {
968
971
  const creationDate = existing.creationTime ? new Date(existing.creationTime).toLocaleString('tr-TR') : '';
969
972
  this.confirmation
970
- .warn(`Bu belge (${row.docNum}) için zaten bir taslak aktarım var (oluşturulma: ${creationDate}).`, 'FBDocumentFlow::AreYouSure', {
971
- yesText: 'Evet, Aç',
972
- cancelText: 'Hayır, Yeni Oluştur',
973
+ .warn('FBDocumentFlow::ExistingDraftTransferFound', 'FBDocumentFlow::AreYouSure', {
974
+ messageLocalizationParams: [String(row.docNum), creationDate],
975
+ yesText: 'FBDocumentFlow::YesOpenIt',
976
+ cancelText: 'FBDocumentFlow::NoCreateNew',
973
977
  })
974
978
  .subscribe(status => {
975
979
  if (status === Confirmation.Status.confirm) {
@@ -1061,12 +1065,12 @@ class HitDocumentTransferComponent {
1061
1065
  this.isHistoryExpanded = !this.isHistoryExpanded;
1062
1066
  }
1063
1067
  }
1064
- HitDocumentTransferComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDocumentTransferComponent, deps: [{ token: DocumentTransferService }, { token: SapCompanyProfileService }, { token: i1.Router }, { token: i3.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
1065
- HitDocumentTransferComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitDocumentTransferComponent, selector: "hit-document-transfer", host: { listeners: { "document:click": "closeActionsMenu()" } }, ngImport: i0, template: "<div class=\"card mb-3\">\n <div class=\"card-header py-3\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:DocumentTransfers' | abpLocalization }}</h5>\n </div>\n <div class=\"card-body pt-3\">\n <div class=\"row g-3 align-items-end mb-3\">\n <div class=\"col-md-4\">\n <label class=\"form-label\">Kaynak \u015Eirket</label>\n <select class=\"form-select\" [(ngModel)]=\"filterSourceCompanyId\" (ngModelChange)=\"search()\">\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"col-md-3\">\n <label class=\"form-label\">Kaynak Belge Durumu</label>\n <select class=\"form-select\" [(ngModel)]=\"sourceDocumentLifecycle\" (ngModelChange)=\"search()\">\n <option *ngFor=\"let o of sourceDocumentLifecycleOptions\" [ngValue]=\"o.value\">{{ o.label }}</option>\n </select>\n </div>\n <div class=\"col-auto\">\n <button class=\"btn btn-outline-primary\" (click)=\"search()\" [disabled]=\"isListLoading || isTransfersLoading\" title=\"Listeyi yenile\">\n <i class=\"fa fa-refresh me-1\"></i>Yenile\n </button>\n </div>\n </div>\n\n <h6 class=\"mb-2\">Aktar\u0131ma Uygun M\u00FC\u015Fteri Faturalar\u0131</h6>\n <small class=\"text-muted d-block mb-2\">Belge No, NumAtCard, Proje vb. ile daraltmak i\u00E7in tablo ba\u015Fl\u0131klar\u0131ndaki arama kutular\u0131n\u0131 kullan\u0131n.</small>\n\n <div *ngIf=\"isListLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">Faturalar SAP'tan y\u00FCkleniyor...</div>\n </div>\n\n <dx-data-grid\n *ngIf=\"!isListLoading\"\n [dataSource]=\"eligibleInvoices\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [columnAutoWidth]=\"true\"\n [height]=\"'45vh'\"\n [keyboardNavigation]=\"{ enabled: false }\"\n >\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n\n <dxi-column caption=\"\u0130\u015Flemler\" cellTemplate=\"actionsTemplate\" [width]=\"100\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n <dxi-column dataField=\"docNum\" caption=\"Belge No\" dataType=\"number\" sortOrder=\"desc\" [width]=\"100\"></dxi-column>\n <dxi-column dataField=\"numAtCard\" caption=\"NumAtCard\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"projectCode\" caption=\"Proje\" [width]=\"90\"></dxi-column>\n <dxi-column dataField=\"cardCode\" caption=\"OINV.CardCode\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"targetCompanyName\" caption=\"Hedef \u015Eirket\"></dxi-column>\n <dxi-column dataField=\"currency\" caption=\"D\u00F6viz\" [width]=\"80\"></dxi-column>\n <dxi-column dataField=\"statusLabel\" caption=\"Durum\" cellTemplate=\"statusTemplate\" [width]=\"130\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"openTransferPage(cell.data); $event.target.blur()\"\n [disabled]=\"!cell.data.isResolved || cell.data.targetHasDuplicateNumAtCard\"\n >\n \u0130\u015Flemler\n </button>\n </div>\n\n <div *dxTemplate=\"let cell of 'statusTemplate'\" class=\"d-flex flex-column align-items-start py-2\">\n <span\n class=\"badge\"\n [class.bg-success]=\"invoiceStatusLabel(cell.data) === 'Aktar\u0131labilir'\"\n [class.bg-secondary]=\"invoiceStatusLabel(cell.data) === 'Hedefte mevcut'\"\n [class.bg-warning]=\"invoiceStatusLabel(cell.data) === 'E\u015Fle\u015Ftirme yok'\"\n >\n {{ invoiceStatusLabel(cell.data) }}\n </span>\n <button\n *ngIf=\"!cell.data.isResolved\"\n type=\"button\"\n class=\"btn btn-outline-warning btn-sm mt-2 py-0 px-2\"\n style=\"font-size: 0.72rem\"\n (click)=\"goToPartnerMapping(cell.data.cardCode, cell.data.cardName)\"\n title=\"Muhatap E\u015Fle\u015Ftirmeleri ekran\u0131na git\"\n >\n <i class=\"fa fa-link me-1\"></i>E\u015Fle\u015Ftir\n </button>\n </div>\n </dx-data-grid>\n\n <small class=\"text-muted d-block mt-2\">\n \"Hedefte mevcut\" bilgisi, kaynak OINV.NumAtCard de\u011Ferinin hedef \u015Firkette OPCH.NumAtCard alan\u0131nda bulunmas\u0131 halinde g\u00F6sterilir.\n </small>\n </div>\n</div>\n\n<div class=\"card\">\n <div class=\"card-header py-3\" role=\"button\" (click)=\"toggleHistory()\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <h5 class=\"card-title mb-0\">\u0130\u015Flem Ge\u00E7mi\u015Fi</h5>\n <i class=\"fa\" [class.fa-chevron-up]=\"isHistoryExpanded\" [class.fa-chevron-down]=\"!isHistoryExpanded\"></i>\n </div>\n </div>\n <div class=\"card-body pt-3\" [hidden]=\"!isHistoryExpanded\">\n <small class=\"text-muted d-block mb-2\">Se\u00E7ili kaynak \u015Firket i\u00E7in daha \u00F6nce ba\u015Flat\u0131lm\u0131\u015F aktar\u0131mlar (i\u015Flem bekliyor, devam eden, tamamlanan, hatal\u0131, iptal edilen).</small>\n\n <div *ngIf=\"isTransfersLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">Y\u00FCkleniyor...</div>\n </div>\n\n <dx-data-grid\n *ngIf=\"!isTransfersLoading\"\n [dataSource]=\"transfers\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [columnAutoWidth]=\"true\"\n [height]=\"'40vh'\"\n [keyboardNavigation]=\"{ enabled: false }\"\n >\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n\n <dxi-column caption=\"\u0130\u015Flemler\" cellTemplate=\"viewTemplate\" [width]=\"120\" [allowFiltering]=\"false\" [allowSorting]=\"false\" alignment=\"center\"></dxi-column>\n <dxi-column dataField=\"sourceOinvDocNum\" caption=\"Kaynak Belge\" [width]=\"110\"></dxi-column>\n <dxi-column dataField=\"projectCode\" caption=\"Proje\" [width]=\"90\"></dxi-column>\n <dxi-column dataField=\"intercompanyId\" caption=\"Intercompany Id\"></dxi-column>\n <!-- Kullan\u0131c\u0131 geri bildirimiyle tespit edildi: \u0130\u015Flem Ge\u00E7mi\u015Fi'nde bir kayd\u0131n normal (Kay\u0131tl\u0131) mi\n yoksa Taslak m\u0131 oldu\u011Fu hi\u00E7 g\u00F6r\u00FCnm\u00FCyordu - Aktar\u0131m Durumu (Durum s\u00FCtunu) ile kar\u0131\u015Ft\u0131r\u0131lmas\u0131n diye\n Kaynak/Hedef Belge Durumu ayr\u0131 s\u00FCtunlar olarak eklendi (bkz. spec \u00A714). -->\n <dxi-column dataField=\"sourceDocumentLifecycle\" caption=\"Kaynak Belge Durumu\" [width]=\"140\">\n <dxo-lookup [dataSource]=\"sourceDocumentLifecycleOptions\" valueExpr=\"value\" displayExpr=\"label\"></dxo-lookup>\n </dxi-column>\n <dxi-column dataField=\"targetDocumentLifecycle\" caption=\"Hedef Belge Durumu\" [width]=\"140\">\n <dxo-lookup [dataSource]=\"sourceDocumentLifecycleOptions\" valueExpr=\"value\" displayExpr=\"label\"></dxo-lookup>\n </dxi-column>\n <dxi-column dataField=\"status\" caption=\"Durum\" cellTemplate=\"transferStatusTemplate\" [width]=\"130\">\n <dxo-lookup [dataSource]=\"transferStatusLookup\" valueExpr=\"value\" displayExpr=\"text\"></dxo-lookup>\n </dxi-column>\n <dxi-column\n dataField=\"creationTime\"\n caption=\"Olu\u015Fturma Tarihi\"\n dataType=\"datetime\"\n format=\"dd.MM.yyyy HH:mm\"\n [width]=\"150\"\n sortOrder=\"desc\"\n ></dxi-column>\n\n <div *dxTemplate=\"let cell of 'viewTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary\" type=\"button\" (click)=\"toggleActions(cell.data, $event)\">\n \u0130\u015Flemler <i class=\"fa fa-caret-down ms-1\"></i>\n </button>\n </div>\n\n <div *dxTemplate=\"let cell of 'transferStatusTemplate'\">\n <span\n class=\"badge\"\n [class.bg-secondary]=\"cell.value === 0\"\n [class.bg-primary]=\"cell.value === 1\"\n [class.bg-success]=\"cell.value === 2\"\n [class.bg-danger]=\"cell.value === 3\"\n [class.bg-warning]=\"cell.value === 4\"\n >\n {{ transferStatusLabel(cell.value) }}\n </span>\n </div>\n </dx-data-grid>\n </div>\n</div>\n\n<!-- Grid'in DI\u015EINDA: dx-data-grid h\u00FCcrelerinin overflow:hidden k\u0131rpmas\u0131 ve *dxTemplate i\u00E7i olay ba\u011Flama\n sorunlar\u0131 ya\u015Fanmas\u0131n diye \"\u0130\u015Flemler\" men\u00FCs\u00FC buraya, component \u015Fablonunun en \u00FCst seviyesine ta\u015F\u0131nd\u0131. -->\n<ul\n *ngIf=\"openActionsRow as row\"\n class=\"list-unstyled m-0 bg-white border rounded shadow-sm\"\n [style.position]=\"'absolute'\"\n [style.top.px]=\"actionsMenuPosition.top\"\n [style.left.px]=\"actionsMenuPosition.left\"\n style=\"z-index: 1050; min-width: 140px; padding: 4px 0\"\n (click)=\"$event.stopPropagation()\"\n>\n <li>\n <button type=\"button\" class=\"d-block w-100 text-start border-0 bg-white px-3 py-1\" (click)=\"selectAction('view', row)\">\n <i class=\"fa fa-eye me-2\"></i>G\u00F6r\u00FCnt\u00FCle\n </button>\n </li>\n <li *ngIf=\"canDeleteTransfer(row)\">\n <button type=\"button\" class=\"d-block w-100 text-start border-0 bg-white px-3 py-1 text-danger\" (click)=\"selectAction('delete', row)\">\n <i class=\"fa fa-trash me-2\"></i>Sil\n </button>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "customizeExportData", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "focusStateEnabled", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExported", "onExporting", "onFileSaving", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "customizeExportDataChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "focusStateEnabledChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i7.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i7.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i7.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i7.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i7.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i7.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "directive", type: i8.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "pipe", type: i1$1.LocalizationPipe, name: "abpLocalization" }] });
1068
+ HitDocumentTransferComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDocumentTransferComponent, deps: [{ token: DocumentTransferService }, { token: SapCompanyProfileService }, { token: i1.Router }, { token: i3$1.ConfirmationService }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
1069
+ HitDocumentTransferComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitDocumentTransferComponent, selector: "hit-document-transfer", host: { listeners: { "document:click": "closeActionsMenu()" } }, ngImport: i0, template: "<div class=\"card mb-3\">\n <div class=\"card-header py-3\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:DocumentTransfers' | abpLocalization }}</h5>\n </div>\n <div class=\"card-body pt-3\">\n <div class=\"row g-3 align-items-end mb-3\">\n <div class=\"col-md-4\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::SourceCompany' | abpLocalization }}</label>\n <select class=\"form-select\" [(ngModel)]=\"filterSourceCompanyId\" (ngModelChange)=\"search()\">\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"col-md-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::SourceDocumentLifecycle' | abpLocalization }}</label>\n <select class=\"form-select\" [(ngModel)]=\"sourceDocumentLifecycle\" (ngModelChange)=\"search()\">\n <option *ngFor=\"let o of sourceDocumentLifecycleOptions\" [ngValue]=\"o.value\">{{ o.label }}</option>\n </select>\n </div>\n <div class=\"col-auto\">\n <button\n class=\"btn btn-outline-primary\"\n (click)=\"search()\"\n [disabled]=\"isListLoading || isTransfersLoading\"\n [title]=\"'FBDocumentFlow::RefreshListTooltip' | abpLocalization\"\n >\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n\n <h6 class=\"mb-2\">{{ 'FBDocumentFlow::EligibleInvoicesTitle' | abpLocalization }}</h6>\n <small class=\"text-muted d-block mb-2\">{{ 'FBDocumentFlow::GridFilterHint' | abpLocalization }}</small>\n\n <div *ngIf=\"isListLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::LoadingInvoices' | abpLocalization }}</div>\n </div>\n\n <dx-data-grid\n *ngIf=\"!isListLoading\"\n [dataSource]=\"eligibleInvoices\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [columnAutoWidth]=\"true\"\n [height]=\"'45vh'\"\n [keyboardNavigation]=\"{ enabled: false }\"\n >\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n\n <dxi-column [caption]=\"'FBDocumentFlow::Actions' | abpLocalization\" cellTemplate=\"actionsTemplate\" [width]=\"100\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n <dxi-column dataField=\"docNum\" [caption]=\"'FBDocumentFlow::DocNum' | abpLocalization\" dataType=\"number\" sortOrder=\"desc\" [width]=\"100\"></dxi-column>\n <dxi-column dataField=\"numAtCard\" [caption]=\"'FBDocumentFlow::NumAtCard' | abpLocalization\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"projectCode\" [caption]=\"'FBDocumentFlow::Project' | abpLocalization\" [width]=\"90\"></dxi-column>\n <dxi-column dataField=\"cardCode\" [caption]=\"'FBDocumentFlow::OinvCardCode' | abpLocalization\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"targetCompanyName\" [caption]=\"'FBDocumentFlow::TargetCompany' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"currency\" [caption]=\"'FBDocumentFlow::Currency' | abpLocalization\" [width]=\"80\"></dxi-column>\n <dxi-column dataField=\"statusLabel\" [caption]=\"'FBDocumentFlow::Status' | abpLocalization\" cellTemplate=\"statusTemplate\" [width]=\"130\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"openTransferPage(cell.data); $event.target.blur()\"\n [disabled]=\"!cell.data.isResolved || cell.data.targetHasDuplicateNumAtCard\"\n >\n {{ 'FBDocumentFlow::Actions' | abpLocalization }}\n </button>\n </div>\n\n <div *dxTemplate=\"let cell of 'statusTemplate'\" class=\"d-flex flex-column align-items-start py-2\">\n <span\n class=\"badge\"\n [class.bg-success]=\"invoiceStatusVariant(cell.data) === 'resolved'\"\n [class.bg-secondary]=\"invoiceStatusVariant(cell.data) === 'duplicate'\"\n [class.bg-warning]=\"invoiceStatusVariant(cell.data) === 'unresolved'\"\n >\n {{ invoiceStatusLabel(cell.data) }}\n </span>\n <button\n *ngIf=\"!cell.data.isResolved\"\n type=\"button\"\n class=\"btn btn-outline-warning btn-sm mt-2 py-0 px-2\"\n style=\"font-size: 0.72rem\"\n (click)=\"goToPartnerMapping(cell.data.cardCode, cell.data.cardName)\"\n [title]=\"'FBDocumentFlow::GoToPartnerMappingTooltip' | abpLocalization\"\n >\n <i class=\"fa fa-link me-1\"></i>{{ 'FBDocumentFlow::Match' | abpLocalization }}\n </button>\n </div>\n </dx-data-grid>\n\n <small class=\"text-muted d-block mt-2\">\n {{ 'FBDocumentFlow::AlreadyExistsHint' | abpLocalization }}\n </small>\n </div>\n</div>\n\n<div class=\"card\">\n <div class=\"card-header py-3\" role=\"button\" (click)=\"toggleHistory()\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::TransactionHistory' | abpLocalization }}</h5>\n <i class=\"fa\" [class.fa-chevron-up]=\"isHistoryExpanded\" [class.fa-chevron-down]=\"!isHistoryExpanded\"></i>\n </div>\n </div>\n <div class=\"card-body pt-3\" [hidden]=\"!isHistoryExpanded\">\n <small class=\"text-muted d-block mb-2\">{{ 'FBDocumentFlow::TransferHistoryHint' | abpLocalization }}</small>\n\n <div *ngIf=\"isTransfersLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::Loading' | abpLocalization }}</div>\n </div>\n\n <dx-data-grid\n *ngIf=\"!isTransfersLoading\"\n [dataSource]=\"transfers\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [columnAutoWidth]=\"true\"\n [height]=\"'40vh'\"\n [keyboardNavigation]=\"{ enabled: false }\"\n >\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n\n <dxi-column [caption]=\"'FBDocumentFlow::Actions' | abpLocalization\" cellTemplate=\"viewTemplate\" [width]=\"120\" [allowFiltering]=\"false\" [allowSorting]=\"false\" alignment=\"center\"></dxi-column>\n <dxi-column dataField=\"sourceOinvDocNum\" [caption]=\"'FBDocumentFlow::SourceDocument' | abpLocalization\" [width]=\"110\"></dxi-column>\n <dxi-column dataField=\"projectCode\" [caption]=\"'FBDocumentFlow::Project' | abpLocalization\" [width]=\"90\"></dxi-column>\n <dxi-column dataField=\"intercompanyId\" [caption]=\"'FBDocumentFlow::IntercompanyId' | abpLocalization\"></dxi-column>\n <!-- Kullan\u0131c\u0131 geri bildirimiyle tespit edildi: \u0130\u015Flem Ge\u00E7mi\u015Fi'nde bir kayd\u0131n normal (Kay\u0131tl\u0131) mi\n yoksa Taslak m\u0131 oldu\u011Fu hi\u00E7 g\u00F6r\u00FCnm\u00FCyordu - Aktar\u0131m Durumu (Durum s\u00FCtunu) ile kar\u0131\u015Ft\u0131r\u0131lmas\u0131n diye\n Kaynak/Hedef Belge Durumu ayr\u0131 s\u00FCtunlar olarak eklendi (bkz. spec \u00A714). -->\n <dxi-column dataField=\"sourceDocumentLifecycle\" [caption]=\"'FBDocumentFlow::SourceDocumentLifecycle' | abpLocalization\" [width]=\"140\">\n <dxo-lookup [dataSource]=\"sourceDocumentLifecycleOptions\" valueExpr=\"value\" displayExpr=\"label\"></dxo-lookup>\n </dxi-column>\n <dxi-column dataField=\"targetDocumentLifecycle\" [caption]=\"'FBDocumentFlow::TargetDocumentLifecycle' | abpLocalization\" [width]=\"140\">\n <dxo-lookup [dataSource]=\"sourceDocumentLifecycleOptions\" valueExpr=\"value\" displayExpr=\"label\"></dxo-lookup>\n </dxi-column>\n <dxi-column dataField=\"status\" [caption]=\"'FBDocumentFlow::Status' | abpLocalization\" cellTemplate=\"transferStatusTemplate\" [width]=\"130\">\n <dxo-lookup [dataSource]=\"transferStatusLookup\" valueExpr=\"value\" displayExpr=\"text\"></dxo-lookup>\n </dxi-column>\n <dxi-column\n dataField=\"creationTime\"\n [caption]=\"'FBDocumentFlow::CreationTime' | abpLocalization\"\n dataType=\"datetime\"\n format=\"dd.MM.yyyy HH:mm\"\n [width]=\"150\"\n sortOrder=\"desc\"\n ></dxi-column>\n\n <div *dxTemplate=\"let cell of 'viewTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary\" type=\"button\" (click)=\"toggleActions(cell.data, $event)\">\n {{ 'FBDocumentFlow::Actions' | abpLocalization }} <i class=\"fa fa-caret-down ms-1\"></i>\n </button>\n </div>\n\n <div *dxTemplate=\"let cell of 'transferStatusTemplate'\">\n <span\n class=\"badge\"\n [class.bg-secondary]=\"cell.value === 0\"\n [class.bg-primary]=\"cell.value === 1\"\n [class.bg-success]=\"cell.value === 2\"\n [class.bg-danger]=\"cell.value === 3\"\n [class.bg-warning]=\"cell.value === 4\"\n >\n {{ transferStatusLabel(cell.value) }}\n </span>\n </div>\n </dx-data-grid>\n </div>\n</div>\n\n<!-- Grid'in DI\u015EINDA: dx-data-grid h\u00FCcrelerinin overflow:hidden k\u0131rpmas\u0131 ve *dxTemplate i\u00E7i olay ba\u011Flama\n sorunlar\u0131 ya\u015Fanmas\u0131n diye \"\u0130\u015Flemler\" men\u00FCs\u00FC buraya, component \u015Fablonunun en \u00FCst seviyesine ta\u015F\u0131nd\u0131. -->\n<ul\n *ngIf=\"openActionsRow as row\"\n class=\"list-unstyled m-0 bg-white border rounded shadow-sm\"\n [style.position]=\"'absolute'\"\n [style.top.px]=\"actionsMenuPosition.top\"\n [style.left.px]=\"actionsMenuPosition.left\"\n style=\"z-index: 1050; min-width: 140px; padding: 4px 0\"\n (click)=\"$event.stopPropagation()\"\n>\n <li>\n <button type=\"button\" class=\"d-block w-100 text-start border-0 bg-white px-3 py-1\" (click)=\"selectAction('view', row)\">\n <i class=\"fa fa-eye me-2\"></i>{{ 'FBDocumentFlow::View' | abpLocalization }}\n </button>\n </li>\n <li *ngIf=\"canDeleteTransfer(row)\">\n <button type=\"button\" class=\"d-block w-100 text-start border-0 bg-white px-3 py-1 text-danger\" (click)=\"selectAction('delete', row)\">\n <i class=\"fa fa-trash me-2\"></i>{{ 'FBDocumentFlow::Delete' | abpLocalization }}\n </button>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "customizeExportData", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "focusStateEnabled", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExported", "onExporting", "onFileSaving", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "customizeExportDataChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "focusStateEnabledChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i7.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i7.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i7.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i7.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i7.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i7.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "directive", type: i7$1.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "pipe", type: i1$1.LocalizationPipe, name: "abpLocalization" }] });
1066
1070
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDocumentTransferComponent, decorators: [{
1067
1071
  type: Component,
1068
- args: [{ selector: 'hit-document-transfer', template: "<div class=\"card mb-3\">\n <div class=\"card-header py-3\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:DocumentTransfers' | abpLocalization }}</h5>\n </div>\n <div class=\"card-body pt-3\">\n <div class=\"row g-3 align-items-end mb-3\">\n <div class=\"col-md-4\">\n <label class=\"form-label\">Kaynak \u015Eirket</label>\n <select class=\"form-select\" [(ngModel)]=\"filterSourceCompanyId\" (ngModelChange)=\"search()\">\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"col-md-3\">\n <label class=\"form-label\">Kaynak Belge Durumu</label>\n <select class=\"form-select\" [(ngModel)]=\"sourceDocumentLifecycle\" (ngModelChange)=\"search()\">\n <option *ngFor=\"let o of sourceDocumentLifecycleOptions\" [ngValue]=\"o.value\">{{ o.label }}</option>\n </select>\n </div>\n <div class=\"col-auto\">\n <button class=\"btn btn-outline-primary\" (click)=\"search()\" [disabled]=\"isListLoading || isTransfersLoading\" title=\"Listeyi yenile\">\n <i class=\"fa fa-refresh me-1\"></i>Yenile\n </button>\n </div>\n </div>\n\n <h6 class=\"mb-2\">Aktar\u0131ma Uygun M\u00FC\u015Fteri Faturalar\u0131</h6>\n <small class=\"text-muted d-block mb-2\">Belge No, NumAtCard, Proje vb. ile daraltmak i\u00E7in tablo ba\u015Fl\u0131klar\u0131ndaki arama kutular\u0131n\u0131 kullan\u0131n.</small>\n\n <div *ngIf=\"isListLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">Faturalar SAP'tan y\u00FCkleniyor...</div>\n </div>\n\n <dx-data-grid\n *ngIf=\"!isListLoading\"\n [dataSource]=\"eligibleInvoices\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [columnAutoWidth]=\"true\"\n [height]=\"'45vh'\"\n [keyboardNavigation]=\"{ enabled: false }\"\n >\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n\n <dxi-column caption=\"\u0130\u015Flemler\" cellTemplate=\"actionsTemplate\" [width]=\"100\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n <dxi-column dataField=\"docNum\" caption=\"Belge No\" dataType=\"number\" sortOrder=\"desc\" [width]=\"100\"></dxi-column>\n <dxi-column dataField=\"numAtCard\" caption=\"NumAtCard\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"projectCode\" caption=\"Proje\" [width]=\"90\"></dxi-column>\n <dxi-column dataField=\"cardCode\" caption=\"OINV.CardCode\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"targetCompanyName\" caption=\"Hedef \u015Eirket\"></dxi-column>\n <dxi-column dataField=\"currency\" caption=\"D\u00F6viz\" [width]=\"80\"></dxi-column>\n <dxi-column dataField=\"statusLabel\" caption=\"Durum\" cellTemplate=\"statusTemplate\" [width]=\"130\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"openTransferPage(cell.data); $event.target.blur()\"\n [disabled]=\"!cell.data.isResolved || cell.data.targetHasDuplicateNumAtCard\"\n >\n \u0130\u015Flemler\n </button>\n </div>\n\n <div *dxTemplate=\"let cell of 'statusTemplate'\" class=\"d-flex flex-column align-items-start py-2\">\n <span\n class=\"badge\"\n [class.bg-success]=\"invoiceStatusLabel(cell.data) === 'Aktar\u0131labilir'\"\n [class.bg-secondary]=\"invoiceStatusLabel(cell.data) === 'Hedefte mevcut'\"\n [class.bg-warning]=\"invoiceStatusLabel(cell.data) === 'E\u015Fle\u015Ftirme yok'\"\n >\n {{ invoiceStatusLabel(cell.data) }}\n </span>\n <button\n *ngIf=\"!cell.data.isResolved\"\n type=\"button\"\n class=\"btn btn-outline-warning btn-sm mt-2 py-0 px-2\"\n style=\"font-size: 0.72rem\"\n (click)=\"goToPartnerMapping(cell.data.cardCode, cell.data.cardName)\"\n title=\"Muhatap E\u015Fle\u015Ftirmeleri ekran\u0131na git\"\n >\n <i class=\"fa fa-link me-1\"></i>E\u015Fle\u015Ftir\n </button>\n </div>\n </dx-data-grid>\n\n <small class=\"text-muted d-block mt-2\">\n \"Hedefte mevcut\" bilgisi, kaynak OINV.NumAtCard de\u011Ferinin hedef \u015Firkette OPCH.NumAtCard alan\u0131nda bulunmas\u0131 halinde g\u00F6sterilir.\n </small>\n </div>\n</div>\n\n<div class=\"card\">\n <div class=\"card-header py-3\" role=\"button\" (click)=\"toggleHistory()\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <h5 class=\"card-title mb-0\">\u0130\u015Flem Ge\u00E7mi\u015Fi</h5>\n <i class=\"fa\" [class.fa-chevron-up]=\"isHistoryExpanded\" [class.fa-chevron-down]=\"!isHistoryExpanded\"></i>\n </div>\n </div>\n <div class=\"card-body pt-3\" [hidden]=\"!isHistoryExpanded\">\n <small class=\"text-muted d-block mb-2\">Se\u00E7ili kaynak \u015Firket i\u00E7in daha \u00F6nce ba\u015Flat\u0131lm\u0131\u015F aktar\u0131mlar (i\u015Flem bekliyor, devam eden, tamamlanan, hatal\u0131, iptal edilen).</small>\n\n <div *ngIf=\"isTransfersLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">Y\u00FCkleniyor...</div>\n </div>\n\n <dx-data-grid\n *ngIf=\"!isTransfersLoading\"\n [dataSource]=\"transfers\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [columnAutoWidth]=\"true\"\n [height]=\"'40vh'\"\n [keyboardNavigation]=\"{ enabled: false }\"\n >\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n\n <dxi-column caption=\"\u0130\u015Flemler\" cellTemplate=\"viewTemplate\" [width]=\"120\" [allowFiltering]=\"false\" [allowSorting]=\"false\" alignment=\"center\"></dxi-column>\n <dxi-column dataField=\"sourceOinvDocNum\" caption=\"Kaynak Belge\" [width]=\"110\"></dxi-column>\n <dxi-column dataField=\"projectCode\" caption=\"Proje\" [width]=\"90\"></dxi-column>\n <dxi-column dataField=\"intercompanyId\" caption=\"Intercompany Id\"></dxi-column>\n <!-- Kullan\u0131c\u0131 geri bildirimiyle tespit edildi: \u0130\u015Flem Ge\u00E7mi\u015Fi'nde bir kayd\u0131n normal (Kay\u0131tl\u0131) mi\n yoksa Taslak m\u0131 oldu\u011Fu hi\u00E7 g\u00F6r\u00FCnm\u00FCyordu - Aktar\u0131m Durumu (Durum s\u00FCtunu) ile kar\u0131\u015Ft\u0131r\u0131lmas\u0131n diye\n Kaynak/Hedef Belge Durumu ayr\u0131 s\u00FCtunlar olarak eklendi (bkz. spec \u00A714). -->\n <dxi-column dataField=\"sourceDocumentLifecycle\" caption=\"Kaynak Belge Durumu\" [width]=\"140\">\n <dxo-lookup [dataSource]=\"sourceDocumentLifecycleOptions\" valueExpr=\"value\" displayExpr=\"label\"></dxo-lookup>\n </dxi-column>\n <dxi-column dataField=\"targetDocumentLifecycle\" caption=\"Hedef Belge Durumu\" [width]=\"140\">\n <dxo-lookup [dataSource]=\"sourceDocumentLifecycleOptions\" valueExpr=\"value\" displayExpr=\"label\"></dxo-lookup>\n </dxi-column>\n <dxi-column dataField=\"status\" caption=\"Durum\" cellTemplate=\"transferStatusTemplate\" [width]=\"130\">\n <dxo-lookup [dataSource]=\"transferStatusLookup\" valueExpr=\"value\" displayExpr=\"text\"></dxo-lookup>\n </dxi-column>\n <dxi-column\n dataField=\"creationTime\"\n caption=\"Olu\u015Fturma Tarihi\"\n dataType=\"datetime\"\n format=\"dd.MM.yyyy HH:mm\"\n [width]=\"150\"\n sortOrder=\"desc\"\n ></dxi-column>\n\n <div *dxTemplate=\"let cell of 'viewTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary\" type=\"button\" (click)=\"toggleActions(cell.data, $event)\">\n \u0130\u015Flemler <i class=\"fa fa-caret-down ms-1\"></i>\n </button>\n </div>\n\n <div *dxTemplate=\"let cell of 'transferStatusTemplate'\">\n <span\n class=\"badge\"\n [class.bg-secondary]=\"cell.value === 0\"\n [class.bg-primary]=\"cell.value === 1\"\n [class.bg-success]=\"cell.value === 2\"\n [class.bg-danger]=\"cell.value === 3\"\n [class.bg-warning]=\"cell.value === 4\"\n >\n {{ transferStatusLabel(cell.value) }}\n </span>\n </div>\n </dx-data-grid>\n </div>\n</div>\n\n<!-- Grid'in DI\u015EINDA: dx-data-grid h\u00FCcrelerinin overflow:hidden k\u0131rpmas\u0131 ve *dxTemplate i\u00E7i olay ba\u011Flama\n sorunlar\u0131 ya\u015Fanmas\u0131n diye \"\u0130\u015Flemler\" men\u00FCs\u00FC buraya, component \u015Fablonunun en \u00FCst seviyesine ta\u015F\u0131nd\u0131. -->\n<ul\n *ngIf=\"openActionsRow as row\"\n class=\"list-unstyled m-0 bg-white border rounded shadow-sm\"\n [style.position]=\"'absolute'\"\n [style.top.px]=\"actionsMenuPosition.top\"\n [style.left.px]=\"actionsMenuPosition.left\"\n style=\"z-index: 1050; min-width: 140px; padding: 4px 0\"\n (click)=\"$event.stopPropagation()\"\n>\n <li>\n <button type=\"button\" class=\"d-block w-100 text-start border-0 bg-white px-3 py-1\" (click)=\"selectAction('view', row)\">\n <i class=\"fa fa-eye me-2\"></i>G\u00F6r\u00FCnt\u00FCle\n </button>\n </li>\n <li *ngIf=\"canDeleteTransfer(row)\">\n <button type=\"button\" class=\"d-block w-100 text-start border-0 bg-white px-3 py-1 text-danger\" (click)=\"selectAction('delete', row)\">\n <i class=\"fa fa-trash me-2\"></i>Sil\n </button>\n </li>\n</ul>\n" }]
1069
- }], ctorParameters: function () { return [{ type: DocumentTransferService }, { type: SapCompanyProfileService }, { type: i1.Router }, { type: i3.ConfirmationService }]; }, propDecorators: { closeActionsMenu: [{
1072
+ args: [{ selector: 'hit-document-transfer', template: "<div class=\"card mb-3\">\n <div class=\"card-header py-3\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::Menu:DocumentTransfers' | abpLocalization }}</h5>\n </div>\n <div class=\"card-body pt-3\">\n <div class=\"row g-3 align-items-end mb-3\">\n <div class=\"col-md-4\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::SourceCompany' | abpLocalization }}</label>\n <select class=\"form-select\" [(ngModel)]=\"filterSourceCompanyId\" (ngModelChange)=\"search()\">\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n </div>\n <div class=\"col-md-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::SourceDocumentLifecycle' | abpLocalization }}</label>\n <select class=\"form-select\" [(ngModel)]=\"sourceDocumentLifecycle\" (ngModelChange)=\"search()\">\n <option *ngFor=\"let o of sourceDocumentLifecycleOptions\" [ngValue]=\"o.value\">{{ o.label }}</option>\n </select>\n </div>\n <div class=\"col-auto\">\n <button\n class=\"btn btn-outline-primary\"\n (click)=\"search()\"\n [disabled]=\"isListLoading || isTransfersLoading\"\n [title]=\"'FBDocumentFlow::RefreshListTooltip' | abpLocalization\"\n >\n <i class=\"fa fa-refresh me-1\"></i>{{ 'AbpUi::Refresh' | abpLocalization }}\n </button>\n </div>\n </div>\n\n <h6 class=\"mb-2\">{{ 'FBDocumentFlow::EligibleInvoicesTitle' | abpLocalization }}</h6>\n <small class=\"text-muted d-block mb-2\">{{ 'FBDocumentFlow::GridFilterHint' | abpLocalization }}</small>\n\n <div *ngIf=\"isListLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::LoadingInvoices' | abpLocalization }}</div>\n </div>\n\n <dx-data-grid\n *ngIf=\"!isListLoading\"\n [dataSource]=\"eligibleInvoices\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [columnAutoWidth]=\"true\"\n [height]=\"'45vh'\"\n [keyboardNavigation]=\"{ enabled: false }\"\n >\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n\n <dxi-column [caption]=\"'FBDocumentFlow::Actions' | abpLocalization\" cellTemplate=\"actionsTemplate\" [width]=\"100\" [allowFiltering]=\"false\" [allowSorting]=\"false\"></dxi-column>\n <dxi-column dataField=\"docNum\" [caption]=\"'FBDocumentFlow::DocNum' | abpLocalization\" dataType=\"number\" sortOrder=\"desc\" [width]=\"100\"></dxi-column>\n <dxi-column dataField=\"numAtCard\" [caption]=\"'FBDocumentFlow::NumAtCard' | abpLocalization\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"projectCode\" [caption]=\"'FBDocumentFlow::Project' | abpLocalization\" [width]=\"90\"></dxi-column>\n <dxi-column dataField=\"cardCode\" [caption]=\"'FBDocumentFlow::OinvCardCode' | abpLocalization\" [width]=\"140\"></dxi-column>\n <dxi-column dataField=\"targetCompanyName\" [caption]=\"'FBDocumentFlow::TargetCompany' | abpLocalization\"></dxi-column>\n <dxi-column dataField=\"currency\" [caption]=\"'FBDocumentFlow::Currency' | abpLocalization\" [width]=\"80\"></dxi-column>\n <dxi-column dataField=\"statusLabel\" [caption]=\"'FBDocumentFlow::Status' | abpLocalization\" cellTemplate=\"statusTemplate\" [width]=\"130\"></dxi-column>\n\n <div *dxTemplate=\"let cell of 'actionsTemplate'\">\n <button\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"openTransferPage(cell.data); $event.target.blur()\"\n [disabled]=\"!cell.data.isResolved || cell.data.targetHasDuplicateNumAtCard\"\n >\n {{ 'FBDocumentFlow::Actions' | abpLocalization }}\n </button>\n </div>\n\n <div *dxTemplate=\"let cell of 'statusTemplate'\" class=\"d-flex flex-column align-items-start py-2\">\n <span\n class=\"badge\"\n [class.bg-success]=\"invoiceStatusVariant(cell.data) === 'resolved'\"\n [class.bg-secondary]=\"invoiceStatusVariant(cell.data) === 'duplicate'\"\n [class.bg-warning]=\"invoiceStatusVariant(cell.data) === 'unresolved'\"\n >\n {{ invoiceStatusLabel(cell.data) }}\n </span>\n <button\n *ngIf=\"!cell.data.isResolved\"\n type=\"button\"\n class=\"btn btn-outline-warning btn-sm mt-2 py-0 px-2\"\n style=\"font-size: 0.72rem\"\n (click)=\"goToPartnerMapping(cell.data.cardCode, cell.data.cardName)\"\n [title]=\"'FBDocumentFlow::GoToPartnerMappingTooltip' | abpLocalization\"\n >\n <i class=\"fa fa-link me-1\"></i>{{ 'FBDocumentFlow::Match' | abpLocalization }}\n </button>\n </div>\n </dx-data-grid>\n\n <small class=\"text-muted d-block mt-2\">\n {{ 'FBDocumentFlow::AlreadyExistsHint' | abpLocalization }}\n </small>\n </div>\n</div>\n\n<div class=\"card\">\n <div class=\"card-header py-3\" role=\"button\" (click)=\"toggleHistory()\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::TransactionHistory' | abpLocalization }}</h5>\n <i class=\"fa\" [class.fa-chevron-up]=\"isHistoryExpanded\" [class.fa-chevron-down]=\"!isHistoryExpanded\"></i>\n </div>\n </div>\n <div class=\"card-body pt-3\" [hidden]=\"!isHistoryExpanded\">\n <small class=\"text-muted d-block mb-2\">{{ 'FBDocumentFlow::TransferHistoryHint' | abpLocalization }}</small>\n\n <div *ngIf=\"isTransfersLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::Loading' | abpLocalization }}</div>\n </div>\n\n <dx-data-grid\n *ngIf=\"!isTransfersLoading\"\n [dataSource]=\"transfers\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [columnAutoWidth]=\"true\"\n [height]=\"'40vh'\"\n [keyboardNavigation]=\"{ enabled: false }\"\n >\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n\n <dxi-column [caption]=\"'FBDocumentFlow::Actions' | abpLocalization\" cellTemplate=\"viewTemplate\" [width]=\"120\" [allowFiltering]=\"false\" [allowSorting]=\"false\" alignment=\"center\"></dxi-column>\n <dxi-column dataField=\"sourceOinvDocNum\" [caption]=\"'FBDocumentFlow::SourceDocument' | abpLocalization\" [width]=\"110\"></dxi-column>\n <dxi-column dataField=\"projectCode\" [caption]=\"'FBDocumentFlow::Project' | abpLocalization\" [width]=\"90\"></dxi-column>\n <dxi-column dataField=\"intercompanyId\" [caption]=\"'FBDocumentFlow::IntercompanyId' | abpLocalization\"></dxi-column>\n <!-- Kullan\u0131c\u0131 geri bildirimiyle tespit edildi: \u0130\u015Flem Ge\u00E7mi\u015Fi'nde bir kayd\u0131n normal (Kay\u0131tl\u0131) mi\n yoksa Taslak m\u0131 oldu\u011Fu hi\u00E7 g\u00F6r\u00FCnm\u00FCyordu - Aktar\u0131m Durumu (Durum s\u00FCtunu) ile kar\u0131\u015Ft\u0131r\u0131lmas\u0131n diye\n Kaynak/Hedef Belge Durumu ayr\u0131 s\u00FCtunlar olarak eklendi (bkz. spec \u00A714). -->\n <dxi-column dataField=\"sourceDocumentLifecycle\" [caption]=\"'FBDocumentFlow::SourceDocumentLifecycle' | abpLocalization\" [width]=\"140\">\n <dxo-lookup [dataSource]=\"sourceDocumentLifecycleOptions\" valueExpr=\"value\" displayExpr=\"label\"></dxo-lookup>\n </dxi-column>\n <dxi-column dataField=\"targetDocumentLifecycle\" [caption]=\"'FBDocumentFlow::TargetDocumentLifecycle' | abpLocalization\" [width]=\"140\">\n <dxo-lookup [dataSource]=\"sourceDocumentLifecycleOptions\" valueExpr=\"value\" displayExpr=\"label\"></dxo-lookup>\n </dxi-column>\n <dxi-column dataField=\"status\" [caption]=\"'FBDocumentFlow::Status' | abpLocalization\" cellTemplate=\"transferStatusTemplate\" [width]=\"130\">\n <dxo-lookup [dataSource]=\"transferStatusLookup\" valueExpr=\"value\" displayExpr=\"text\"></dxo-lookup>\n </dxi-column>\n <dxi-column\n dataField=\"creationTime\"\n [caption]=\"'FBDocumentFlow::CreationTime' | abpLocalization\"\n dataType=\"datetime\"\n format=\"dd.MM.yyyy HH:mm\"\n [width]=\"150\"\n sortOrder=\"desc\"\n ></dxi-column>\n\n <div *dxTemplate=\"let cell of 'viewTemplate'\">\n <button class=\"btn btn-sm btn-outline-secondary\" type=\"button\" (click)=\"toggleActions(cell.data, $event)\">\n {{ 'FBDocumentFlow::Actions' | abpLocalization }} <i class=\"fa fa-caret-down ms-1\"></i>\n </button>\n </div>\n\n <div *dxTemplate=\"let cell of 'transferStatusTemplate'\">\n <span\n class=\"badge\"\n [class.bg-secondary]=\"cell.value === 0\"\n [class.bg-primary]=\"cell.value === 1\"\n [class.bg-success]=\"cell.value === 2\"\n [class.bg-danger]=\"cell.value === 3\"\n [class.bg-warning]=\"cell.value === 4\"\n >\n {{ transferStatusLabel(cell.value) }}\n </span>\n </div>\n </dx-data-grid>\n </div>\n</div>\n\n<!-- Grid'in DI\u015EINDA: dx-data-grid h\u00FCcrelerinin overflow:hidden k\u0131rpmas\u0131 ve *dxTemplate i\u00E7i olay ba\u011Flama\n sorunlar\u0131 ya\u015Fanmas\u0131n diye \"\u0130\u015Flemler\" men\u00FCs\u00FC buraya, component \u015Fablonunun en \u00FCst seviyesine ta\u015F\u0131nd\u0131. -->\n<ul\n *ngIf=\"openActionsRow as row\"\n class=\"list-unstyled m-0 bg-white border rounded shadow-sm\"\n [style.position]=\"'absolute'\"\n [style.top.px]=\"actionsMenuPosition.top\"\n [style.left.px]=\"actionsMenuPosition.left\"\n style=\"z-index: 1050; min-width: 140px; padding: 4px 0\"\n (click)=\"$event.stopPropagation()\"\n>\n <li>\n <button type=\"button\" class=\"d-block w-100 text-start border-0 bg-white px-3 py-1\" (click)=\"selectAction('view', row)\">\n <i class=\"fa fa-eye me-2\"></i>{{ 'FBDocumentFlow::View' | abpLocalization }}\n </button>\n </li>\n <li *ngIf=\"canDeleteTransfer(row)\">\n <button type=\"button\" class=\"d-block w-100 text-start border-0 bg-white px-3 py-1 text-danger\" (click)=\"selectAction('delete', row)\">\n <i class=\"fa fa-trash me-2\"></i>{{ 'FBDocumentFlow::Delete' | abpLocalization }}\n </button>\n </li>\n</ul>\n" }]
1073
+ }], ctorParameters: function () { return [{ type: DocumentTransferService }, { type: SapCompanyProfileService }, { type: i1.Router }, { type: i3$1.ConfirmationService }, { type: i1$1.LocalizationService }]; }, propDecorators: { closeActionsMenu: [{
1070
1074
  type: HostListener,
1071
1075
  args: ['document:click']
1072
1076
  }] } });
@@ -1078,31 +1082,26 @@ const DOCUMENT_TRANSFER_LEG_STATUS_PENDING = 0;
1078
1082
  const DOCUMENT_TRANSFER_LEG_STATUS_SUCCESS = 1;
1079
1083
  const DOCUMENT_TRANSFER_LEG_STATUS_FAILED = 2;
1080
1084
  class HitDocumentTransferDetailComponent {
1081
- constructor(route, router, service, scenarioService, companyService, confirmation) {
1085
+ constructor(route, router, service, scenarioService, companyService, confirmation, localization) {
1082
1086
  this.route = route;
1083
1087
  this.router = router;
1084
1088
  this.service = service;
1085
1089
  this.scenarioService = scenarioService;
1086
1090
  this.companyService = companyService;
1087
1091
  this.confirmation = confirmation;
1092
+ this.localization = localization;
1088
1093
  this.isNew = false;
1089
1094
  this.newState = null;
1090
1095
  this.scenarios = [];
1091
1096
  this.scenarioId = '';
1092
1097
  this.isFetchingScenario = false;
1093
1098
  this.companies = [];
1094
- this.legBehaviors = [
1095
- { value: LegBehavior.IntermediateChain, label: 'Ara Şirket' },
1096
- { value: LegBehavior.ConstructionChain, label: 'Construction' },
1097
- ];
1099
+ this.legBehaviors = [];
1098
1100
  // Spec §14 (18.09.2026 kararı) - süreç parametrik. Aktarım henüz oluşturulmadıysa (isNew) kullanıcı bu
1099
1101
  // ekranda "Hedef Belge Durumu"nu seçebilir (kaynaktan bağımsız). Aktarım oluştuktan sonra bu alan
1100
1102
  // backend'de sabitlenir (DocumentTransfer.TargetDocumentLifecycle immutable), bu yüzden workingCopy
1101
1103
  // varken salt-okunur gösterilir. Kullanıcı isteğiyle Kaynak Belge Durumu ile AYNI etiketler kullanılır.
1102
- this.documentLifecycleOptions = [
1103
- { value: SapDocumentLifecycle.Posted, label: 'Kayıtlı Müşteri Faturası' },
1104
- { value: SapDocumentLifecycle.Draft, label: 'Taslak Müşteri Faturası' },
1105
- ];
1104
+ this.documentLifecycleOptions = [];
1106
1105
  // Spec ek karar (18.09.2026) - hedef Taslak iken Construction bacağının (OPOR→OPDN→OPCH) taban belge
1107
1106
  // zinciri taslaklar arasında çalışmaz; bu durumda kullanıcı üç belge tipinden yalnızca birini seçer.
1108
1107
  this.constructionDraftDocTypeOptions = [
@@ -1115,6 +1114,14 @@ class HitDocumentTransferDetailComponent {
1115
1114
  this.isStarting = false;
1116
1115
  this.isExecuting = false;
1117
1116
  this.isMutatingLegs = false;
1117
+ this.legBehaviors = [
1118
+ { value: LegBehavior.IntermediateChain, label: this.localization.instant('FBDocumentFlow::LegBehavior:IntermediateChain') },
1119
+ { value: LegBehavior.ConstructionChain, label: this.localization.instant('FBDocumentFlow::LegBehavior:ConstructionChain') },
1120
+ ];
1121
+ this.documentLifecycleOptions = [
1122
+ { value: SapDocumentLifecycle.Posted, label: this.localization.instant('FBDocumentFlow::DocumentLifecycle:Posted') },
1123
+ { value: SapDocumentLifecycle.Draft, label: this.localization.instant('FBDocumentFlow::DocumentLifecycle:Draft') },
1124
+ ];
1118
1125
  }
1119
1126
  ngOnInit() {
1120
1127
  var _a;
@@ -1147,7 +1154,7 @@ class HitDocumentTransferDetailComponent {
1147
1154
  scenarioName() {
1148
1155
  var _a, _b, _c;
1149
1156
  if (!((_a = this.workingCopy) === null || _a === void 0 ? void 0 : _a.scenarioId)) {
1150
- return 'Senaryosuz (yalnızca ilk hedef bacağı)';
1157
+ return this.localization.instant('FBDocumentFlow::NoScenarioOption');
1151
1158
  }
1152
1159
  return (_c = (_b = this.scenarios.find(s => { var _a; return s.id === ((_a = this.workingCopy) === null || _a === void 0 ? void 0 : _a.scenarioId); })) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : this.workingCopy.scenarioId;
1153
1160
  }
@@ -1220,7 +1227,7 @@ class HitDocumentTransferDetailComponent {
1220
1227
  const isLastLeg = leg.sequenceNo >= ((_b = (_a = this.workingCopy) === null || _a === void 0 ? void 0 : _a.legs.length) !== null && _b !== void 0 ? _b : 0);
1221
1228
  if (leg.legBehavior === LegBehavior.ConstructionChain) {
1222
1229
  if (this.isConstructionDraftSelectable(leg)) {
1223
- const selectedLabel = (_d = (_c = this.constructionDraftDocTypeOptions.find(o => o.value === leg.selectedConstructionDraftDocType)) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : 'Seçilmedi';
1230
+ const selectedLabel = (_d = (_c = this.constructionDraftDocTypeOptions.find(o => o.value === leg.selectedConstructionDraftDocType)) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : this.localization.instant('FBDocumentFlow::NotSelected');
1224
1231
  return isLastLeg ? selectedLabel : `${selectedLabel} → OINV`;
1225
1232
  }
1226
1233
  return isLastLeg ? 'OPOR → OPDN → OPCH' : 'OPOR → OPDN → OPCH → OINV';
@@ -1431,9 +1438,7 @@ class HitDocumentTransferDetailComponent {
1431
1438
  }
1432
1439
  // Spec §9 - U_Oran tanımsızken akış bloklanmaz; ancak kullanıcının bunu bilerek onaylaması gerekir.
1433
1440
  if (this.hasMissingIncreaseRate()) {
1434
- this.confirmation
1435
- .warn('Bu şirkette bu proje için artırım oranı tanımlı değildir. Artırım uygulanmadan devam etmek istiyor musunuz?', 'FBDocumentFlow::AreYouSure')
1436
- .subscribe(status => {
1441
+ this.confirmation.warn('FBDocumentFlow::IncreaseRateNotDefinedConfirm', 'FBDocumentFlow::AreYouSure').subscribe(status => {
1437
1442
  if (status === Confirmation.Status.confirm) {
1438
1443
  this.executeStartFlow();
1439
1444
  }
@@ -1494,8 +1499,15 @@ class HitDocumentTransferDetailComponent {
1494
1499
  });
1495
1500
  }
1496
1501
  statusLabel(status) {
1497
- var _a;
1498
- return (_a = ['İşlem Bekliyor', 'Devam Ediyor', 'Tamamlandı', 'Hatalı', 'İptal Edildi'][status]) !== null && _a !== void 0 ? _a : String(status);
1502
+ const keys = [
1503
+ 'FBDocumentFlow::TransferStatus:Pending',
1504
+ 'FBDocumentFlow::TransferStatus:InProgress',
1505
+ 'FBDocumentFlow::TransferStatus:Completed',
1506
+ 'FBDocumentFlow::TransferStatus:Failed',
1507
+ 'FBDocumentFlow::TransferStatus:Cancelled',
1508
+ ];
1509
+ const key = keys[status];
1510
+ return key ? this.localization.instant(key) : String(status);
1499
1511
  }
1500
1512
  // Spec §14 (18.09.2026 kararı) - süreç parametrik; Kaynak ve Hedef Belge Durumu için AYNI etiket
1501
1513
  // kullanılır (kullanıcı isteğiyle netleştirildi).
@@ -1503,11 +1515,12 @@ class HitDocumentTransferDetailComponent {
1503
1515
  if (lifecycle == null) {
1504
1516
  return '';
1505
1517
  }
1506
- return lifecycle === SapDocumentLifecycle.Draft ? 'Taslak Müşteri Faturası' : 'Kayıtlı Müşteri Faturası';
1518
+ return this.localization.instant(lifecycle === SapDocumentLifecycle.Draft ? 'FBDocumentFlow::DocumentLifecycle:Draft' : 'FBDocumentFlow::DocumentLifecycle:Posted');
1507
1519
  }
1508
1520
  legStatusLabel(status) {
1509
- var _a;
1510
- return (_a = ['Bekliyor', 'Başarılı', 'Hatalı', 'Atlandı'][status]) !== null && _a !== void 0 ? _a : String(status);
1521
+ const keys = ['FBDocumentFlow::LegStatus:Pending', 'FBDocumentFlow::LegStatus:Success', 'FBDocumentFlow::LegStatus:Failed', 'FBDocumentFlow::LegStatus:Skipped'];
1522
+ const key = keys[status];
1523
+ return key ? this.localization.instant(key) : String(status);
1511
1524
  }
1512
1525
  // Bir bacakta (özellikle Construction: OPOR→OPDN→OPCH, veya Ara Şirket'te devam OINV oluştuğunda)
1513
1526
  // BİRDEN FAZLA SAP belgesi oluşabilir; önceden yalnızca "son" belge (leg.createdDocType/createdDocEntry)
@@ -1538,12 +1551,12 @@ class HitDocumentTransferDetailComponent {
1538
1551
  return parts.join(' → ');
1539
1552
  }
1540
1553
  }
1541
- HitDocumentTransferDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDocumentTransferDetailComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: DocumentTransferService }, { token: DocumentScenarioService }, { token: SapCompanyProfileService }, { token: i3.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
1542
- HitDocumentTransferDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitDocumentTransferDetailComponent, selector: "hit-document-transfer-detail", ngImport: i0, template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">Belge Ak\u0131\u015F\u0131 / Intercompany Aktar\u0131m\u0131</h5>\n </div>\n <div class=\"col-auto\">\n <button class=\"btn btn-sm btn-outline-secondary\" (click)=\"backToList()\">\n <i class=\"fa fa-arrow-left me-1\"></i>Listeye D\u00F6n\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">Y\u00FCkleniyor...</div>\n </div>\n\n <ng-container *ngIf=\"!isLoading\">\n <!-- Bu sat\u0131r hem \"yeni\" (hen\u00FCz kay\u0131t olu\u015Fmam\u0131\u015F) hem de kay\u0131t olu\u015Ftuktan sonraki taslak durumunda\n AYNI alan setini g\u00F6sterir - kay\u0131t olu\u015Funca ekran\u0131n alan seti de\u011Fi\u015Fip kullan\u0131c\u0131da \"ba\u015Fka bir\n kay\u0131t m\u0131 bu\" izlenimi vermesin diye. De\u011Ferler \u00F6nce newState'ten (istemcide tutulan \u00F6nizleme),\n o yoksa olu\u015Fan kayd\u0131n ilk baca\u011F\u0131ndan (workingCopy.legs[0]) okunur - ilk bacak her zaman\n newState'in temsil etti\u011Fi \"ilk hedef\" ad\u0131m\u0131yla ayn\u0131 belgedir. -->\n <div class=\"row g-3 mb-3\" *ngIf=\"newState || workingCopy\">\n <div class=\"col-md-3\">\n <label class=\"form-label\">Kaynak \u015Eirket</label>\n <input type=\"text\" class=\"form-control\" [value]=\"companyName()\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">Belge No</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.docNum ?? workingCopy?.sourceOinvDocNum\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">NumAtCard</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.numAtCard ?? workingCopy?.sourceOinvNumAtCard\" disabled />\n </div>\n <div class=\"col-md-1\">\n <label class=\"form-label\">Proje</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.projectCode ?? workingCopy?.projectCode\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">\u0130lk Hedef</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.targetCompanyName ?? workingCopy?.legs?.[0]?.targetCompanyName\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">D\u00F6viz</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.currency ?? workingCopy?.legs?.[0]?.currency\" disabled />\n </div>\n </div>\n\n <!-- Belge Durumu her zaman (yeni kay\u0131tta da) g\u00F6r\u00FCn\u00FCr; Intercompany Id/Aktar\u0131m Durumu/Senaryo yaln\u0131zca\n kay\u0131t olu\u015Ftuktan sonra vard\u0131r - kullan\u0131c\u0131 iste\u011Fiyle hepsi ayn\u0131 sat\u0131rda, Belge Durumu'nun yan\u0131na\n topland\u0131 (\u00F6nceden Intercompany Id/Aktar\u0131m Durumu ayr\u0131 bir sat\u0131rdayd\u0131). -->\n <div class=\"row g-3 mb-3\" *ngIf=\"newState || workingCopy\">\n <div class=\"col-md-2\">\n <label class=\"form-label\">Kaynak Belge Durumu</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [value]=\"sourceDocumentLifecycleLabel(newState?.sourceDocumentLifecycle ?? workingCopy?.sourceDocumentLifecycle)\"\n disabled\n />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">Hedef Belge Durumu</label>\n <!-- Aktar\u0131m hen\u00FCz olu\u015Fturulmad\u0131ysa (isNew) burada se\u00E7ilebilir - kaynaktan ba\u011F\u0131ms\u0131z bir karard\u0131r\n (kullan\u0131c\u0131 geri bildirimiyle netle\u015Ftirildi: kayna\u011F\u0131n modu sabit, hedefin modu burada se\u00E7ilir).\n Olu\u015Ftuktan sonra backend'de sabitlendi\u011Fi i\u00E7in (workingCopy) salt-okunur g\u00F6sterilir. -->\n <select *ngIf=\"isNew && newState\" class=\"form-select\" [(ngModel)]=\"newState.targetDocumentLifecycle\">\n <option *ngFor=\"let o of documentLifecycleOptions\" [ngValue]=\"o.value\">{{ o.label }}</option>\n </select>\n <input\n *ngIf=\"!isNew || !newState\"\n type=\"text\"\n class=\"form-control\"\n [value]=\"sourceDocumentLifecycleLabel(newState?.targetDocumentLifecycle ?? workingCopy?.targetDocumentLifecycle)\"\n disabled\n />\n </div>\n <div class=\"col-md-3\" *ngIf=\"workingCopy\">\n <label class=\"form-label\">Intercompany Id</label>\n <input type=\"text\" class=\"form-control\" [value]=\"workingCopy.intercompanyId\" disabled />\n </div>\n <div class=\"col-md-2\" *ngIf=\"workingCopy\">\n <label class=\"form-label\">Aktar\u0131m Durumu</label>\n <input type=\"text\" class=\"form-control\" [value]=\"statusLabel(workingCopy.status)\" disabled />\n </div>\n <!-- Senaryo, aktar\u0131m hen\u00FCz \u00E7al\u0131\u015Ft\u0131r\u0131lmam\u0131\u015Fken (isDraft()) alt\u0131ndaki \"Haz\u0131r Senaryo\" dropdown'\u0131nda\n zaten d\u00FCzenlenebilir/g\u00F6r\u00FCn\u00FCr durumda - ayn\u0131 bilgiyi burada salt-okunur tekrar g\u00F6stermek\n (kullan\u0131c\u0131 geri bildirimiyle tespit edildi) kafa kar\u0131\u015Ft\u0131r\u0131yordu. Yaln\u0131zca aktar\u0131m art\u0131k\n d\u00FCzenlenemez hale geldi\u011Finde (dropdown kayboldu\u011Funda) burada g\u00F6sterilir. -->\n <div class=\"col-md-3\" *ngIf=\"workingCopy && !isDraft()\">\n <label class=\"form-label\">Senaryo</label>\n <input type=\"text\" class=\"form-control\" [value]=\"scenarioName()\" disabled />\n </div>\n </div>\n\n <!-- Taslak: haz\u0131r senaryo se\u00E7imi, hen\u00FCz \u00E7al\u0131\u015Ft\u0131r\u0131lmad\u0131. -->\n <ng-container *ngIf=\"isDraft()\">\n <div class=\"row g-3 align-items-end mb-3\">\n <div class=\"col-md-4\">\n <label class=\"form-label\">Haz\u0131r Senaryo</label>\n <select class=\"form-select\" [(ngModel)]=\"scenarioId\">\n <option [ngValue]=\"''\">Senaryosuz (yaln\u0131zca ilk hedef baca\u011F\u0131)</option>\n <option *ngFor=\"let s of availableScenarios()\" [ngValue]=\"s.id\">{{ s.name }}</option>\n </select>\n </div>\n <div class=\"col-md-2\">\n <button\n class=\"btn btn-outline-primary\"\n (click)=\"isNew ? fetchScenario() : applyScenario()\"\n [disabled]=\"isFetchingScenario\"\n >\n <span *ngIf=\"isFetchingScenario\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ isNew ? 'Senaryoyu Getir' : 'Senaryoyu Uygula' }}\n </button>\n </div>\n </div>\n </ng-container>\n\n <!-- NumAtCard alanlar\u0131 art\u0131k isDraft()'a ba\u011Fl\u0131 DE\u011E\u0130L: taslakta d\u00FCzenlenebilir, \u00E7al\u0131\u015Ft\u0131r\u0131ld\u0131ktan\n sonra (isDraft() false olsa da) salt-okunur olarak ekranda kal\u0131r - \"Haz\u0131r Senaryo\" blo\u011Fuyla\n birlikte tamamen kaybolmas\u0131n diye. -->\n <ng-container *ngIf=\"workingCopy\">\n <div class=\"row g-3 align-items-end mb-3\" *ngIf=\"hasIntermediateNumAtCardLegs()\">\n <div class=\"col-md-3\" *ngFor=\"let leg of workingCopy.legs\">\n <ng-container *ngIf=\"leg.legBehavior === 0 && leg.sequenceNo < workingCopy.legs.length\">\n <label class=\"form-label\">{{ leg.sequenceNo }}. Bacak - {{ leg.targetCompanyName }} M\u00FC\u015Fteri Faturas\u0131 NumAtCard</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"leg.numAtCard\" [disabled]=\"!isDraft()\" />\n </ng-container>\n </div>\n </div>\n\n <div class=\"alert alert-warning\" *ngIf=\"isDraft() && hasMissingIncreaseRate()\">\n Uyar\u0131: \u0130lgili \u015Firkette/projede art\u0131r\u0131m oran\u0131 0 / NULL. Art\u0131r\u0131m uygulanmadan devam etmek istiyor musunuz?\n </div>\n\n <div class=\"alert alert-warning\" *ngIf=\"isDraft() && hasMissingConstructionDraftSelection()\">\n Uyar\u0131: Hedef Belge Durumu Taslak oldu\u011Funda Construction bacaklar\u0131nda OPOR \u2192 OPDN \u2192 OPCH zinciri taslak belgeler aras\u0131nda\n \u00E7al\u0131\u015Fmaz. \"Hedefte Olu\u015Facak\" s\u00FCtunundan bu bacaklar i\u00E7in tek bir belge tipi (OPOR / OPDN / OPCH) se\u00E7melisiniz.\n </div>\n </ng-container>\n\n <!-- Tek tablo: taslakta da, \u00E7al\u0131\u015Ft\u0131r\u0131ld\u0131ktan sonra da AYNI s\u00FCtun seti (S\u0131ra..Art\u0131r\u0131m) korunur;\n Durum/Sonu\u00E7 Belge/Hata/\u00C7al\u0131\u015Ft\u0131r yaln\u0131zca \u00E7al\u0131\u015Ft\u0131r\u0131ld\u0131ktan sonra, her sat\u0131r\u0131n ALTINA ikinci bir\n sat\u0131r olarak eklenir - eskiden bu bilgiler ayr\u0131 ve daha dar bir tabloya ge\u00E7ilerek g\u00F6steriliyordu,\n bu da Kaynak Belge/Hedefte Olu\u015Facak gibi s\u00FCtunlar\u0131n \"kaybolmu\u015F\" g\u00F6r\u00FCnmesine yol a\u00E7\u0131yordu. -->\n <ng-container *ngIf=\"workingCopy\">\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\n <div>\n <h6 class=\"mb-0\">{{ isDraft() ? 'Senaryo \u00C7al\u0131\u015Fma Kopyas\u0131' : 'Aktar\u0131m Sonucu' }}</h6>\n <small class=\"text-muted\" *ngIf=\"isDraft()\">Bu tablo yaln\u0131zca \u00E7al\u0131\u015Fma kopyas\u0131n\u0131 d\u00FCzenler; ana senaryoyu de\u011Fi\u015Ftirmez.</small>\n </div>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"addLeg()\" *ngIf=\"isDraft()\" [disabled]=\"isMutatingLegs\">\n <i class=\"fa fa-plus me-1\"></i>Bacak Ekle\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"cancelChain()\" *ngIf=\"canCancelChain()\">\n <i class=\"fa fa-ban me-1\"></i>Zinciri \u0130ptal Et\n </button>\n </div>\n\n <div class=\"alert alert-secondary small\" *ngIf=\"workingCopy.status === 4\">\n Bu zincir iptal edildi, bacaklar\u0131 art\u0131k \u00E7al\u0131\u015Ft\u0131r\u0131lamaz/d\u00FCzenlenemez. Yeniden denemek i\u00E7in\n \"Listeye D\u00F6n\"den kaynak faturay\u0131 tekrar se\u00E7ip yeni bir aktar\u0131m ba\u015Flat\u0131n - bu, yeni bir Intercompany Id ile\n \u00E7al\u0131\u015F\u0131r.\n </div>\n\n <div class=\"table-responsive\">\n <table class=\"table table-sm table-bordered align-middle\">\n <thead>\n <tr>\n <th>S\u0131ra</th>\n <th>Kaynak</th>\n <th>Kaynak Belge</th>\n <th>Hedef</th>\n <th>Davran\u0131\u015F</th>\n <th>Hedefte Olu\u015Facak</th>\n <th>OPCH CardCode</th>\n <th>D\u00F6viz</th>\n <th>Kur</th>\n <th>Art\u0131r\u0131m</th>\n <th *ngIf=\"isDraft()\"></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let leg of workingCopy.legs\">\n <tr>\n <td>{{ leg.sequenceNo }}</td>\n <td>{{ leg.sourceCompanyName }}</td>\n <td>OINV</td>\n <td>\n <select\n *ngIf=\"isDraft(); else targetText\"\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.targetCompanyId\"\n (ngModelChange)=\"updateLegTarget(leg, $event)\"\n [disabled]=\"isMutatingLegs\"\n >\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n <ng-template #targetText>{{ leg.targetCompanyName }}</ng-template>\n </td>\n <td>\n <select\n *ngIf=\"isDraft(); else behaviorText\"\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.legBehavior\"\n (ngModelChange)=\"updateLegBehavior(leg, $event)\"\n [disabled]=\"isMutatingLegs\"\n >\n <option *ngFor=\"let b of legBehaviors\" [ngValue]=\"b.value\">{{ b.label }}</option>\n </select>\n <ng-template #behaviorText>{{ legBehaviors[leg.legBehavior]?.label }}</ng-template>\n </td>\n <td>\n <select\n *ngIf=\"isDraft() && isConstructionDraftSelectable(leg); else targetDocText\"\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.selectedConstructionDraftDocType\"\n (ngModelChange)=\"updateLegConstructionDraftDocType(leg, $event)\"\n [disabled]=\"isMutatingLegs\"\n >\n <option [ngValue]=\"null\">Se\u00E7iniz...</option>\n <option *ngFor=\"let o of constructionDraftDocTypeOptions\" [ngValue]=\"o.value\">{{ o.label }}</option>\n </select>\n <ng-template #targetDocText>{{ legTargetDocLabel(leg) }}</ng-template>\n </td>\n <td>\n <span *ngIf=\"leg.resolvedOpchCardCode\">{{ leg.resolvedOpchCardCode }}</span>\n <div *ngIf=\"!leg.resolvedOpchCardCode\" class=\"d-flex flex-column align-items-start py-1\">\n <span class=\"badge bg-danger\">E\u015Fle\u015Ftirilmedi</span>\n <button\n type=\"button\"\n class=\"btn btn-outline-danger btn-sm mt-2 py-0 px-2\"\n style=\"font-size: 0.72rem\"\n (click)=\"goToPartnerMapping(leg)\"\n title=\"Muhatap E\u015Fle\u015Ftirmeleri ekran\u0131na git\"\n >\n <i class=\"fa fa-link me-1\"></i>E\u015Fle\u015Ftir\n </button>\n </div>\n </td>\n <td>\n <input\n *ngIf=\"isDraft(); else currencyText\"\n type=\"text\"\n class=\"form-control form-control-sm\"\n style=\"width: 5.5rem\"\n [(ngModel)]=\"leg.currency\"\n [placeholder]=\"newState?.currency || 'Kaynaktan'\"\n />\n <ng-template #currencyText>{{ leg.currency || newState?.currency }}</ng-template>\n </td>\n <td>\n <input\n *ngIf=\"isDraft(); else rateText\"\n type=\"number\"\n class=\"form-control form-control-sm\"\n style=\"width: 6rem\"\n [(ngModel)]=\"leg.exchangeRate\"\n placeholder=\"Kaynaktan\"\n />\n <ng-template #rateText>{{ leg.exchangeRate ?? '-' }}</ng-template>\n </td>\n <!-- Spec \u00A79 - art\u0131r\u0131m YALNIZCA bu baca\u011F\u0131n olu\u015Fturdu\u011Fu devam M\u00FC\u015Fteri Faturas\u0131na (bir\n sonraki bacak varsa) uygulan\u0131r; bu hem IntermediateChain hem ConstructionChain i\u00E7in\n ge\u00E7erlidir (Construction'da da nextTargetCompanyId.HasValue ise devam OINV'i\n art\u0131r\u0131mla olu\u015Fturuluyor). \u00D6nceden Construction bacaklar\u0131 legBehavior'a bak\u0131larak\n KO\u015EULSUZ \"-\" g\u00F6steriyordu - zincirin SON baca\u011F\u0131 olmayan bir Construction baca\u011F\u0131n\u0131n\n hedefinde art\u0131r\u0131m oran\u0131 tan\u0131ms\u0131zken kullan\u0131c\u0131 hi\u00E7 uyar\u0131lm\u0131yordu (kod incelemesiyle\n tespit edildi). Do\u011Fru ko\u015Ful \"zincirin son baca\u011F\u0131 m\u0131\" (legTargetDocLabel'daki\n isLastLeg ile ayn\u0131 mant\u0131k), legBehavior de\u011Fil. -->\n <td>\n <span *ngIf=\"leg.sequenceNo >= (workingCopy?.legs?.length ?? 0)\">-</span>\n <ng-container *ngIf=\"leg.sequenceNo < (workingCopy?.legs?.length ?? 0)\">\n <span *ngIf=\"leg.increaseRateApplied ?? leg.plannedIncreaseRate as rate\">{{ rate | number: '1.2-2' }}</span>\n <span\n class=\"text-danger\"\n *ngIf=\"!(leg.increaseRateApplied ?? leg.plannedIncreaseRate)\"\n title=\"Bu \u015Firkette bu proje i\u00E7in art\u0131r\u0131m oran\u0131 tan\u0131ml\u0131 de\u011Fildir. Art\u0131r\u0131m uygulanmadan devam edilecektir.\"\n >\n Tan\u0131ms\u0131z\n </span>\n </ng-container>\n </td>\n <td *ngIf=\"isDraft()\">\n <button\n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"removeLeg(leg)\"\n [disabled]=\"isMutatingLegs || workingCopy.legs.length <= 1\"\n title=\"Baca\u011F\u0131 Sil\"\n >\n <i class=\"fa fa-trash\"></i>\n </button>\n </td>\n </tr>\n <tr class=\"table-light\" *ngIf=\"!isDraft()\">\n <td></td>\n <td colspan=\"9\">\n <div class=\"d-flex align-items-center flex-wrap gap-3\">\n <span>\n <strong>Durum:</strong>\n <span\n class=\"badge ms-1\"\n [class.bg-secondary]=\"leg.status === 0\"\n [class.bg-success]=\"leg.status === 1\"\n [class.bg-danger]=\"leg.status === 2\"\n [class.bg-warning]=\"leg.status === 3\"\n >\n {{ legStatusLabel(leg.status) }}\n </span>\n </span>\n <span *ngIf=\"createdDocumentsSummary(leg) as docs\"><strong>Sonu\u00E7 Belge(ler):</strong> {{ docs }}</span>\n <span class=\"text-danger\" *ngIf=\"leg.errorMessage\"><strong>Hata:</strong> {{ leg.errorMessage }}</span>\n <button\n class=\"btn btn-sm btn-outline-primary ms-auto\"\n (click)=\"executeLeg(leg)\"\n [disabled]=\"isExecuting || !canExecuteLeg(leg)\"\n >\n <span *ngIf=\"isExecuting\" class=\"spinner-border spinner-border-sm me-1\"></span>\n \u00C7al\u0131\u015Ft\u0131r\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n\n <ul class=\"text-muted small\" *ngIf=\"isDraft()\">\n <li>\u015Eirketler aras\u0131 OINV \u2192 OPCH ge\u00E7i\u015Finde kaynak NumAtCard hedef OPCH.NumAtCard alan\u0131na aynen ta\u015F\u0131n\u0131r.</li>\n <li>Art\u0131r\u0131m yaln\u0131zca ayn\u0131 \u015Firket i\u00E7inde olu\u015Fturulan yeni M\u00FC\u015Fteri Faturas\u0131na uygulan\u0131r; navlun art\u0131r\u0131m oran\u0131ndan etkilenmez.</li>\n <li>Muhatap kodlar\u0131 Muhatap E\u015Fle\u015Ftirmeleri \u00FCzerinden \u00E7\u00F6z\u00FCl\u00FCr. Kur kaynak belgeden gelir ve kullan\u0131c\u0131 taraf\u0131ndan de\u011Fi\u015Ftirilebilir.</li>\n </ul>\n </ng-container>\n\n <div class=\"d-flex justify-content-end gap-2 mt-3\">\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"backToList()\">{{ isDraft() ? 'Vazge\u00E7' : 'Kapat' }}</button>\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"startFlow()\"\n *ngIf=\"isDraft() && workingCopy\"\n [disabled]=\"isStarting || hasMissingConstructionDraftSelection()\"\n >\n <span *ngIf=\"isStarting\" class=\"spinner-border spinner-border-sm me-1\"></span>\n Belge Ak\u0131\u015F\u0131n\u0131 Ba\u015Flat\n </button>\n </div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }] });
1554
+ HitDocumentTransferDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDocumentTransferDetailComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: DocumentTransferService }, { token: DocumentScenarioService }, { token: SapCompanyProfileService }, { token: i3$1.ConfirmationService }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
1555
+ HitDocumentTransferDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitDocumentTransferDetailComponent, selector: "hit-document-transfer-detail", ngImport: i0, template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::DocumentFlowTitle' | abpLocalization }}</h5>\n </div>\n <div class=\"col-auto\">\n <button class=\"btn btn-sm btn-outline-secondary\" (click)=\"backToList()\">\n <i class=\"fa fa-arrow-left me-1\"></i>{{ 'FBDocumentFlow::BackToList' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::Loading' | abpLocalization }}</div>\n </div>\n\n <ng-container *ngIf=\"!isLoading\">\n <!-- Bu sat\u0131r hem \"yeni\" (hen\u00FCz kay\u0131t olu\u015Fmam\u0131\u015F) hem de kay\u0131t olu\u015Ftuktan sonraki taslak durumunda\n AYNI alan setini g\u00F6sterir - kay\u0131t olu\u015Funca ekran\u0131n alan seti de\u011Fi\u015Fip kullan\u0131c\u0131da \"ba\u015Fka bir\n kay\u0131t m\u0131 bu\" izlenimi vermesin diye. De\u011Ferler \u00F6nce newState'ten (istemcide tutulan \u00F6nizleme),\n o yoksa olu\u015Fan kayd\u0131n ilk baca\u011F\u0131ndan (workingCopy.legs[0]) okunur - ilk bacak her zaman\n newState'in temsil etti\u011Fi \"ilk hedef\" ad\u0131m\u0131yla ayn\u0131 belgedir. -->\n <div class=\"row g-3 mb-3\" *ngIf=\"newState || workingCopy\">\n <div class=\"col-md-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::SourceCompany' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"companyName()\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::DocNum' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.docNum ?? workingCopy?.sourceOinvDocNum\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::NumAtCard' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.numAtCard ?? workingCopy?.sourceOinvNumAtCard\" disabled />\n </div>\n <div class=\"col-md-1\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::Project' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.projectCode ?? workingCopy?.projectCode\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::FirstTarget' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.targetCompanyName ?? workingCopy?.legs?.[0]?.targetCompanyName\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::Currency' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.currency ?? workingCopy?.legs?.[0]?.currency\" disabled />\n </div>\n </div>\n\n <!-- Belge Durumu her zaman (yeni kay\u0131tta da) g\u00F6r\u00FCn\u00FCr; Intercompany Id/Aktar\u0131m Durumu/Senaryo yaln\u0131zca\n kay\u0131t olu\u015Ftuktan sonra vard\u0131r - kullan\u0131c\u0131 iste\u011Fiyle hepsi ayn\u0131 sat\u0131rda, Belge Durumu'nun yan\u0131na\n topland\u0131 (\u00F6nceden Intercompany Id/Aktar\u0131m Durumu ayr\u0131 bir sat\u0131rdayd\u0131). -->\n <div class=\"row g-3 mb-3\" *ngIf=\"newState || workingCopy\">\n <div class=\"col-md-2\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::SourceDocumentLifecycle' | abpLocalization }}</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [value]=\"sourceDocumentLifecycleLabel(newState?.sourceDocumentLifecycle ?? workingCopy?.sourceDocumentLifecycle)\"\n disabled\n />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::TargetDocumentLifecycle' | abpLocalization }}</label>\n <!-- Aktar\u0131m hen\u00FCz olu\u015Fturulmad\u0131ysa (isNew) burada se\u00E7ilebilir - kaynaktan ba\u011F\u0131ms\u0131z bir karard\u0131r\n (kullan\u0131c\u0131 geri bildirimiyle netle\u015Ftirildi: kayna\u011F\u0131n modu sabit, hedefin modu burada se\u00E7ilir).\n Olu\u015Ftuktan sonra backend'de sabitlendi\u011Fi i\u00E7in (workingCopy) salt-okunur g\u00F6sterilir. -->\n <select *ngIf=\"isNew && newState\" class=\"form-select\" [(ngModel)]=\"newState.targetDocumentLifecycle\">\n <option *ngFor=\"let o of documentLifecycleOptions\" [ngValue]=\"o.value\">{{ o.label }}</option>\n </select>\n <input\n *ngIf=\"!isNew || !newState\"\n type=\"text\"\n class=\"form-control\"\n [value]=\"sourceDocumentLifecycleLabel(newState?.targetDocumentLifecycle ?? workingCopy?.targetDocumentLifecycle)\"\n disabled\n />\n </div>\n <div class=\"col-md-3\" *ngIf=\"workingCopy\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::IntercompanyId' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"workingCopy.intercompanyId\" disabled />\n </div>\n <div class=\"col-md-2\" *ngIf=\"workingCopy\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::TransferStatusLabel' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"statusLabel(workingCopy.status)\" disabled />\n </div>\n <!-- Senaryo, aktar\u0131m hen\u00FCz \u00E7al\u0131\u015Ft\u0131r\u0131lmam\u0131\u015Fken (isDraft()) alt\u0131ndaki \"Haz\u0131r Senaryo\" dropdown'\u0131nda\n zaten d\u00FCzenlenebilir/g\u00F6r\u00FCn\u00FCr durumda - ayn\u0131 bilgiyi burada salt-okunur tekrar g\u00F6stermek\n (kullan\u0131c\u0131 geri bildirimiyle tespit edildi) kafa kar\u0131\u015Ft\u0131r\u0131yordu. Yaln\u0131zca aktar\u0131m art\u0131k\n d\u00FCzenlenemez hale geldi\u011Finde (dropdown kayboldu\u011Funda) burada g\u00F6sterilir. -->\n <div class=\"col-md-3\" *ngIf=\"workingCopy && !isDraft()\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::Scenario' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"scenarioName()\" disabled />\n </div>\n </div>\n\n <!-- Taslak: haz\u0131r senaryo se\u00E7imi, hen\u00FCz \u00E7al\u0131\u015Ft\u0131r\u0131lmad\u0131. -->\n <ng-container *ngIf=\"isDraft()\">\n <div class=\"row g-3 align-items-end mb-3\">\n <div class=\"col-md-4\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::ReadyScenario' | abpLocalization }}</label>\n <select class=\"form-select\" [(ngModel)]=\"scenarioId\">\n <option [ngValue]=\"''\">{{ 'FBDocumentFlow::NoScenarioOption' | abpLocalization }}</option>\n <option *ngFor=\"let s of availableScenarios()\" [ngValue]=\"s.id\">{{ s.name }}</option>\n </select>\n </div>\n <div class=\"col-md-2\">\n <button\n class=\"btn btn-outline-primary\"\n (click)=\"isNew ? fetchScenario() : applyScenario()\"\n [disabled]=\"isFetchingScenario\"\n >\n <span *ngIf=\"isFetchingScenario\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ (isNew ? 'FBDocumentFlow::FetchScenario' : 'FBDocumentFlow::ApplyScenario') | abpLocalization }}\n </button>\n </div>\n </div>\n </ng-container>\n\n <!-- NumAtCard alanlar\u0131 art\u0131k isDraft()'a ba\u011Fl\u0131 DE\u011E\u0130L: taslakta d\u00FCzenlenebilir, \u00E7al\u0131\u015Ft\u0131r\u0131ld\u0131ktan\n sonra (isDraft() false olsa da) salt-okunur olarak ekranda kal\u0131r - \"Haz\u0131r Senaryo\" blo\u011Fuyla\n birlikte tamamen kaybolmas\u0131n diye. -->\n <ng-container *ngIf=\"workingCopy\">\n <div class=\"row g-3 align-items-end mb-3\" *ngIf=\"hasIntermediateNumAtCardLegs()\">\n <div class=\"col-md-3\" *ngFor=\"let leg of workingCopy.legs\">\n <ng-container *ngIf=\"leg.legBehavior === 0 && leg.sequenceNo < workingCopy.legs.length\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::LegNumAtCardLabel' | abpLocalization: leg.sequenceNo.toString():leg.targetCompanyName }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"leg.numAtCard\" [disabled]=\"!isDraft()\" />\n </ng-container>\n </div>\n </div>\n\n <div class=\"alert alert-warning\" *ngIf=\"isDraft() && hasMissingIncreaseRate()\">\n {{ 'FBDocumentFlow::IncreaseRateWarning' | abpLocalization }}\n </div>\n\n <div class=\"alert alert-warning\" *ngIf=\"isDraft() && hasMissingConstructionDraftSelection()\">\n {{ 'FBDocumentFlow::ConstructionDraftWarning' | abpLocalization }}\n </div>\n </ng-container>\n\n <!-- Tek tablo: taslakta da, \u00E7al\u0131\u015Ft\u0131r\u0131ld\u0131ktan sonra da AYNI s\u00FCtun seti (S\u0131ra..Art\u0131r\u0131m) korunur;\n Durum/Sonu\u00E7 Belge/Hata/\u00C7al\u0131\u015Ft\u0131r yaln\u0131zca \u00E7al\u0131\u015Ft\u0131r\u0131ld\u0131ktan sonra, her sat\u0131r\u0131n ALTINA ikinci bir\n sat\u0131r olarak eklenir - eskiden bu bilgiler ayr\u0131 ve daha dar bir tabloya ge\u00E7ilerek g\u00F6steriliyordu,\n bu da Kaynak Belge/Hedefte Olu\u015Facak gibi s\u00FCtunlar\u0131n \"kaybolmu\u015F\" g\u00F6r\u00FCnmesine yol a\u00E7\u0131yordu. -->\n <ng-container *ngIf=\"workingCopy\">\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\n <div>\n <h6 class=\"mb-0\">{{ (isDraft() ? 'FBDocumentFlow::ScenarioWorkingCopy' : 'FBDocumentFlow::TransferResult') | abpLocalization }}</h6>\n <small class=\"text-muted\" *ngIf=\"isDraft()\">{{ 'FBDocumentFlow::WorkingCopyHint' | abpLocalization }}</small>\n </div>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"addLeg()\" *ngIf=\"isDraft()\" [disabled]=\"isMutatingLegs\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'FBDocumentFlow::AddLeg' | abpLocalization }}\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"cancelChain()\" *ngIf=\"canCancelChain()\">\n <i class=\"fa fa-ban me-1\"></i>{{ 'FBDocumentFlow::CancelChain' | abpLocalization }}\n </button>\n </div>\n\n <div class=\"alert alert-secondary small\" *ngIf=\"workingCopy.status === 4\">\n {{ 'FBDocumentFlow::ChainCancelledNote' | abpLocalization }}\n </div>\n\n <div class=\"table-responsive\">\n <table class=\"table table-sm table-bordered align-middle\">\n <thead>\n <tr>\n <th>{{ 'FBDocumentFlow::SequenceNo' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::Source' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::SourceDocument' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::Target' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::Behavior' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::TargetCreates' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::OpchCardCode' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::Currency' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::ExchangeRate' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::IncreaseRateColumn' | abpLocalization }}</th>\n <th *ngIf=\"isDraft()\"></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let leg of workingCopy.legs\">\n <tr>\n <td>{{ leg.sequenceNo }}</td>\n <td>{{ leg.sourceCompanyName }}</td>\n <td>OINV</td>\n <td>\n <select\n *ngIf=\"isDraft(); else targetText\"\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.targetCompanyId\"\n (ngModelChange)=\"updateLegTarget(leg, $event)\"\n [disabled]=\"isMutatingLegs\"\n >\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n <ng-template #targetText>{{ leg.targetCompanyName }}</ng-template>\n </td>\n <td>\n <select\n *ngIf=\"isDraft(); else behaviorText\"\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.legBehavior\"\n (ngModelChange)=\"updateLegBehavior(leg, $event)\"\n [disabled]=\"isMutatingLegs\"\n >\n <option *ngFor=\"let b of legBehaviors\" [ngValue]=\"b.value\">{{ b.label }}</option>\n </select>\n <ng-template #behaviorText>{{ legBehaviors[leg.legBehavior]?.label }}</ng-template>\n </td>\n <td>\n <select\n *ngIf=\"isDraft() && isConstructionDraftSelectable(leg); else targetDocText\"\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.selectedConstructionDraftDocType\"\n (ngModelChange)=\"updateLegConstructionDraftDocType(leg, $event)\"\n [disabled]=\"isMutatingLegs\"\n >\n <option [ngValue]=\"null\">{{ 'FBDocumentFlow::SelectPlaceholderEllipsis' | abpLocalization }}</option>\n <option *ngFor=\"let o of constructionDraftDocTypeOptions\" [ngValue]=\"o.value\">{{ o.label }}</option>\n </select>\n <ng-template #targetDocText>{{ legTargetDocLabel(leg) }}</ng-template>\n </td>\n <td>\n <span *ngIf=\"leg.resolvedOpchCardCode\">{{ leg.resolvedOpchCardCode }}</span>\n <div *ngIf=\"!leg.resolvedOpchCardCode\" class=\"d-flex flex-column align-items-start py-1\">\n <span class=\"badge bg-danger\">{{ 'FBDocumentFlow::NotMapped' | abpLocalization }}</span>\n <button\n type=\"button\"\n class=\"btn btn-outline-danger btn-sm mt-2 py-0 px-2\"\n style=\"font-size: 0.72rem\"\n (click)=\"goToPartnerMapping(leg)\"\n [title]=\"'FBDocumentFlow::GoToPartnerMappingTooltip' | abpLocalization\"\n >\n <i class=\"fa fa-link me-1\"></i>{{ 'FBDocumentFlow::Match' | abpLocalization }}\n </button>\n </div>\n </td>\n <td>\n <input\n *ngIf=\"isDraft(); else currencyText\"\n type=\"text\"\n class=\"form-control form-control-sm\"\n style=\"width: 5.5rem\"\n [(ngModel)]=\"leg.currency\"\n [placeholder]=\"newState?.currency || ('FBDocumentFlow::FromSource' | abpLocalization)\"\n />\n <ng-template #currencyText>{{ leg.currency || newState?.currency }}</ng-template>\n </td>\n <td>\n <input\n *ngIf=\"isDraft(); else rateText\"\n type=\"number\"\n class=\"form-control form-control-sm\"\n style=\"width: 6rem\"\n [(ngModel)]=\"leg.exchangeRate\"\n [placeholder]=\"'FBDocumentFlow::FromSource' | abpLocalization\"\n />\n <ng-template #rateText>{{ leg.exchangeRate ?? '-' }}</ng-template>\n </td>\n <!-- Spec \u00A79 - art\u0131r\u0131m YALNIZCA bu baca\u011F\u0131n olu\u015Fturdu\u011Fu devam M\u00FC\u015Fteri Faturas\u0131na (bir\n sonraki bacak varsa) uygulan\u0131r; bu hem IntermediateChain hem ConstructionChain i\u00E7in\n ge\u00E7erlidir (Construction'da da nextTargetCompanyId.HasValue ise devam OINV'i\n art\u0131r\u0131mla olu\u015Fturuluyor). \u00D6nceden Construction bacaklar\u0131 legBehavior'a bak\u0131larak\n KO\u015EULSUZ \"-\" g\u00F6steriyordu - zincirin SON baca\u011F\u0131 olmayan bir Construction baca\u011F\u0131n\u0131n\n hedefinde art\u0131r\u0131m oran\u0131 tan\u0131ms\u0131zken kullan\u0131c\u0131 hi\u00E7 uyar\u0131lm\u0131yordu (kod incelemesiyle\n tespit edildi). Do\u011Fru ko\u015Ful \"zincirin son baca\u011F\u0131 m\u0131\" (legTargetDocLabel'daki\n isLastLeg ile ayn\u0131 mant\u0131k), legBehavior de\u011Fil. -->\n <td>\n <span *ngIf=\"leg.sequenceNo >= (workingCopy?.legs?.length ?? 0)\">-</span>\n <ng-container *ngIf=\"leg.sequenceNo < (workingCopy?.legs?.length ?? 0)\">\n <span *ngIf=\"leg.increaseRateApplied ?? leg.plannedIncreaseRate as rate\">{{ rate | number: '1.2-2' }}</span>\n <span\n class=\"text-danger\"\n *ngIf=\"!(leg.increaseRateApplied ?? leg.plannedIncreaseRate)\"\n [title]=\"'FBDocumentFlow::IncreaseRateUndefinedTooltip' | abpLocalization\"\n >\n {{ 'FBDocumentFlow::Undefined' | abpLocalization }}\n </span>\n </ng-container>\n </td>\n <td *ngIf=\"isDraft()\">\n <button\n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"removeLeg(leg)\"\n [disabled]=\"isMutatingLegs || workingCopy.legs.length <= 1\"\n [title]=\"'FBDocumentFlow::DeleteLegTooltip' | abpLocalization\"\n >\n <i class=\"fa fa-trash\"></i>\n </button>\n </td>\n </tr>\n <tr class=\"table-light\" *ngIf=\"!isDraft()\">\n <td></td>\n <td colspan=\"9\">\n <div class=\"d-flex align-items-center flex-wrap gap-3\">\n <span>\n <strong>{{ 'FBDocumentFlow::Status' | abpLocalization }}:</strong>\n <span\n class=\"badge ms-1\"\n [class.bg-secondary]=\"leg.status === 0\"\n [class.bg-success]=\"leg.status === 1\"\n [class.bg-danger]=\"leg.status === 2\"\n [class.bg-warning]=\"leg.status === 3\"\n >\n {{ legStatusLabel(leg.status) }}\n </span>\n </span>\n <span *ngIf=\"createdDocumentsSummary(leg) as docs\"><strong>{{ 'FBDocumentFlow::ResultDocuments' | abpLocalization }}:</strong> {{ docs }}</span>\n <span class=\"text-danger\" *ngIf=\"leg.errorMessage\"><strong>{{ 'FBDocumentFlow::Error' | abpLocalization }}:</strong> {{ leg.errorMessage }}</span>\n <button\n class=\"btn btn-sm btn-outline-primary ms-auto\"\n (click)=\"executeLeg(leg)\"\n [disabled]=\"isExecuting || !canExecuteLeg(leg)\"\n >\n <span *ngIf=\"isExecuting\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'FBDocumentFlow::Execute' | abpLocalization }}\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n\n <ul class=\"text-muted small\" *ngIf=\"isDraft()\">\n <li>{{ 'FBDocumentFlow::NoteNumAtCardCarryOver' | abpLocalization }}</li>\n <li>{{ 'FBDocumentFlow::NoteIncreaseRateScope' | abpLocalization }}</li>\n <li>{{ 'FBDocumentFlow::NoteCardCodeResolution' | abpLocalization }}</li>\n </ul>\n </ng-container>\n\n <div class=\"d-flex justify-content-end gap-2 mt-3\">\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"backToList()\">{{ (isDraft() ? 'AbpUi::Cancel' : 'FBDocumentFlow::Close') | abpLocalization }}</button>\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"startFlow()\"\n *ngIf=\"isDraft() && workingCopy\"\n [disabled]=\"isStarting || hasMissingConstructionDraftSelection()\"\n >\n <span *ngIf=\"isStarting\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'FBDocumentFlow::StartDocumentFlow' | abpLocalization }}\n </button>\n </div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i1$1.LocalizationPipe, name: "abpLocalization" }] });
1543
1556
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDocumentTransferDetailComponent, decorators: [{
1544
1557
  type: Component,
1545
- args: [{ selector: 'hit-document-transfer-detail', template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">Belge Ak\u0131\u015F\u0131 / Intercompany Aktar\u0131m\u0131</h5>\n </div>\n <div class=\"col-auto\">\n <button class=\"btn btn-sm btn-outline-secondary\" (click)=\"backToList()\">\n <i class=\"fa fa-arrow-left me-1\"></i>Listeye D\u00F6n\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">Y\u00FCkleniyor...</div>\n </div>\n\n <ng-container *ngIf=\"!isLoading\">\n <!-- Bu sat\u0131r hem \"yeni\" (hen\u00FCz kay\u0131t olu\u015Fmam\u0131\u015F) hem de kay\u0131t olu\u015Ftuktan sonraki taslak durumunda\n AYNI alan setini g\u00F6sterir - kay\u0131t olu\u015Funca ekran\u0131n alan seti de\u011Fi\u015Fip kullan\u0131c\u0131da \"ba\u015Fka bir\n kay\u0131t m\u0131 bu\" izlenimi vermesin diye. De\u011Ferler \u00F6nce newState'ten (istemcide tutulan \u00F6nizleme),\n o yoksa olu\u015Fan kayd\u0131n ilk baca\u011F\u0131ndan (workingCopy.legs[0]) okunur - ilk bacak her zaman\n newState'in temsil etti\u011Fi \"ilk hedef\" ad\u0131m\u0131yla ayn\u0131 belgedir. -->\n <div class=\"row g-3 mb-3\" *ngIf=\"newState || workingCopy\">\n <div class=\"col-md-3\">\n <label class=\"form-label\">Kaynak \u015Eirket</label>\n <input type=\"text\" class=\"form-control\" [value]=\"companyName()\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">Belge No</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.docNum ?? workingCopy?.sourceOinvDocNum\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">NumAtCard</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.numAtCard ?? workingCopy?.sourceOinvNumAtCard\" disabled />\n </div>\n <div class=\"col-md-1\">\n <label class=\"form-label\">Proje</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.projectCode ?? workingCopy?.projectCode\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">\u0130lk Hedef</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.targetCompanyName ?? workingCopy?.legs?.[0]?.targetCompanyName\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">D\u00F6viz</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.currency ?? workingCopy?.legs?.[0]?.currency\" disabled />\n </div>\n </div>\n\n <!-- Belge Durumu her zaman (yeni kay\u0131tta da) g\u00F6r\u00FCn\u00FCr; Intercompany Id/Aktar\u0131m Durumu/Senaryo yaln\u0131zca\n kay\u0131t olu\u015Ftuktan sonra vard\u0131r - kullan\u0131c\u0131 iste\u011Fiyle hepsi ayn\u0131 sat\u0131rda, Belge Durumu'nun yan\u0131na\n topland\u0131 (\u00F6nceden Intercompany Id/Aktar\u0131m Durumu ayr\u0131 bir sat\u0131rdayd\u0131). -->\n <div class=\"row g-3 mb-3\" *ngIf=\"newState || workingCopy\">\n <div class=\"col-md-2\">\n <label class=\"form-label\">Kaynak Belge Durumu</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [value]=\"sourceDocumentLifecycleLabel(newState?.sourceDocumentLifecycle ?? workingCopy?.sourceDocumentLifecycle)\"\n disabled\n />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">Hedef Belge Durumu</label>\n <!-- Aktar\u0131m hen\u00FCz olu\u015Fturulmad\u0131ysa (isNew) burada se\u00E7ilebilir - kaynaktan ba\u011F\u0131ms\u0131z bir karard\u0131r\n (kullan\u0131c\u0131 geri bildirimiyle netle\u015Ftirildi: kayna\u011F\u0131n modu sabit, hedefin modu burada se\u00E7ilir).\n Olu\u015Ftuktan sonra backend'de sabitlendi\u011Fi i\u00E7in (workingCopy) salt-okunur g\u00F6sterilir. -->\n <select *ngIf=\"isNew && newState\" class=\"form-select\" [(ngModel)]=\"newState.targetDocumentLifecycle\">\n <option *ngFor=\"let o of documentLifecycleOptions\" [ngValue]=\"o.value\">{{ o.label }}</option>\n </select>\n <input\n *ngIf=\"!isNew || !newState\"\n type=\"text\"\n class=\"form-control\"\n [value]=\"sourceDocumentLifecycleLabel(newState?.targetDocumentLifecycle ?? workingCopy?.targetDocumentLifecycle)\"\n disabled\n />\n </div>\n <div class=\"col-md-3\" *ngIf=\"workingCopy\">\n <label class=\"form-label\">Intercompany Id</label>\n <input type=\"text\" class=\"form-control\" [value]=\"workingCopy.intercompanyId\" disabled />\n </div>\n <div class=\"col-md-2\" *ngIf=\"workingCopy\">\n <label class=\"form-label\">Aktar\u0131m Durumu</label>\n <input type=\"text\" class=\"form-control\" [value]=\"statusLabel(workingCopy.status)\" disabled />\n </div>\n <!-- Senaryo, aktar\u0131m hen\u00FCz \u00E7al\u0131\u015Ft\u0131r\u0131lmam\u0131\u015Fken (isDraft()) alt\u0131ndaki \"Haz\u0131r Senaryo\" dropdown'\u0131nda\n zaten d\u00FCzenlenebilir/g\u00F6r\u00FCn\u00FCr durumda - ayn\u0131 bilgiyi burada salt-okunur tekrar g\u00F6stermek\n (kullan\u0131c\u0131 geri bildirimiyle tespit edildi) kafa kar\u0131\u015Ft\u0131r\u0131yordu. Yaln\u0131zca aktar\u0131m art\u0131k\n d\u00FCzenlenemez hale geldi\u011Finde (dropdown kayboldu\u011Funda) burada g\u00F6sterilir. -->\n <div class=\"col-md-3\" *ngIf=\"workingCopy && !isDraft()\">\n <label class=\"form-label\">Senaryo</label>\n <input type=\"text\" class=\"form-control\" [value]=\"scenarioName()\" disabled />\n </div>\n </div>\n\n <!-- Taslak: haz\u0131r senaryo se\u00E7imi, hen\u00FCz \u00E7al\u0131\u015Ft\u0131r\u0131lmad\u0131. -->\n <ng-container *ngIf=\"isDraft()\">\n <div class=\"row g-3 align-items-end mb-3\">\n <div class=\"col-md-4\">\n <label class=\"form-label\">Haz\u0131r Senaryo</label>\n <select class=\"form-select\" [(ngModel)]=\"scenarioId\">\n <option [ngValue]=\"''\">Senaryosuz (yaln\u0131zca ilk hedef baca\u011F\u0131)</option>\n <option *ngFor=\"let s of availableScenarios()\" [ngValue]=\"s.id\">{{ s.name }}</option>\n </select>\n </div>\n <div class=\"col-md-2\">\n <button\n class=\"btn btn-outline-primary\"\n (click)=\"isNew ? fetchScenario() : applyScenario()\"\n [disabled]=\"isFetchingScenario\"\n >\n <span *ngIf=\"isFetchingScenario\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ isNew ? 'Senaryoyu Getir' : 'Senaryoyu Uygula' }}\n </button>\n </div>\n </div>\n </ng-container>\n\n <!-- NumAtCard alanlar\u0131 art\u0131k isDraft()'a ba\u011Fl\u0131 DE\u011E\u0130L: taslakta d\u00FCzenlenebilir, \u00E7al\u0131\u015Ft\u0131r\u0131ld\u0131ktan\n sonra (isDraft() false olsa da) salt-okunur olarak ekranda kal\u0131r - \"Haz\u0131r Senaryo\" blo\u011Fuyla\n birlikte tamamen kaybolmas\u0131n diye. -->\n <ng-container *ngIf=\"workingCopy\">\n <div class=\"row g-3 align-items-end mb-3\" *ngIf=\"hasIntermediateNumAtCardLegs()\">\n <div class=\"col-md-3\" *ngFor=\"let leg of workingCopy.legs\">\n <ng-container *ngIf=\"leg.legBehavior === 0 && leg.sequenceNo < workingCopy.legs.length\">\n <label class=\"form-label\">{{ leg.sequenceNo }}. Bacak - {{ leg.targetCompanyName }} M\u00FC\u015Fteri Faturas\u0131 NumAtCard</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"leg.numAtCard\" [disabled]=\"!isDraft()\" />\n </ng-container>\n </div>\n </div>\n\n <div class=\"alert alert-warning\" *ngIf=\"isDraft() && hasMissingIncreaseRate()\">\n Uyar\u0131: \u0130lgili \u015Firkette/projede art\u0131r\u0131m oran\u0131 0 / NULL. Art\u0131r\u0131m uygulanmadan devam etmek istiyor musunuz?\n </div>\n\n <div class=\"alert alert-warning\" *ngIf=\"isDraft() && hasMissingConstructionDraftSelection()\">\n Uyar\u0131: Hedef Belge Durumu Taslak oldu\u011Funda Construction bacaklar\u0131nda OPOR \u2192 OPDN \u2192 OPCH zinciri taslak belgeler aras\u0131nda\n \u00E7al\u0131\u015Fmaz. \"Hedefte Olu\u015Facak\" s\u00FCtunundan bu bacaklar i\u00E7in tek bir belge tipi (OPOR / OPDN / OPCH) se\u00E7melisiniz.\n </div>\n </ng-container>\n\n <!-- Tek tablo: taslakta da, \u00E7al\u0131\u015Ft\u0131r\u0131ld\u0131ktan sonra da AYNI s\u00FCtun seti (S\u0131ra..Art\u0131r\u0131m) korunur;\n Durum/Sonu\u00E7 Belge/Hata/\u00C7al\u0131\u015Ft\u0131r yaln\u0131zca \u00E7al\u0131\u015Ft\u0131r\u0131ld\u0131ktan sonra, her sat\u0131r\u0131n ALTINA ikinci bir\n sat\u0131r olarak eklenir - eskiden bu bilgiler ayr\u0131 ve daha dar bir tabloya ge\u00E7ilerek g\u00F6steriliyordu,\n bu da Kaynak Belge/Hedefte Olu\u015Facak gibi s\u00FCtunlar\u0131n \"kaybolmu\u015F\" g\u00F6r\u00FCnmesine yol a\u00E7\u0131yordu. -->\n <ng-container *ngIf=\"workingCopy\">\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\n <div>\n <h6 class=\"mb-0\">{{ isDraft() ? 'Senaryo \u00C7al\u0131\u015Fma Kopyas\u0131' : 'Aktar\u0131m Sonucu' }}</h6>\n <small class=\"text-muted\" *ngIf=\"isDraft()\">Bu tablo yaln\u0131zca \u00E7al\u0131\u015Fma kopyas\u0131n\u0131 d\u00FCzenler; ana senaryoyu de\u011Fi\u015Ftirmez.</small>\n </div>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"addLeg()\" *ngIf=\"isDraft()\" [disabled]=\"isMutatingLegs\">\n <i class=\"fa fa-plus me-1\"></i>Bacak Ekle\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"cancelChain()\" *ngIf=\"canCancelChain()\">\n <i class=\"fa fa-ban me-1\"></i>Zinciri \u0130ptal Et\n </button>\n </div>\n\n <div class=\"alert alert-secondary small\" *ngIf=\"workingCopy.status === 4\">\n Bu zincir iptal edildi, bacaklar\u0131 art\u0131k \u00E7al\u0131\u015Ft\u0131r\u0131lamaz/d\u00FCzenlenemez. Yeniden denemek i\u00E7in\n \"Listeye D\u00F6n\"den kaynak faturay\u0131 tekrar se\u00E7ip yeni bir aktar\u0131m ba\u015Flat\u0131n - bu, yeni bir Intercompany Id ile\n \u00E7al\u0131\u015F\u0131r.\n </div>\n\n <div class=\"table-responsive\">\n <table class=\"table table-sm table-bordered align-middle\">\n <thead>\n <tr>\n <th>S\u0131ra</th>\n <th>Kaynak</th>\n <th>Kaynak Belge</th>\n <th>Hedef</th>\n <th>Davran\u0131\u015F</th>\n <th>Hedefte Olu\u015Facak</th>\n <th>OPCH CardCode</th>\n <th>D\u00F6viz</th>\n <th>Kur</th>\n <th>Art\u0131r\u0131m</th>\n <th *ngIf=\"isDraft()\"></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let leg of workingCopy.legs\">\n <tr>\n <td>{{ leg.sequenceNo }}</td>\n <td>{{ leg.sourceCompanyName }}</td>\n <td>OINV</td>\n <td>\n <select\n *ngIf=\"isDraft(); else targetText\"\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.targetCompanyId\"\n (ngModelChange)=\"updateLegTarget(leg, $event)\"\n [disabled]=\"isMutatingLegs\"\n >\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n <ng-template #targetText>{{ leg.targetCompanyName }}</ng-template>\n </td>\n <td>\n <select\n *ngIf=\"isDraft(); else behaviorText\"\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.legBehavior\"\n (ngModelChange)=\"updateLegBehavior(leg, $event)\"\n [disabled]=\"isMutatingLegs\"\n >\n <option *ngFor=\"let b of legBehaviors\" [ngValue]=\"b.value\">{{ b.label }}</option>\n </select>\n <ng-template #behaviorText>{{ legBehaviors[leg.legBehavior]?.label }}</ng-template>\n </td>\n <td>\n <select\n *ngIf=\"isDraft() && isConstructionDraftSelectable(leg); else targetDocText\"\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.selectedConstructionDraftDocType\"\n (ngModelChange)=\"updateLegConstructionDraftDocType(leg, $event)\"\n [disabled]=\"isMutatingLegs\"\n >\n <option [ngValue]=\"null\">Se\u00E7iniz...</option>\n <option *ngFor=\"let o of constructionDraftDocTypeOptions\" [ngValue]=\"o.value\">{{ o.label }}</option>\n </select>\n <ng-template #targetDocText>{{ legTargetDocLabel(leg) }}</ng-template>\n </td>\n <td>\n <span *ngIf=\"leg.resolvedOpchCardCode\">{{ leg.resolvedOpchCardCode }}</span>\n <div *ngIf=\"!leg.resolvedOpchCardCode\" class=\"d-flex flex-column align-items-start py-1\">\n <span class=\"badge bg-danger\">E\u015Fle\u015Ftirilmedi</span>\n <button\n type=\"button\"\n class=\"btn btn-outline-danger btn-sm mt-2 py-0 px-2\"\n style=\"font-size: 0.72rem\"\n (click)=\"goToPartnerMapping(leg)\"\n title=\"Muhatap E\u015Fle\u015Ftirmeleri ekran\u0131na git\"\n >\n <i class=\"fa fa-link me-1\"></i>E\u015Fle\u015Ftir\n </button>\n </div>\n </td>\n <td>\n <input\n *ngIf=\"isDraft(); else currencyText\"\n type=\"text\"\n class=\"form-control form-control-sm\"\n style=\"width: 5.5rem\"\n [(ngModel)]=\"leg.currency\"\n [placeholder]=\"newState?.currency || 'Kaynaktan'\"\n />\n <ng-template #currencyText>{{ leg.currency || newState?.currency }}</ng-template>\n </td>\n <td>\n <input\n *ngIf=\"isDraft(); else rateText\"\n type=\"number\"\n class=\"form-control form-control-sm\"\n style=\"width: 6rem\"\n [(ngModel)]=\"leg.exchangeRate\"\n placeholder=\"Kaynaktan\"\n />\n <ng-template #rateText>{{ leg.exchangeRate ?? '-' }}</ng-template>\n </td>\n <!-- Spec \u00A79 - art\u0131r\u0131m YALNIZCA bu baca\u011F\u0131n olu\u015Fturdu\u011Fu devam M\u00FC\u015Fteri Faturas\u0131na (bir\n sonraki bacak varsa) uygulan\u0131r; bu hem IntermediateChain hem ConstructionChain i\u00E7in\n ge\u00E7erlidir (Construction'da da nextTargetCompanyId.HasValue ise devam OINV'i\n art\u0131r\u0131mla olu\u015Fturuluyor). \u00D6nceden Construction bacaklar\u0131 legBehavior'a bak\u0131larak\n KO\u015EULSUZ \"-\" g\u00F6steriyordu - zincirin SON baca\u011F\u0131 olmayan bir Construction baca\u011F\u0131n\u0131n\n hedefinde art\u0131r\u0131m oran\u0131 tan\u0131ms\u0131zken kullan\u0131c\u0131 hi\u00E7 uyar\u0131lm\u0131yordu (kod incelemesiyle\n tespit edildi). Do\u011Fru ko\u015Ful \"zincirin son baca\u011F\u0131 m\u0131\" (legTargetDocLabel'daki\n isLastLeg ile ayn\u0131 mant\u0131k), legBehavior de\u011Fil. -->\n <td>\n <span *ngIf=\"leg.sequenceNo >= (workingCopy?.legs?.length ?? 0)\">-</span>\n <ng-container *ngIf=\"leg.sequenceNo < (workingCopy?.legs?.length ?? 0)\">\n <span *ngIf=\"leg.increaseRateApplied ?? leg.plannedIncreaseRate as rate\">{{ rate | number: '1.2-2' }}</span>\n <span\n class=\"text-danger\"\n *ngIf=\"!(leg.increaseRateApplied ?? leg.plannedIncreaseRate)\"\n title=\"Bu \u015Firkette bu proje i\u00E7in art\u0131r\u0131m oran\u0131 tan\u0131ml\u0131 de\u011Fildir. Art\u0131r\u0131m uygulanmadan devam edilecektir.\"\n >\n Tan\u0131ms\u0131z\n </span>\n </ng-container>\n </td>\n <td *ngIf=\"isDraft()\">\n <button\n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"removeLeg(leg)\"\n [disabled]=\"isMutatingLegs || workingCopy.legs.length <= 1\"\n title=\"Baca\u011F\u0131 Sil\"\n >\n <i class=\"fa fa-trash\"></i>\n </button>\n </td>\n </tr>\n <tr class=\"table-light\" *ngIf=\"!isDraft()\">\n <td></td>\n <td colspan=\"9\">\n <div class=\"d-flex align-items-center flex-wrap gap-3\">\n <span>\n <strong>Durum:</strong>\n <span\n class=\"badge ms-1\"\n [class.bg-secondary]=\"leg.status === 0\"\n [class.bg-success]=\"leg.status === 1\"\n [class.bg-danger]=\"leg.status === 2\"\n [class.bg-warning]=\"leg.status === 3\"\n >\n {{ legStatusLabel(leg.status) }}\n </span>\n </span>\n <span *ngIf=\"createdDocumentsSummary(leg) as docs\"><strong>Sonu\u00E7 Belge(ler):</strong> {{ docs }}</span>\n <span class=\"text-danger\" *ngIf=\"leg.errorMessage\"><strong>Hata:</strong> {{ leg.errorMessage }}</span>\n <button\n class=\"btn btn-sm btn-outline-primary ms-auto\"\n (click)=\"executeLeg(leg)\"\n [disabled]=\"isExecuting || !canExecuteLeg(leg)\"\n >\n <span *ngIf=\"isExecuting\" class=\"spinner-border spinner-border-sm me-1\"></span>\n \u00C7al\u0131\u015Ft\u0131r\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n\n <ul class=\"text-muted small\" *ngIf=\"isDraft()\">\n <li>\u015Eirketler aras\u0131 OINV \u2192 OPCH ge\u00E7i\u015Finde kaynak NumAtCard hedef OPCH.NumAtCard alan\u0131na aynen ta\u015F\u0131n\u0131r.</li>\n <li>Art\u0131r\u0131m yaln\u0131zca ayn\u0131 \u015Firket i\u00E7inde olu\u015Fturulan yeni M\u00FC\u015Fteri Faturas\u0131na uygulan\u0131r; navlun art\u0131r\u0131m oran\u0131ndan etkilenmez.</li>\n <li>Muhatap kodlar\u0131 Muhatap E\u015Fle\u015Ftirmeleri \u00FCzerinden \u00E7\u00F6z\u00FCl\u00FCr. Kur kaynak belgeden gelir ve kullan\u0131c\u0131 taraf\u0131ndan de\u011Fi\u015Ftirilebilir.</li>\n </ul>\n </ng-container>\n\n <div class=\"d-flex justify-content-end gap-2 mt-3\">\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"backToList()\">{{ isDraft() ? 'Vazge\u00E7' : 'Kapat' }}</button>\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"startFlow()\"\n *ngIf=\"isDraft() && workingCopy\"\n [disabled]=\"isStarting || hasMissingConstructionDraftSelection()\"\n >\n <span *ngIf=\"isStarting\" class=\"spinner-border spinner-border-sm me-1\"></span>\n Belge Ak\u0131\u015F\u0131n\u0131 Ba\u015Flat\n </button>\n </div>\n </ng-container>\n </div>\n</div>\n" }]
1546
- }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: DocumentTransferService }, { type: DocumentScenarioService }, { type: SapCompanyProfileService }, { type: i3.ConfirmationService }]; } });
1558
+ args: [{ selector: 'hit-document-transfer-detail', template: "<div class=\"card\">\n <div class=\"card-header py-3\">\n <div class=\"row align-items-center\">\n <div class=\"col\">\n <h5 class=\"card-title mb-0\">{{ 'FBDocumentFlow::DocumentFlowTitle' | abpLocalization }}</h5>\n </div>\n <div class=\"col-auto\">\n <button class=\"btn btn-sm btn-outline-secondary\" (click)=\"backToList()\">\n <i class=\"fa fa-arrow-left me-1\"></i>{{ 'FBDocumentFlow::BackToList' | abpLocalization }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"card-body pt-3\">\n <div *ngIf=\"isLoading\" class=\"text-center py-5\">\n <div class=\"spinner-border text-primary\" role=\"status\"></div>\n <div class=\"mt-2 text-muted\">{{ 'FBDocumentFlow::Loading' | abpLocalization }}</div>\n </div>\n\n <ng-container *ngIf=\"!isLoading\">\n <!-- Bu sat\u0131r hem \"yeni\" (hen\u00FCz kay\u0131t olu\u015Fmam\u0131\u015F) hem de kay\u0131t olu\u015Ftuktan sonraki taslak durumunda\n AYNI alan setini g\u00F6sterir - kay\u0131t olu\u015Funca ekran\u0131n alan seti de\u011Fi\u015Fip kullan\u0131c\u0131da \"ba\u015Fka bir\n kay\u0131t m\u0131 bu\" izlenimi vermesin diye. De\u011Ferler \u00F6nce newState'ten (istemcide tutulan \u00F6nizleme),\n o yoksa olu\u015Fan kayd\u0131n ilk baca\u011F\u0131ndan (workingCopy.legs[0]) okunur - ilk bacak her zaman\n newState'in temsil etti\u011Fi \"ilk hedef\" ad\u0131m\u0131yla ayn\u0131 belgedir. -->\n <div class=\"row g-3 mb-3\" *ngIf=\"newState || workingCopy\">\n <div class=\"col-md-3\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::SourceCompany' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"companyName()\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::DocNum' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.docNum ?? workingCopy?.sourceOinvDocNum\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::NumAtCard' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.numAtCard ?? workingCopy?.sourceOinvNumAtCard\" disabled />\n </div>\n <div class=\"col-md-1\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::Project' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.projectCode ?? workingCopy?.projectCode\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::FirstTarget' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.targetCompanyName ?? workingCopy?.legs?.[0]?.targetCompanyName\" disabled />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::Currency' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"newState?.currency ?? workingCopy?.legs?.[0]?.currency\" disabled />\n </div>\n </div>\n\n <!-- Belge Durumu her zaman (yeni kay\u0131tta da) g\u00F6r\u00FCn\u00FCr; Intercompany Id/Aktar\u0131m Durumu/Senaryo yaln\u0131zca\n kay\u0131t olu\u015Ftuktan sonra vard\u0131r - kullan\u0131c\u0131 iste\u011Fiyle hepsi ayn\u0131 sat\u0131rda, Belge Durumu'nun yan\u0131na\n topland\u0131 (\u00F6nceden Intercompany Id/Aktar\u0131m Durumu ayr\u0131 bir sat\u0131rdayd\u0131). -->\n <div class=\"row g-3 mb-3\" *ngIf=\"newState || workingCopy\">\n <div class=\"col-md-2\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::SourceDocumentLifecycle' | abpLocalization }}</label>\n <input\n type=\"text\"\n class=\"form-control\"\n [value]=\"sourceDocumentLifecycleLabel(newState?.sourceDocumentLifecycle ?? workingCopy?.sourceDocumentLifecycle)\"\n disabled\n />\n </div>\n <div class=\"col-md-2\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::TargetDocumentLifecycle' | abpLocalization }}</label>\n <!-- Aktar\u0131m hen\u00FCz olu\u015Fturulmad\u0131ysa (isNew) burada se\u00E7ilebilir - kaynaktan ba\u011F\u0131ms\u0131z bir karard\u0131r\n (kullan\u0131c\u0131 geri bildirimiyle netle\u015Ftirildi: kayna\u011F\u0131n modu sabit, hedefin modu burada se\u00E7ilir).\n Olu\u015Ftuktan sonra backend'de sabitlendi\u011Fi i\u00E7in (workingCopy) salt-okunur g\u00F6sterilir. -->\n <select *ngIf=\"isNew && newState\" class=\"form-select\" [(ngModel)]=\"newState.targetDocumentLifecycle\">\n <option *ngFor=\"let o of documentLifecycleOptions\" [ngValue]=\"o.value\">{{ o.label }}</option>\n </select>\n <input\n *ngIf=\"!isNew || !newState\"\n type=\"text\"\n class=\"form-control\"\n [value]=\"sourceDocumentLifecycleLabel(newState?.targetDocumentLifecycle ?? workingCopy?.targetDocumentLifecycle)\"\n disabled\n />\n </div>\n <div class=\"col-md-3\" *ngIf=\"workingCopy\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::IntercompanyId' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"workingCopy.intercompanyId\" disabled />\n </div>\n <div class=\"col-md-2\" *ngIf=\"workingCopy\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::TransferStatusLabel' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"statusLabel(workingCopy.status)\" disabled />\n </div>\n <!-- Senaryo, aktar\u0131m hen\u00FCz \u00E7al\u0131\u015Ft\u0131r\u0131lmam\u0131\u015Fken (isDraft()) alt\u0131ndaki \"Haz\u0131r Senaryo\" dropdown'\u0131nda\n zaten d\u00FCzenlenebilir/g\u00F6r\u00FCn\u00FCr durumda - ayn\u0131 bilgiyi burada salt-okunur tekrar g\u00F6stermek\n (kullan\u0131c\u0131 geri bildirimiyle tespit edildi) kafa kar\u0131\u015Ft\u0131r\u0131yordu. Yaln\u0131zca aktar\u0131m art\u0131k\n d\u00FCzenlenemez hale geldi\u011Finde (dropdown kayboldu\u011Funda) burada g\u00F6sterilir. -->\n <div class=\"col-md-3\" *ngIf=\"workingCopy && !isDraft()\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::Scenario' | abpLocalization }}</label>\n <input type=\"text\" class=\"form-control\" [value]=\"scenarioName()\" disabled />\n </div>\n </div>\n\n <!-- Taslak: haz\u0131r senaryo se\u00E7imi, hen\u00FCz \u00E7al\u0131\u015Ft\u0131r\u0131lmad\u0131. -->\n <ng-container *ngIf=\"isDraft()\">\n <div class=\"row g-3 align-items-end mb-3\">\n <div class=\"col-md-4\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::ReadyScenario' | abpLocalization }}</label>\n <select class=\"form-select\" [(ngModel)]=\"scenarioId\">\n <option [ngValue]=\"''\">{{ 'FBDocumentFlow::NoScenarioOption' | abpLocalization }}</option>\n <option *ngFor=\"let s of availableScenarios()\" [ngValue]=\"s.id\">{{ s.name }}</option>\n </select>\n </div>\n <div class=\"col-md-2\">\n <button\n class=\"btn btn-outline-primary\"\n (click)=\"isNew ? fetchScenario() : applyScenario()\"\n [disabled]=\"isFetchingScenario\"\n >\n <span *ngIf=\"isFetchingScenario\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ (isNew ? 'FBDocumentFlow::FetchScenario' : 'FBDocumentFlow::ApplyScenario') | abpLocalization }}\n </button>\n </div>\n </div>\n </ng-container>\n\n <!-- NumAtCard alanlar\u0131 art\u0131k isDraft()'a ba\u011Fl\u0131 DE\u011E\u0130L: taslakta d\u00FCzenlenebilir, \u00E7al\u0131\u015Ft\u0131r\u0131ld\u0131ktan\n sonra (isDraft() false olsa da) salt-okunur olarak ekranda kal\u0131r - \"Haz\u0131r Senaryo\" blo\u011Fuyla\n birlikte tamamen kaybolmas\u0131n diye. -->\n <ng-container *ngIf=\"workingCopy\">\n <div class=\"row g-3 align-items-end mb-3\" *ngIf=\"hasIntermediateNumAtCardLegs()\">\n <div class=\"col-md-3\" *ngFor=\"let leg of workingCopy.legs\">\n <ng-container *ngIf=\"leg.legBehavior === 0 && leg.sequenceNo < workingCopy.legs.length\">\n <label class=\"form-label\">{{ 'FBDocumentFlow::LegNumAtCardLabel' | abpLocalization: leg.sequenceNo.toString():leg.targetCompanyName }}</label>\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"leg.numAtCard\" [disabled]=\"!isDraft()\" />\n </ng-container>\n </div>\n </div>\n\n <div class=\"alert alert-warning\" *ngIf=\"isDraft() && hasMissingIncreaseRate()\">\n {{ 'FBDocumentFlow::IncreaseRateWarning' | abpLocalization }}\n </div>\n\n <div class=\"alert alert-warning\" *ngIf=\"isDraft() && hasMissingConstructionDraftSelection()\">\n {{ 'FBDocumentFlow::ConstructionDraftWarning' | abpLocalization }}\n </div>\n </ng-container>\n\n <!-- Tek tablo: taslakta da, \u00E7al\u0131\u015Ft\u0131r\u0131ld\u0131ktan sonra da AYNI s\u00FCtun seti (S\u0131ra..Art\u0131r\u0131m) korunur;\n Durum/Sonu\u00E7 Belge/Hata/\u00C7al\u0131\u015Ft\u0131r yaln\u0131zca \u00E7al\u0131\u015Ft\u0131r\u0131ld\u0131ktan sonra, her sat\u0131r\u0131n ALTINA ikinci bir\n sat\u0131r olarak eklenir - eskiden bu bilgiler ayr\u0131 ve daha dar bir tabloya ge\u00E7ilerek g\u00F6steriliyordu,\n bu da Kaynak Belge/Hedefte Olu\u015Facak gibi s\u00FCtunlar\u0131n \"kaybolmu\u015F\" g\u00F6r\u00FCnmesine yol a\u00E7\u0131yordu. -->\n <ng-container *ngIf=\"workingCopy\">\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\n <div>\n <h6 class=\"mb-0\">{{ (isDraft() ? 'FBDocumentFlow::ScenarioWorkingCopy' : 'FBDocumentFlow::TransferResult') | abpLocalization }}</h6>\n <small class=\"text-muted\" *ngIf=\"isDraft()\">{{ 'FBDocumentFlow::WorkingCopyHint' | abpLocalization }}</small>\n </div>\n <button class=\"btn btn-sm btn-outline-primary\" (click)=\"addLeg()\" *ngIf=\"isDraft()\" [disabled]=\"isMutatingLegs\">\n <i class=\"fa fa-plus me-1\"></i>{{ 'FBDocumentFlow::AddLeg' | abpLocalization }}\n </button>\n <button class=\"btn btn-sm btn-outline-danger\" (click)=\"cancelChain()\" *ngIf=\"canCancelChain()\">\n <i class=\"fa fa-ban me-1\"></i>{{ 'FBDocumentFlow::CancelChain' | abpLocalization }}\n </button>\n </div>\n\n <div class=\"alert alert-secondary small\" *ngIf=\"workingCopy.status === 4\">\n {{ 'FBDocumentFlow::ChainCancelledNote' | abpLocalization }}\n </div>\n\n <div class=\"table-responsive\">\n <table class=\"table table-sm table-bordered align-middle\">\n <thead>\n <tr>\n <th>{{ 'FBDocumentFlow::SequenceNo' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::Source' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::SourceDocument' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::Target' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::Behavior' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::TargetCreates' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::OpchCardCode' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::Currency' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::ExchangeRate' | abpLocalization }}</th>\n <th>{{ 'FBDocumentFlow::IncreaseRateColumn' | abpLocalization }}</th>\n <th *ngIf=\"isDraft()\"></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let leg of workingCopy.legs\">\n <tr>\n <td>{{ leg.sequenceNo }}</td>\n <td>{{ leg.sourceCompanyName }}</td>\n <td>OINV</td>\n <td>\n <select\n *ngIf=\"isDraft(); else targetText\"\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.targetCompanyId\"\n (ngModelChange)=\"updateLegTarget(leg, $event)\"\n [disabled]=\"isMutatingLegs\"\n >\n <option *ngFor=\"let c of companies\" [ngValue]=\"c.id\">{{ c.companyName }}</option>\n </select>\n <ng-template #targetText>{{ leg.targetCompanyName }}</ng-template>\n </td>\n <td>\n <select\n *ngIf=\"isDraft(); else behaviorText\"\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.legBehavior\"\n (ngModelChange)=\"updateLegBehavior(leg, $event)\"\n [disabled]=\"isMutatingLegs\"\n >\n <option *ngFor=\"let b of legBehaviors\" [ngValue]=\"b.value\">{{ b.label }}</option>\n </select>\n <ng-template #behaviorText>{{ legBehaviors[leg.legBehavior]?.label }}</ng-template>\n </td>\n <td>\n <select\n *ngIf=\"isDraft() && isConstructionDraftSelectable(leg); else targetDocText\"\n class=\"form-select form-select-sm\"\n [ngModel]=\"leg.selectedConstructionDraftDocType\"\n (ngModelChange)=\"updateLegConstructionDraftDocType(leg, $event)\"\n [disabled]=\"isMutatingLegs\"\n >\n <option [ngValue]=\"null\">{{ 'FBDocumentFlow::SelectPlaceholderEllipsis' | abpLocalization }}</option>\n <option *ngFor=\"let o of constructionDraftDocTypeOptions\" [ngValue]=\"o.value\">{{ o.label }}</option>\n </select>\n <ng-template #targetDocText>{{ legTargetDocLabel(leg) }}</ng-template>\n </td>\n <td>\n <span *ngIf=\"leg.resolvedOpchCardCode\">{{ leg.resolvedOpchCardCode }}</span>\n <div *ngIf=\"!leg.resolvedOpchCardCode\" class=\"d-flex flex-column align-items-start py-1\">\n <span class=\"badge bg-danger\">{{ 'FBDocumentFlow::NotMapped' | abpLocalization }}</span>\n <button\n type=\"button\"\n class=\"btn btn-outline-danger btn-sm mt-2 py-0 px-2\"\n style=\"font-size: 0.72rem\"\n (click)=\"goToPartnerMapping(leg)\"\n [title]=\"'FBDocumentFlow::GoToPartnerMappingTooltip' | abpLocalization\"\n >\n <i class=\"fa fa-link me-1\"></i>{{ 'FBDocumentFlow::Match' | abpLocalization }}\n </button>\n </div>\n </td>\n <td>\n <input\n *ngIf=\"isDraft(); else currencyText\"\n type=\"text\"\n class=\"form-control form-control-sm\"\n style=\"width: 5.5rem\"\n [(ngModel)]=\"leg.currency\"\n [placeholder]=\"newState?.currency || ('FBDocumentFlow::FromSource' | abpLocalization)\"\n />\n <ng-template #currencyText>{{ leg.currency || newState?.currency }}</ng-template>\n </td>\n <td>\n <input\n *ngIf=\"isDraft(); else rateText\"\n type=\"number\"\n class=\"form-control form-control-sm\"\n style=\"width: 6rem\"\n [(ngModel)]=\"leg.exchangeRate\"\n [placeholder]=\"'FBDocumentFlow::FromSource' | abpLocalization\"\n />\n <ng-template #rateText>{{ leg.exchangeRate ?? '-' }}</ng-template>\n </td>\n <!-- Spec \u00A79 - art\u0131r\u0131m YALNIZCA bu baca\u011F\u0131n olu\u015Fturdu\u011Fu devam M\u00FC\u015Fteri Faturas\u0131na (bir\n sonraki bacak varsa) uygulan\u0131r; bu hem IntermediateChain hem ConstructionChain i\u00E7in\n ge\u00E7erlidir (Construction'da da nextTargetCompanyId.HasValue ise devam OINV'i\n art\u0131r\u0131mla olu\u015Fturuluyor). \u00D6nceden Construction bacaklar\u0131 legBehavior'a bak\u0131larak\n KO\u015EULSUZ \"-\" g\u00F6steriyordu - zincirin SON baca\u011F\u0131 olmayan bir Construction baca\u011F\u0131n\u0131n\n hedefinde art\u0131r\u0131m oran\u0131 tan\u0131ms\u0131zken kullan\u0131c\u0131 hi\u00E7 uyar\u0131lm\u0131yordu (kod incelemesiyle\n tespit edildi). Do\u011Fru ko\u015Ful \"zincirin son baca\u011F\u0131 m\u0131\" (legTargetDocLabel'daki\n isLastLeg ile ayn\u0131 mant\u0131k), legBehavior de\u011Fil. -->\n <td>\n <span *ngIf=\"leg.sequenceNo >= (workingCopy?.legs?.length ?? 0)\">-</span>\n <ng-container *ngIf=\"leg.sequenceNo < (workingCopy?.legs?.length ?? 0)\">\n <span *ngIf=\"leg.increaseRateApplied ?? leg.plannedIncreaseRate as rate\">{{ rate | number: '1.2-2' }}</span>\n <span\n class=\"text-danger\"\n *ngIf=\"!(leg.increaseRateApplied ?? leg.plannedIncreaseRate)\"\n [title]=\"'FBDocumentFlow::IncreaseRateUndefinedTooltip' | abpLocalization\"\n >\n {{ 'FBDocumentFlow::Undefined' | abpLocalization }}\n </span>\n </ng-container>\n </td>\n <td *ngIf=\"isDraft()\">\n <button\n class=\"btn btn-sm btn-outline-danger\"\n (click)=\"removeLeg(leg)\"\n [disabled]=\"isMutatingLegs || workingCopy.legs.length <= 1\"\n [title]=\"'FBDocumentFlow::DeleteLegTooltip' | abpLocalization\"\n >\n <i class=\"fa fa-trash\"></i>\n </button>\n </td>\n </tr>\n <tr class=\"table-light\" *ngIf=\"!isDraft()\">\n <td></td>\n <td colspan=\"9\">\n <div class=\"d-flex align-items-center flex-wrap gap-3\">\n <span>\n <strong>{{ 'FBDocumentFlow::Status' | abpLocalization }}:</strong>\n <span\n class=\"badge ms-1\"\n [class.bg-secondary]=\"leg.status === 0\"\n [class.bg-success]=\"leg.status === 1\"\n [class.bg-danger]=\"leg.status === 2\"\n [class.bg-warning]=\"leg.status === 3\"\n >\n {{ legStatusLabel(leg.status) }}\n </span>\n </span>\n <span *ngIf=\"createdDocumentsSummary(leg) as docs\"><strong>{{ 'FBDocumentFlow::ResultDocuments' | abpLocalization }}:</strong> {{ docs }}</span>\n <span class=\"text-danger\" *ngIf=\"leg.errorMessage\"><strong>{{ 'FBDocumentFlow::Error' | abpLocalization }}:</strong> {{ leg.errorMessage }}</span>\n <button\n class=\"btn btn-sm btn-outline-primary ms-auto\"\n (click)=\"executeLeg(leg)\"\n [disabled]=\"isExecuting || !canExecuteLeg(leg)\"\n >\n <span *ngIf=\"isExecuting\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'FBDocumentFlow::Execute' | abpLocalization }}\n </button>\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n </div>\n\n <ul class=\"text-muted small\" *ngIf=\"isDraft()\">\n <li>{{ 'FBDocumentFlow::NoteNumAtCardCarryOver' | abpLocalization }}</li>\n <li>{{ 'FBDocumentFlow::NoteIncreaseRateScope' | abpLocalization }}</li>\n <li>{{ 'FBDocumentFlow::NoteCardCodeResolution' | abpLocalization }}</li>\n </ul>\n </ng-container>\n\n <div class=\"d-flex justify-content-end gap-2 mt-3\">\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"backToList()\">{{ (isDraft() ? 'AbpUi::Cancel' : 'FBDocumentFlow::Close') | abpLocalization }}</button>\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"startFlow()\"\n *ngIf=\"isDraft() && workingCopy\"\n [disabled]=\"isStarting || hasMissingConstructionDraftSelection()\"\n >\n <span *ngIf=\"isStarting\" class=\"spinner-border spinner-border-sm me-1\"></span>\n {{ 'FBDocumentFlow::StartDocumentFlow' | abpLocalization }}\n </button>\n </div>\n </ng-container>\n </div>\n</div>\n" }]
1559
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: DocumentTransferService }, { type: DocumentScenarioService }, { type: SapCompanyProfileService }, { type: i3$1.ConfirmationService }, { type: i1$1.LocalizationService }]; } });
1547
1560
 
1548
1561
  const routes$1 = [
1549
1562
  {