@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() {
@@ -139,8 +127,6 @@ class HitSapCompanyProfileComponent {
139
127
  companyCode: row.companyCode ?? '',
140
128
  companyName: row.companyName ?? '',
141
129
  sapCompanyDb: row.sapCompanyDb ?? '',
142
- serviceLayerUrl: row.serviceLayerUrl ?? '',
143
- companyType: row.companyType,
144
130
  isActive: row.isActive,
145
131
  };
146
132
  this.isModalOpen = true;
@@ -164,18 +150,16 @@ class HitSapCompanyProfileComponent {
164
150
  companyCode: '',
165
151
  companyName: '',
166
152
  sapCompanyDb: '',
167
- serviceLayerUrl: '',
168
- companyType: CompanyType.Intermediate,
169
153
  isActive: true,
170
154
  };
171
155
  }
172
156
  }
173
- 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 });
174
- 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" }] });
157
+ 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 });
158
+ 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" }] });
175
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitSapCompanyProfileComponent, decorators: [{
176
160
  type: Component,
177
- 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" }]
178
- }], ctorParameters: function () { return [{ type: SapCompanyProfileService }, { type: i3.ConfirmationService }]; } });
161
+ 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" }]
162
+ }], ctorParameters: function () { return [{ type: SapCompanyProfileService }, { type: i3$1.ConfirmationService }]; } });
179
163
 
180
164
  const routes$5 = [
181
165
  {
@@ -332,12 +316,12 @@ class HitPartnerMappingComponent {
332
316
  };
333
317
  }
334
318
  }
335
- 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 });
336
- 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" }] });
319
+ 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 });
320
+ 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" }] });
337
321
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitPartnerMappingComponent, decorators: [{
338
322
  type: Component,
339
- 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" }]
340
- }], ctorParameters: function () { return [{ type: PartnerMappingService }, { type: SapCompanyProfileService }, { type: i3.ConfirmationService }]; } });
323
+ 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" }]
324
+ }], ctorParameters: function () { return [{ type: PartnerMappingService }, { type: SapCompanyProfileService }, { type: i3$1.ConfirmationService }]; } });
341
325
 
342
326
  const routes$4 = [
343
327
  {
@@ -406,10 +390,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
406
390
  }], ctorParameters: function () { return [{ type: i1$1.RestService }]; } });
407
391
 
408
392
  class HitDocumentScenarioComponent {
409
- constructor(service, companyService, confirmation) {
393
+ constructor(service, companyService, confirmation, localization) {
410
394
  this.service = service;
411
395
  this.companyService = companyService;
412
396
  this.confirmation = confirmation;
397
+ this.localization = localization;
413
398
  this.data = [];
414
399
  this.companies = [];
415
400
  this.isLoading = false;
@@ -418,11 +403,12 @@ class HitDocumentScenarioComponent {
418
403
  this.editingId = null;
419
404
  this.selectedScenario = null;
420
405
  this.selectedRowKeys = [];
406
+ this.legBehaviors = [];
407
+ this.form = this.buildEmptyForm();
421
408
  this.legBehaviors = [
422
- { value: LegBehavior.IntermediateChain, label: 'Ara Şirket' },
423
- { value: LegBehavior.ConstructionChain, label: 'Construction' },
409
+ { value: LegBehavior.IntermediateChain, label: this.localization.instant('FBDocumentFlow::LegBehavior:IntermediateChain') },
410
+ { value: LegBehavior.ConstructionChain, label: this.localization.instant('FBDocumentFlow::LegBehavior:ConstructionChain') },
424
411
  ];
425
- this.form = this.buildEmptyForm();
426
412
  }
427
413
  ngOnInit() {
428
414
  this.companyService.getList({ maxResultCount: 1000, skipCount: 0, isActive: true }).subscribe(result => (this.companies = result.items));
@@ -454,7 +440,9 @@ class HitDocumentScenarioComponent {
454
440
  const chain = [legs[0].sourceCompanyName ?? this.companyName(legs[0].sourceCompanyId)];
455
441
  for (const leg of legs) {
456
442
  const targetName = leg.targetCompanyName ?? this.companyName(leg.targetCompanyId);
457
- chain.push(leg.legBehavior === LegBehavior.ConstructionChain ? `${targetName} (Construction)` : targetName);
443
+ chain.push(leg.legBehavior === LegBehavior.ConstructionChain
444
+ ? this.localization.instant('FBDocumentFlow::ConstructionChainTargetLabel', targetName)
445
+ : targetName);
458
446
  }
459
447
  return chain.join(' → ');
460
448
  }
@@ -466,9 +454,9 @@ class HitDocumentScenarioComponent {
466
454
  // Siparişli Mal Girişi (OPDN) → Satıcı Faturası (OPCH). "Mal Girişi" kısaltması OPDN'nin tam
467
455
  // adını yansıtmıyordu (kullanıcı geri bildirimiyle tespit edildi). SAP kısa tablo adları (OINV/OPCH
468
456
  // dahil) tüm belge tiplerinde tutarlı şekilde gösterilir.
469
- return `${source} Müşteri Faturası (OINV) ${target} Satınalma Siparişi (OPOR) → Satınalma Siparişli Mal Girişi (OPDN) → Satıcı Faturası (OPCH)`;
457
+ return this.localization.instant('FBDocumentFlow::ScenarioConstructionLegStep', source, target);
470
458
  }
471
- return `${source} Müşteri Faturası (OINV) ${target} Satıcı Faturası (OPCH) → ${target} Müşteri Faturası (OINV)`;
459
+ return this.localization.instant('FBDocumentFlow::ScenarioIntermediateLegStep', source, target);
472
460
  }
473
461
  openCreate() {
474
462
  this.editingId = null;
@@ -481,7 +469,9 @@ class HitDocumentScenarioComponent {
481
469
  name: row.name ?? '',
482
470
  description: row.description ?? '',
483
471
  isActive: row.isActive,
484
- legs: row.legs.map(l => ({
472
+ legs: [...row.legs]
473
+ .sort((a, b) => a.sequenceNo - b.sequenceNo)
474
+ .map(l => ({
485
475
  id: l.id,
486
476
  sourceCompanyId: l.sourceCompanyId,
487
477
  targetCompanyId: l.targetCompanyId,
@@ -535,12 +525,12 @@ class HitDocumentScenarioComponent {
535
525
  return { name: '', description: '', isActive: true, legs: [] };
536
526
  }
537
527
  }
538
- 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 });
539
- 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" }] });
528
+ 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 });
529
+ 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" }] });
540
530
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDocumentScenarioComponent, decorators: [{
541
531
  type: Component,
542
- 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" }]
543
- }], ctorParameters: function () { return [{ type: DocumentScenarioService }, { type: SapCompanyProfileService }, { type: i3.ConfirmationService }]; } });
532
+ 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" }]
533
+ }], ctorParameters: function () { return [{ type: DocumentScenarioService }, { type: SapCompanyProfileService }, { type: i3$1.ConfirmationService }, { type: i1$1.LocalizationService }]; } });
544
534
 
545
535
  const routes$3 = [
546
536
  {
@@ -708,10 +698,10 @@ class HitProjectParameterComponent {
708
698
  }
709
699
  }
710
700
  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 });
711
- 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" }] });
701
+ 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" }] });
712
702
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitProjectParameterComponent, decorators: [{
713
703
  type: Component,
714
- 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" }]
704
+ 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" }]
715
705
  }], ctorParameters: function () { return [{ type: SapProjectParameterService }, { type: SapCompanyProfileService }]; } });
716
706
 
717
707
  const routes$2 = [
@@ -834,11 +824,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
834
824
  }], ctorParameters: function () { return [{ type: i1$1.RestService }]; } });
835
825
 
836
826
  class HitDocumentTransferComponent {
837
- constructor(service, companyService, router, confirmation) {
827
+ constructor(service, companyService, router, confirmation, localization) {
838
828
  this.service = service;
839
829
  this.companyService = companyService;
840
830
  this.router = router;
841
831
  this.confirmation = confirmation;
832
+ this.localization = localization;
842
833
  this.companies = [];
843
834
  // Aktarıma uygun müşteri faturaları - Proje/NumAtCard/Belge No vb. daraltma tablonun kendi sütun
844
835
  // filtreleriyle yapılır.
@@ -853,24 +844,15 @@ class HitDocumentTransferComponent {
853
844
  // Kaynak HER ZAMAN bir Müşteri Faturasıdır (OINV) - etiket bunu netleştirir (kullanıcı geri
854
845
  // bildirimiyle netleştirildi). İşlem Geçmişi tablosundaki "Hedef Belge Durumu" sütununda da (kullanıcı
855
846
  // isteğiyle) AYNI etiketler kullanılır.
856
- this.sourceDocumentLifecycleOptions = [
857
- { value: SapDocumentLifecycle.Posted, label: 'Kayıtlı Müşteri Faturası' },
858
- { value: SapDocumentLifecycle.Draft, label: 'Taslak Müşteri Faturası' },
859
- ];
847
+ this.sourceDocumentLifecycleOptions = [];
860
848
  // İşlem Geçmişi - daha önce başlatılmış (işlem bekliyor/devam eden/tamamlanan/hatalı/iptal edilen) aktarımlar.
861
849
  // "Kapat"/"Listeye Dön" sonrası kullanıcının bir zincire tekrar dönüp bakabilmesi için.
862
850
  this.isTransfersLoading = false;
863
851
  this.transfers = [];
864
852
  this.isHistoryExpanded = true;
865
- // Durum sütununun header-filter/filter-row açılır listesinde okunabilir Türkçe etiketler gösterebilmesi
853
+ // Durum sütununun header-filter/filter-row açılır listesinde okunabilir etiketler gösterebilmesi
866
854
  // için (aksi halde DevExtreme ham sayısal enum değerlerini - 0/1/2/3/4 - listeler).
867
- this.transferStatusLookup = [
868
- { value: 0, text: 'İşlem Bekliyor' },
869
- { value: 1, text: 'Devam Ediyor' },
870
- { value: 2, text: 'Tamamlandı' },
871
- { value: 3, text: 'Hatalı' },
872
- { value: 4, text: 'İptal Edildi' },
873
- ];
855
+ this.transferStatusLookup = [];
874
856
  this.eligibleInvoicesRequestId = 0;
875
857
  this.transfersRequestId = 0;
876
858
  // Bu menü için üç farklı yaklaşım denendi ve hepsi DevExtreme grid hücresi içinde başarısız oldu:
@@ -885,6 +867,17 @@ class HitDocumentTransferComponent {
885
867
  // kanıtlanmış tekli "İşlemler" butonuyla (actionsTemplate) birebir aynı, basit (click) mekanizması.
886
868
  this.openActionsRow = null;
887
869
  this.actionsMenuPosition = { top: 0, left: 0 };
870
+ this.sourceDocumentLifecycleOptions = [
871
+ { value: SapDocumentLifecycle.Posted, label: this.localization.instant('FBDocumentFlow::DocumentLifecycle:Posted') },
872
+ { value: SapDocumentLifecycle.Draft, label: this.localization.instant('FBDocumentFlow::DocumentLifecycle:Draft') },
873
+ ];
874
+ this.transferStatusLookup = [
875
+ { value: 0, text: this.localization.instant('FBDocumentFlow::TransferStatus:Pending') },
876
+ { value: 1, text: this.localization.instant('FBDocumentFlow::TransferStatus:InProgress') },
877
+ { value: 2, text: this.localization.instant('FBDocumentFlow::TransferStatus:Completed') },
878
+ { value: 3, text: this.localization.instant('FBDocumentFlow::TransferStatus:Failed') },
879
+ { value: 4, text: this.localization.instant('FBDocumentFlow::TransferStatus:Cancelled') },
880
+ ];
888
881
  }
889
882
  ngOnInit() {
890
883
  this.companyService.getList({ maxResultCount: 1000, skipCount: 0, isActive: true }).subscribe(result => {
@@ -939,11 +932,21 @@ class HitDocumentTransferComponent {
939
932
  this.transfers = result.items;
940
933
  });
941
934
  }
942
- invoiceStatusLabel(row) {
935
+ invoiceStatusVariant(row) {
943
936
  if (row.targetHasDuplicateNumAtCard) {
944
- return 'Hedefte mevcut';
937
+ return 'duplicate';
938
+ }
939
+ return row.isResolved ? 'resolved' : 'unresolved';
940
+ }
941
+ invoiceStatusLabel(row) {
942
+ switch (this.invoiceStatusVariant(row)) {
943
+ case 'duplicate':
944
+ return this.localization.instant('FBDocumentFlow::InvoiceStatus:AlreadyAtTarget');
945
+ case 'resolved':
946
+ return this.localization.instant('FBDocumentFlow::InvoiceStatus:Transferable');
947
+ default:
948
+ return this.localization.instant('FBDocumentFlow::InvoiceStatus:NoMapping');
945
949
  }
946
- return row.isResolved ? 'Aktarılabilir' : 'Eşleştirme yok';
947
950
  }
948
951
  transferStatusLabel(status) {
949
952
  return this.transferStatusLookup.find(s => s.value === status)?.text ?? String(status);
@@ -955,9 +958,10 @@ class HitDocumentTransferComponent {
955
958
  if (existing) {
956
959
  const creationDate = existing.creationTime ? new Date(existing.creationTime).toLocaleString('tr-TR') : '';
957
960
  this.confirmation
958
- .warn(`Bu belge (${row.docNum}) için zaten bir taslak aktarım var (oluşturulma: ${creationDate}).`, 'FBDocumentFlow::AreYouSure', {
959
- yesText: 'Evet, Aç',
960
- cancelText: 'Hayır, Yeni Oluştur',
961
+ .warn('FBDocumentFlow::ExistingDraftTransferFound', 'FBDocumentFlow::AreYouSure', {
962
+ messageLocalizationParams: [String(row.docNum), creationDate],
963
+ yesText: 'FBDocumentFlow::YesOpenIt',
964
+ cancelText: 'FBDocumentFlow::NoCreateNew',
961
965
  })
962
966
  .subscribe(status => {
963
967
  if (status === Confirmation.Status.confirm) {
@@ -1049,12 +1053,12 @@ class HitDocumentTransferComponent {
1049
1053
  this.isHistoryExpanded = !this.isHistoryExpanded;
1050
1054
  }
1051
1055
  }
1052
- 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 });
1053
- 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" }] });
1056
+ 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 });
1057
+ 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" }] });
1054
1058
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDocumentTransferComponent, decorators: [{
1055
1059
  type: Component,
1056
- 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" }]
1057
- }], ctorParameters: function () { return [{ type: DocumentTransferService }, { type: SapCompanyProfileService }, { type: i1.Router }, { type: i3.ConfirmationService }]; }, propDecorators: { closeActionsMenu: [{
1060
+ 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" }]
1061
+ }], ctorParameters: function () { return [{ type: DocumentTransferService }, { type: SapCompanyProfileService }, { type: i1.Router }, { type: i3$1.ConfirmationService }, { type: i1$1.LocalizationService }]; }, propDecorators: { closeActionsMenu: [{
1058
1062
  type: HostListener,
1059
1063
  args: ['document:click']
1060
1064
  }] } });
@@ -1066,31 +1070,26 @@ const DOCUMENT_TRANSFER_LEG_STATUS_PENDING = 0;
1066
1070
  const DOCUMENT_TRANSFER_LEG_STATUS_SUCCESS = 1;
1067
1071
  const DOCUMENT_TRANSFER_LEG_STATUS_FAILED = 2;
1068
1072
  class HitDocumentTransferDetailComponent {
1069
- constructor(route, router, service, scenarioService, companyService, confirmation) {
1073
+ constructor(route, router, service, scenarioService, companyService, confirmation, localization) {
1070
1074
  this.route = route;
1071
1075
  this.router = router;
1072
1076
  this.service = service;
1073
1077
  this.scenarioService = scenarioService;
1074
1078
  this.companyService = companyService;
1075
1079
  this.confirmation = confirmation;
1080
+ this.localization = localization;
1076
1081
  this.isNew = false;
1077
1082
  this.newState = null;
1078
1083
  this.scenarios = [];
1079
1084
  this.scenarioId = '';
1080
1085
  this.isFetchingScenario = false;
1081
1086
  this.companies = [];
1082
- this.legBehaviors = [
1083
- { value: LegBehavior.IntermediateChain, label: 'Ara Şirket' },
1084
- { value: LegBehavior.ConstructionChain, label: 'Construction' },
1085
- ];
1087
+ this.legBehaviors = [];
1086
1088
  // Spec §14 (18.09.2026 kararı) - süreç parametrik. Aktarım henüz oluşturulmadıysa (isNew) kullanıcı bu
1087
1089
  // ekranda "Hedef Belge Durumu"nu seçebilir (kaynaktan bağımsız). Aktarım oluştuktan sonra bu alan
1088
1090
  // backend'de sabitlenir (DocumentTransfer.TargetDocumentLifecycle immutable), bu yüzden workingCopy
1089
1091
  // varken salt-okunur gösterilir. Kullanıcı isteğiyle Kaynak Belge Durumu ile AYNI etiketler kullanılır.
1090
- this.documentLifecycleOptions = [
1091
- { value: SapDocumentLifecycle.Posted, label: 'Kayıtlı Müşteri Faturası' },
1092
- { value: SapDocumentLifecycle.Draft, label: 'Taslak Müşteri Faturası' },
1093
- ];
1092
+ this.documentLifecycleOptions = [];
1094
1093
  // Spec ek karar (18.09.2026) - hedef Taslak iken Construction bacağının (OPOR→OPDN→OPCH) taban belge
1095
1094
  // zinciri taslaklar arasında çalışmaz; bu durumda kullanıcı üç belge tipinden yalnızca birini seçer.
1096
1095
  this.constructionDraftDocTypeOptions = [
@@ -1103,6 +1102,14 @@ class HitDocumentTransferDetailComponent {
1103
1102
  this.isStarting = false;
1104
1103
  this.isExecuting = false;
1105
1104
  this.isMutatingLegs = false;
1105
+ this.legBehaviors = [
1106
+ { value: LegBehavior.IntermediateChain, label: this.localization.instant('FBDocumentFlow::LegBehavior:IntermediateChain') },
1107
+ { value: LegBehavior.ConstructionChain, label: this.localization.instant('FBDocumentFlow::LegBehavior:ConstructionChain') },
1108
+ ];
1109
+ this.documentLifecycleOptions = [
1110
+ { value: SapDocumentLifecycle.Posted, label: this.localization.instant('FBDocumentFlow::DocumentLifecycle:Posted') },
1111
+ { value: SapDocumentLifecycle.Draft, label: this.localization.instant('FBDocumentFlow::DocumentLifecycle:Draft') },
1112
+ ];
1106
1113
  }
1107
1114
  ngOnInit() {
1108
1115
  this.scenarioService.getList({ maxResultCount: 1000, skipCount: 0, isActive: true }).subscribe(result => (this.scenarios = result.items));
@@ -1136,7 +1143,7 @@ class HitDocumentTransferDetailComponent {
1136
1143
  }
1137
1144
  scenarioName() {
1138
1145
  if (!this.workingCopy?.scenarioId) {
1139
- return 'Senaryosuz (yalnızca ilk hedef bacağı)';
1146
+ return this.localization.instant('FBDocumentFlow::NoScenarioOption');
1140
1147
  }
1141
1148
  return this.scenarios.find(s => s.id === this.workingCopy?.scenarioId)?.name ?? this.workingCopy.scenarioId;
1142
1149
  }
@@ -1203,7 +1210,8 @@ class HitDocumentTransferDetailComponent {
1203
1210
  const isLastLeg = leg.sequenceNo >= (this.workingCopy?.legs.length ?? 0);
1204
1211
  if (leg.legBehavior === LegBehavior.ConstructionChain) {
1205
1212
  if (this.isConstructionDraftSelectable(leg)) {
1206
- const selectedLabel = this.constructionDraftDocTypeOptions.find(o => o.value === leg.selectedConstructionDraftDocType)?.label ?? 'Seçilmedi';
1213
+ const selectedLabel = this.constructionDraftDocTypeOptions.find(o => o.value === leg.selectedConstructionDraftDocType)?.label ??
1214
+ this.localization.instant('FBDocumentFlow::NotSelected');
1207
1215
  return isLastLeg ? selectedLabel : `${selectedLabel} → OINV`;
1208
1216
  }
1209
1217
  return isLastLeg ? 'OPOR → OPDN → OPCH' : 'OPOR → OPDN → OPCH → OINV';
@@ -1409,9 +1417,7 @@ class HitDocumentTransferDetailComponent {
1409
1417
  }
1410
1418
  // Spec §9 - U_Oran tanımsızken akış bloklanmaz; ancak kullanıcının bunu bilerek onaylaması gerekir.
1411
1419
  if (this.hasMissingIncreaseRate()) {
1412
- this.confirmation
1413
- .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')
1414
- .subscribe(status => {
1420
+ this.confirmation.warn('FBDocumentFlow::IncreaseRateNotDefinedConfirm', 'FBDocumentFlow::AreYouSure').subscribe(status => {
1415
1421
  if (status === Confirmation.Status.confirm) {
1416
1422
  this.executeStartFlow();
1417
1423
  }
@@ -1471,7 +1477,15 @@ class HitDocumentTransferDetailComponent {
1471
1477
  });
1472
1478
  }
1473
1479
  statusLabel(status) {
1474
- return ['İşlem Bekliyor', 'Devam Ediyor', 'Tamamlandı', 'Hatalı', 'İptal Edildi'][status] ?? String(status);
1480
+ const keys = [
1481
+ 'FBDocumentFlow::TransferStatus:Pending',
1482
+ 'FBDocumentFlow::TransferStatus:InProgress',
1483
+ 'FBDocumentFlow::TransferStatus:Completed',
1484
+ 'FBDocumentFlow::TransferStatus:Failed',
1485
+ 'FBDocumentFlow::TransferStatus:Cancelled',
1486
+ ];
1487
+ const key = keys[status];
1488
+ return key ? this.localization.instant(key) : String(status);
1475
1489
  }
1476
1490
  // Spec §14 (18.09.2026 kararı) - süreç parametrik; Kaynak ve Hedef Belge Durumu için AYNI etiket
1477
1491
  // kullanılır (kullanıcı isteğiyle netleştirildi).
@@ -1479,10 +1493,12 @@ class HitDocumentTransferDetailComponent {
1479
1493
  if (lifecycle == null) {
1480
1494
  return '';
1481
1495
  }
1482
- return lifecycle === SapDocumentLifecycle.Draft ? 'Taslak Müşteri Faturası' : 'Kayıtlı Müşteri Faturası';
1496
+ return this.localization.instant(lifecycle === SapDocumentLifecycle.Draft ? 'FBDocumentFlow::DocumentLifecycle:Draft' : 'FBDocumentFlow::DocumentLifecycle:Posted');
1483
1497
  }
1484
1498
  legStatusLabel(status) {
1485
- return ['Bekliyor', 'Başarılı', 'Hatalı', 'Atlandı'][status] ?? String(status);
1499
+ const keys = ['FBDocumentFlow::LegStatus:Pending', 'FBDocumentFlow::LegStatus:Success', 'FBDocumentFlow::LegStatus:Failed', 'FBDocumentFlow::LegStatus:Skipped'];
1500
+ const key = keys[status];
1501
+ return key ? this.localization.instant(key) : String(status);
1486
1502
  }
1487
1503
  // Bir bacakta (özellikle Construction: OPOR→OPDN→OPCH, veya Ara Şirket'te devam OINV oluştuğunda)
1488
1504
  // BİRDEN FAZLA SAP belgesi oluşabilir; önceden yalnızca "son" belge (leg.createdDocType/createdDocEntry)
@@ -1512,12 +1528,12 @@ class HitDocumentTransferDetailComponent {
1512
1528
  return parts.join(' → ');
1513
1529
  }
1514
1530
  }
1515
- 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 });
1516
- 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" }] });
1531
+ 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 });
1532
+ 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" }] });
1517
1533
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitDocumentTransferDetailComponent, decorators: [{
1518
1534
  type: Component,
1519
- 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" }]
1520
- }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: DocumentTransferService }, { type: DocumentScenarioService }, { type: SapCompanyProfileService }, { type: i3.ConfirmationService }]; } });
1535
+ 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" }]
1536
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: DocumentTransferService }, { type: DocumentScenarioService }, { type: SapCompanyProfileService }, { type: i3$1.ConfirmationService }, { type: i1$1.LocalizationService }]; } });
1521
1537
 
1522
1538
  const routes$1 = [
1523
1539
  {