@hitsoft/uretim-yonetimi 1.0.17 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/config/enums/route-names.d.ts +3 -0
  2. package/config/index.d.ts +5 -0
  3. package/config/providers/create-barcode-route.provider.d.ts +9 -0
  4. package/config/providers/issues-for-production-route.provider.d.ts +9 -0
  5. package/config/providers/production-order-route.provider.d.ts +9 -0
  6. package/config/providers/receipt-from-production-route.provider.d.ts +9 -0
  7. package/config/providers/route.provider.d.ts +8 -0
  8. package/config/uretim-yonetimi-config.module.d.ts +8 -0
  9. package/esm2020/config/enums/index.mjs +2 -0
  10. package/esm2020/config/enums/route-names.mjs +2 -0
  11. package/esm2020/config/hitsoft-uretim-yonetimi-config.mjs +5 -0
  12. package/esm2020/config/providers/create-barcode-route.provider.mjs +19 -0
  13. package/esm2020/config/providers/index.mjs +2 -0
  14. package/esm2020/config/providers/issues-for-production-route.provider.mjs +19 -0
  15. package/esm2020/config/providers/production-order-route.provider.mjs +19 -0
  16. package/esm2020/config/providers/receipt-from-production-route.provider.mjs +19 -0
  17. package/esm2020/config/providers/route.provider.mjs +24 -0
  18. package/esm2020/config/public-api.mjs +4 -0
  19. package/esm2020/config/uretim-yonetimi-config.module.mjs +28 -0
  20. package/esm2020/hitsoft-uretim-yonetimi.mjs +5 -0
  21. package/esm2020/lib/components/hit-create-barcodes/hit-create-barcodes-routing.module.mjs +26 -0
  22. package/esm2020/lib/components/hit-create-barcodes/hit-create-barcodes.component.mjs +186 -0
  23. package/esm2020/lib/components/hit-create-barcodes/hit-create-barcodes.module.mjs +65 -0
  24. package/esm2020/lib/components/hit-issues-for-productions/hit-issues-for-productions-routing.module.mjs +26 -0
  25. package/esm2020/lib/components/hit-issues-for-productions/hit-issues-for-productions.component.mjs +252 -0
  26. package/esm2020/lib/components/hit-issues-for-productions/hit-issues-for-productions.module.mjs +68 -0
  27. package/esm2020/lib/components/hit-production-orders/hit-production-orders-routing.module.mjs +26 -0
  28. package/esm2020/lib/components/hit-production-orders/hit-production-orders.component.mjs +153 -0
  29. package/esm2020/lib/components/hit-production-orders/hit-production-orders.module.mjs +65 -0
  30. package/esm2020/lib/components/hit-receipt-from-productions/hit-receipt-from-production-routing.module.mjs +26 -0
  31. package/esm2020/lib/components/hit-receipt-from-productions/hit-receipt-from-productions.component.mjs +217 -0
  32. package/esm2020/lib/components/hit-receipt-from-productions/hit-receipt-from-productions.module.mjs +62 -0
  33. package/esm2020/lib/components/uretim-yonetimi.component.mjs +11 -0
  34. package/esm2020/lib/hit-proxy/devexpress-query-builder/devexpress-load-options.model.mjs +2 -0
  35. package/esm2020/lib/hit-proxy/devexpress-query-builder/devexpress-query-builder.mjs +54 -0
  36. package/esm2020/lib/hit-proxy/hit-create-barcodes/hit-create-barcodes.service.mjs +35 -0
  37. package/esm2020/lib/hit-proxy/hit-create-barcodes/models.mjs +3 -0
  38. package/esm2020/lib/hit-proxy/hit-issues-for-productions/hit-issues-for-productions.service.mjs +35 -0
  39. package/esm2020/lib/hit-proxy/hit-issues-for-productions/models.mjs +24 -0
  40. package/esm2020/lib/hit-proxy/hit-production-orders/hit-production-orders.service.mjs +44 -0
  41. package/esm2020/lib/hit-proxy/hit-production-orders/models.mjs +65 -0
  42. package/esm2020/lib/hit-proxy/hit-receipt-from-productions/hit-receipt-from-productions.service.mjs +30 -0
  43. package/esm2020/lib/hit-proxy/hit-receipt-from-productions/models.mjs +20 -0
  44. package/esm2020/lib/hit-proxy/models.mjs +85 -0
  45. package/esm2020/lib/uretim-yonetimi-routing.module.mjs +33 -0
  46. package/esm2020/lib/uretim-yonetimi.module.mjs +55 -0
  47. package/esm2020/public-api.mjs +6 -0
  48. package/fesm2015/hitsoft-uretim-yonetimi-config.mjs +121 -0
  49. package/fesm2015/hitsoft-uretim-yonetimi-config.mjs.map +1 -0
  50. package/fesm2015/hitsoft-uretim-yonetimi.mjs +1548 -0
  51. package/fesm2015/hitsoft-uretim-yonetimi.mjs.map +1 -0
  52. package/fesm2020/hitsoft-uretim-yonetimi-config.mjs +121 -0
  53. package/fesm2020/hitsoft-uretim-yonetimi-config.mjs.map +1 -0
  54. package/fesm2020/hitsoft-uretim-yonetimi.mjs +1526 -0
  55. package/fesm2020/hitsoft-uretim-yonetimi.mjs.map +1 -0
  56. package/index.d.ts +5 -0
  57. package/lib/components/hit-create-barcodes/hit-create-barcodes-routing.module.d.ts +7 -0
  58. package/lib/components/hit-create-barcodes/hit-create-barcodes.component.d.ts +45 -0
  59. package/lib/components/hit-create-barcodes/hit-create-barcodes.module.d.ts +16 -0
  60. package/lib/components/hit-issues-for-productions/hit-issues-for-productions-routing.module.d.ts +7 -0
  61. package/lib/components/hit-issues-for-productions/hit-issues-for-productions.component.d.ts +48 -0
  62. package/lib/components/hit-issues-for-productions/hit-issues-for-productions.module.d.ts +16 -0
  63. package/lib/components/hit-production-orders/hit-production-orders-routing.module.d.ts +7 -0
  64. package/lib/components/hit-production-orders/hit-production-orders.component.d.ts +44 -0
  65. package/lib/components/hit-production-orders/hit-production-orders.module.d.ts +16 -0
  66. package/lib/components/hit-receipt-from-productions/hit-receipt-from-production-routing.module.d.ts +7 -0
  67. package/lib/components/hit-receipt-from-productions/hit-receipt-from-productions.component.d.ts +57 -0
  68. package/lib/components/hit-receipt-from-productions/hit-receipt-from-productions.module.d.ts +16 -0
  69. package/lib/components/uretim-yonetimi.component.d.ts +5 -0
  70. package/lib/hit-proxy/devexpress-query-builder/devexpress-load-options.model.d.ts +17 -0
  71. package/lib/hit-proxy/devexpress-query-builder/devexpress-query-builder.d.ts +18 -0
  72. package/lib/hit-proxy/hit-create-barcodes/hit-create-barcodes.service.d.ts +23 -0
  73. package/lib/hit-proxy/hit-create-barcodes/models.d.ts +6 -0
  74. package/lib/hit-proxy/hit-issues-for-productions/hit-issues-for-productions.service.d.ts +17 -0
  75. package/lib/hit-proxy/hit-issues-for-productions/models.d.ts +30 -0
  76. package/lib/hit-proxy/hit-production-orders/hit-production-orders.service.d.ts +19 -0
  77. package/lib/hit-proxy/hit-production-orders/models.d.ts +85 -0
  78. package/lib/hit-proxy/hit-receipt-from-productions/hit-receipt-from-productions.service.d.ts +16 -0
  79. package/lib/hit-proxy/hit-receipt-from-productions/models.d.ts +40 -0
  80. package/lib/hit-proxy/models.d.ts +21 -0
  81. package/lib/uretim-yonetimi-routing.module.d.ts +7 -0
  82. package/lib/uretim-yonetimi.module.d.ts +17 -0
  83. package/package.json +42 -14
  84. package/{src/public-api.ts → public-api.d.ts} +0 -4
  85. package/.eslintrc.json +0 -44
  86. package/config/ng-package.json +0 -7
  87. package/config/src/enums/route-names.ts +0 -3
  88. package/config/src/providers/create-barcode-route.provider.ts +0 -21
  89. package/config/src/providers/issues-for-production-route.provider.ts +0 -21
  90. package/config/src/providers/production-order-route.provider.ts +0 -21
  91. package/config/src/providers/receipt-from-production-route.provider.ts +0 -21
  92. package/config/src/providers/route.provider.ts +0 -26
  93. package/config/src/uretim-yonetimi-config.module.ts +0 -22
  94. package/karma.conf.js +0 -44
  95. package/ng-package.json +0 -7
  96. package/src/lib/components/hit-create-barcodes/hit-create-barcodes-component.css +0 -10
  97. package/src/lib/components/hit-create-barcodes/hit-create-barcodes-routing.module.ts +0 -19
  98. package/src/lib/components/hit-create-barcodes/hit-create-barcodes.component.html +0 -80
  99. package/src/lib/components/hit-create-barcodes/hit-create-barcodes.component.ts +0 -219
  100. package/src/lib/components/hit-create-barcodes/hit-create-barcodes.module.ts +0 -39
  101. package/src/lib/components/hit-issues-for-productions/hit-issues-for-productions-routing.module.ts +0 -19
  102. package/src/lib/components/hit-issues-for-productions/hit-issues-for-productions.componenet.css +0 -7
  103. package/src/lib/components/hit-issues-for-productions/hit-issues-for-productions.component.html +0 -100
  104. package/src/lib/components/hit-issues-for-productions/hit-issues-for-productions.component.ts +0 -276
  105. package/src/lib/components/hit-issues-for-productions/hit-issues-for-productions.module.ts +0 -46
  106. package/src/lib/components/hit-production-orders/hit-production-orders-routing.module.ts +0 -19
  107. package/src/lib/components/hit-production-orders/hit-production-orders.component.html +0 -79
  108. package/src/lib/components/hit-production-orders/hit-production-orders.component.ts +0 -213
  109. package/src/lib/components/hit-production-orders/hit-production-orders.module.ts +0 -39
  110. package/src/lib/components/hit-receipt-from-productions/hit-receipt-from-production-component.css +0 -10
  111. package/src/lib/components/hit-receipt-from-productions/hit-receipt-from-production-routing.module.ts +0 -19
  112. package/src/lib/components/hit-receipt-from-productions/hit-receipt-from-productions.component.html +0 -106
  113. package/src/lib/components/hit-receipt-from-productions/hit-receipt-from-productions.component.ts +0 -259
  114. package/src/lib/components/hit-receipt-from-productions/hit-receipt-from-productions.module.ts +0 -38
  115. package/src/lib/components/uretim-yonetimi.component.ts +0 -9
  116. package/src/lib/hit-proxy/devexpress-query-builder/devexpress-load-options.model.ts +0 -20
  117. package/src/lib/hit-proxy/devexpress-query-builder/devexpress-query-builder.ts +0 -51
  118. package/src/lib/hit-proxy/hit-create-barcodes/hit-create-barcodes.service.ts +0 -41
  119. package/src/lib/hit-proxy/hit-create-barcodes/models.ts +0 -6
  120. package/src/lib/hit-proxy/hit-issues-for-productions/hit-issues-for-productions.service.ts +0 -39
  121. package/src/lib/hit-proxy/hit-issues-for-productions/models.ts +0 -42
  122. package/src/lib/hit-proxy/hit-production-orders/hit-production-orders.service.ts +0 -60
  123. package/src/lib/hit-proxy/hit-production-orders/models.ts +0 -137
  124. package/src/lib/hit-proxy/hit-receipt-from-productions/hit-receipt-from-productions.service.ts +0 -32
  125. package/src/lib/hit-proxy/hit-receipt-from-productions/models.ts +0 -44
  126. package/src/lib/hit-proxy/models.ts +0 -116
  127. package/src/lib/uretim-yonetimi-routing.module.ts +0 -30
  128. package/src/lib/uretim-yonetimi.component.spec.ts +0 -24
  129. package/src/lib/uretim-yonetimi.module.ts +0 -52
  130. package/src/lib/uretim-yonetimi.service.spec.ts +0 -15
  131. package/src/test.ts +0 -29
  132. package/tsconfig.lib.json +0 -20
  133. package/tsconfig.lib.prod.json +0 -10
  134. package/tsconfig.spec.json +0 -17
  135. /package/config/{src/enums/index.ts → enums/index.d.ts} +0 -0
  136. /package/config/{src/providers/index.ts → providers/index.d.ts} +0 -0
  137. /package/config/{src/public-api.ts → public-api.d.ts} +0 -0
@@ -1,276 +0,0 @@
1
- import {ABP, ListService, PagedResultDto, TrackByService} from '@abp/ng.core';
2
- import {Confirmation, ConfirmationService} from '@abp/ng.theme.shared';
3
- import {DateAdapter} from '@abp/ng.theme.shared/extensions';
4
- import {AfterViewInit, ChangeDetectionStrategy, Component, OnInit, ViewChild, NgZone} from '@angular/core';
5
- import {FormBuilder} from '@angular/forms';
6
- import {NgbDateAdapter} from '@ng-bootstrap/ng-bootstrap';
7
- import {
8
- HitIssuesForProductionsService
9
- } from "../../hit-proxy/hit-issues-for-productions/hit-issues-for-productions.service";
10
- import {HitProductionOrdersService} from "../../hit-proxy/hit-production-orders/hit-production-orders.service";
11
- import {
12
- BatchNumber,
13
- IssueLine,
14
- IssuesForProductionPostDto
15
- } from "../../hit-proxy/hit-issues-for-productions/models";
16
- import {GetProductionOrderDto} from "../../hit-proxy/hit-receipt-from-productions/models";
17
- import {DxDataGridComponent, DxTextBoxComponent} from "devextreme-angular";
18
- import {Warehouse} from "../../hit-proxy/hit-production-orders/models";
19
- import {HitHelper} from "../../hit-proxy/models";
20
-
21
- @Component({
22
- selector: 'lib-hit-issues-for-productions',
23
- changeDetection: ChangeDetectionStrategy.Default,
24
- providers: [ListService, {provide: NgbDateAdapter, useClass: DateAdapter}],
25
- templateUrl: './hit-issues-for-productions.component.html',
26
- styleUrls: ['./hit-issues-for-productions.componenet.css'],
27
- })
28
- export class HitIssuesForProductionsComponent implements OnInit, AfterViewInit {
29
- @ViewChild('barkodNumarasiRef', {static: false}) nmbBoxBarkodNumarasi: DxTextBoxComponent;
30
- @ViewChild('hammaddeQRRef', {static: false}) nmbBoxHammaddeQR: DxTextBoxComponent;
31
- @ViewChild('getProductionOrderLineGrid', {static: false}) dataGrid: DxDataGridComponent;
32
-
33
- options: Partial<Confirmation.Options> = {
34
- hideYesBtn: true,
35
- cancelText: 'Kapat',
36
- dismissible: false,
37
- };
38
-
39
- constructor(
40
- private ngZone: NgZone,
41
- public readonly list: ListService,
42
- public readonly track: TrackByService,
43
- public readonly service: HitIssuesForProductionsService,
44
- private confirmation: ConfirmationService,
45
- private fb: FormBuilder,
46
- private productionOrdersService: HitProductionOrdersService,
47
- ) {
48
- }
49
-
50
- ngAfterViewInit() {
51
- this.focusBarkodInput();
52
- }
53
-
54
- ngOnInit(): void {
55
- this.clearAll();
56
- this.getWarehouses();
57
- }
58
-
59
- isLoading: boolean = false;
60
- isEmriBarkoduGecerliMi: boolean = false;
61
- searcheBasildiMi: boolean = false;
62
- isEmriBarkodu: number;
63
- hammaddeQR: string = '';
64
- productionOrder: GetProductionOrderDto;
65
- issuesForProductionPost: IssuesForProductionPostDto;
66
- unitOfMeasure: string;
67
-
68
- async getProductionOrder() {
69
- if (!this.isEmriBarkodu) {
70
- this.focusBarkodInput();
71
- return;
72
- }
73
-
74
- this.isLoading = true;
75
- this.isEmriBarkoduGecerliMi = false;
76
- this.searcheBasildiMi = true;
77
-
78
- this.productionOrdersService.get(this.isEmriBarkodu).subscribe({
79
- next: (response) => {
80
- if (response.isSuccessful) {
81
- this.productionOrder = response.items;
82
- this.isEmriBarkoduGecerliMi = true;
83
- this.unitOfMeasure = response.items.unitOfMeasurement;
84
-
85
- const issueLines: IssueLine[] = this.productionOrder.getProductionOrderLine.map((issueLine) => {
86
- issueLine.quantity = 0;
87
- const newIssueLine = new IssueLine();
88
- newIssueLine.ItemCode = issueLine.itemCode;
89
- newIssueLine.BaseLine = issueLine.lineNum;
90
- newIssueLine.WarehouseCode = issueLine.warehouse;
91
- newIssueLine.BaseEntry = issueLine.absoluteEntry;
92
- newIssueLine.BatchNumbers = [new BatchNumber(issueLine.batchNumber, issueLine.plannedQty)];
93
- return newIssueLine;
94
- });
95
- this.issuesForProductionPost = new IssuesForProductionPostDto(issueLines);
96
-
97
- this.ngZone.run(() => {
98
- setTimeout(() => {
99
- this.nmbBoxHammaddeQR.instance.focus();
100
- }, 0);
101
- });
102
- } else {
103
- this.isEmriBarkoduGecerliMi = false;
104
- this.searcheBasildiMi = false;
105
- }
106
- },
107
- error: (e) => {
108
- this.isLoading = false;
109
- this.isEmriBarkoduGecerliMi = false;
110
- this.searcheBasildiMi = false;
111
- this.confirmation.status$.subscribe({
112
- next: () => {
113
- this.clearAll();
114
- }
115
- });
116
- this.focusBarkodInput();
117
- }
118
- });
119
-
120
- this.isLoading = false;
121
- }
122
-
123
- async parseAndAddQR() {
124
- if (!this.hammaddeQR) {
125
- this.focusQRInput();
126
- return;
127
- }
128
- this.isLoading = true;
129
-
130
- const parsed = HitHelper.parseQR(this.hammaddeQR);
131
- if (!parsed){
132
- this.confirmation.error('', 'Geçersiz barkod!', this.options).subscribe({
133
- next: () => {
134
- this.hammaddeQR = '';
135
- this.focusQRInput();
136
- }
137
- });
138
- return;
139
- }
140
-
141
- this.service.get(parsed.chemicalCode, this.productionOrder.absoluteEntry.toString()).subscribe({
142
- next: (response) => {
143
- if (response.isSuccessful) {
144
- const issueLine = this.productionOrder.getProductionOrderLine.find((x) => x.itemCode === parsed.chemicalCode);
145
- if(issueLine == null){
146
- this.confirmation.error('', "Bu iş emrinde " + parsed.chemicalCode + " kodlu stok bulunmuyor. ", this.options);
147
- }
148
- const issueLineForPost = this.issuesForProductionPost.DocumentLines.find((x) => x.ItemCode === parsed.chemicalCode);
149
- if (issueLine) {
150
- if (issueLine.issuedQty + issueLine.quantity + parsed.weightKg > issueLine.plannedQty + (issueLine.plannedQty * 0.02)) {
151
- this.confirmation.error('', 'Toplanan miktar planlanan miktarı aşıyor!', this.options);
152
- return;
153
- }
154
- issueLine.quantity += parsed.weightKg;
155
- issueLine.batchNumber = parsed.lotNumber;
156
- issueLineForPost.Quantity += parsed.weightKg;
157
-
158
- if (issueLineForPost.IsQRReady) {
159
- issueLineForPost.BatchNumbers.push(new BatchNumber(parsed.lotNumber, parsed.weightKg));
160
- } else {
161
-
162
- issueLineForPost.BatchNumbers = [new BatchNumber(parsed.lotNumber, parsed.weightKg)];
163
- issueLineForPost.IsQRReady = true;
164
- }
165
- }
166
- }
167
- },
168
- error: (e) => {
169
- this.confirmation.status$.subscribe({
170
- next: () => {
171
- this.focusQRInput();
172
- this.hammaddeQR = '';
173
- this.isLoading = false;
174
- }
175
- });
176
- },
177
- complete: () => {
178
- this.focusQRInput();
179
- this.hammaddeQR = '';
180
- this.isLoading = false;
181
- }
182
- });
183
- }
184
-
185
- async postIssuesForProduction() {
186
- if (!this.issuesForProductionPost) {
187
- this.focusBarkodInput();
188
- return;
189
- }
190
- this.isLoading = true;
191
- this.isEmriBarkoduGecerliMi = false;
192
- this.issuesForProductionPost.DocumentLines.forEach((x) => {
193
- x.BaseEntry = this.productionOrder.absoluteEntry;
194
- });
195
- this.issuesForProductionPost.DocumentLines = this.issuesForProductionPost.DocumentLines.filter((x) => x.IsQRReady);
196
-
197
- this.service.post(this.issuesForProductionPost).subscribe({
198
- next: (response) => {
199
- if (response.isSuccessful) {
200
- this.confirmation.success('', 'İşlem başarılı!', this.options).subscribe(() => {
201
- this.clearAll();
202
- });
203
- } else {
204
- this.confirmation.status$.subscribe({
205
- next: () => {
206
- this.focusQRInput();
207
- }
208
- });
209
- }
210
- },
211
- error: (e) => {
212
- this.confirmation.status$.subscribe({
213
- next: () => {
214
- this.clearAll();
215
- this.focusQRInput();
216
- }
217
- });
218
- }
219
- });
220
-
221
- this.isLoading = false;
222
- }
223
-
224
- clearAll() {
225
- this.isEmriBarkoduGecerliMi = false;
226
- this.searcheBasildiMi = false;
227
- this.issuesForProductionPost = null;
228
- this.isEmriBarkodu = null;
229
- this.hammaddeQR = '';
230
- this.productionOrder = null;
231
- this.focusBarkodInput();
232
- this.unitOfMeasure = null;
233
- }
234
-
235
- warehouses: Warehouse[] = [];
236
-
237
- getWarehouses() {
238
- this.isLoading = true;
239
- this.productionOrdersService.getWarehouses().subscribe({
240
- next: (result) => {
241
- if (result.items) {
242
- this.warehouses = result.items.slice();
243
- }
244
- }
245
- });
246
- this.isLoading = false;
247
- }
248
-
249
- protected readonly HitHelper = HitHelper;
250
-
251
- onRowPrepared(e: any): void {
252
- if (e.rowType === 'data') {
253
- if (e.data.plannedQty <= e.data.issuedQty) {
254
- e.rowElement.classList.add('hit-grey-row');
255
- } else if (e.data.quantity > 0) {
256
- e.rowElement.classList.add('hit-green-row');
257
- }
258
- }
259
- }
260
-
261
- focusQRInput() {
262
- this.ngZone.run(() => {
263
- setTimeout(() => {
264
- this.nmbBoxHammaddeQR.instance.focus();
265
- }, 0);
266
- });
267
- }
268
-
269
- focusBarkodInput() {
270
- this.ngZone.run(() => {
271
- setTimeout(() => {
272
- this.nmbBoxBarkodNumarasi.instance.focus();
273
- }, 0);
274
- });
275
- }
276
- }
@@ -1,46 +0,0 @@
1
- import {CoreModule} from '@abp/ng.core';
2
- import {ThemeSharedModule} from '@abp/ng.theme.shared';
3
- import {NgModule} from '@angular/core';
4
- import {
5
- NgbCollapseModule,
6
- NgbDatepickerModule,
7
- NgbDropdownModule,
8
- } from '@ng-bootstrap/ng-bootstrap';
9
- import {NgxValidateCoreModule} from '@ngx-validate/core';
10
- import {CommercialUiModule} from '@volo/abp.commercial.ng.ui';
11
- import {PageModule} from '@abp/ng.components/page';
12
- import {HitIssuesForProductionsComponent} from "./hit-issues-for-productions.component";
13
- import {HitIssuesForProductionsRoutingModule} from "./hit-issues-for-productions-routing.module";
14
- import {
15
- DevExtremeModule,
16
- DxButtonModule,
17
- DxDataGridModule,
18
- DxLoadIndicatorModule,
19
- DxTextBoxModule
20
- } from "devextreme-angular";
21
-
22
- @NgModule({
23
- declarations: [HitIssuesForProductionsComponent],
24
- imports: [
25
- HitIssuesForProductionsRoutingModule,
26
- CoreModule,
27
- ThemeSharedModule,
28
- CommercialUiModule,
29
- NgxValidateCoreModule,
30
- NgbCollapseModule,
31
- NgbDatepickerModule,
32
- NgbDropdownModule,
33
- PageModule,
34
- DxTextBoxModule,
35
- DxButtonModule,
36
- DxDataGridModule,
37
- DxLoadIndicatorModule,
38
- DevExtremeModule
39
- ],
40
- })
41
- export class HitIssuesForProductionModule {
42
- }
43
-
44
- export function loadHitIssuesForProductionsAsChild() {
45
- return Promise.resolve(HitIssuesForProductionModule);
46
- }
@@ -1,19 +0,0 @@
1
- import {AuthGuard, PermissionGuard} from '@abp/ng.core';
2
- import {NgModule} from '@angular/core';
3
- import {RouterModule, Routes} from '@angular/router';
4
- import {HitProductionOrdersComponent} from "./hit-production-orders.component";
5
-
6
- const routes: Routes = [
7
- {
8
- path: '',
9
- component: HitProductionOrdersComponent,
10
- canActivate: [AuthGuard, PermissionGuard],
11
- },
12
- ];
13
-
14
- @NgModule({
15
- imports: [RouterModule.forChild(routes)],
16
- exports: [RouterModule],
17
- })
18
- export class HitProductionOrdersRoutingModule {
19
- }
@@ -1,79 +0,0 @@
1
- <abp-page [breadcrumb]="false">
2
- <abp-page-toolbar-container class="col">
3
- <div class="row">
4
- <h3 class="page-title">
5
- {{ 'UretimYonetimi::ProductionOrders' | abpLocalization }}
6
- </h3>
7
- </div>
8
- <div class="row text-lg-end pt-2">
9
- <div class="col-8">
10
- <button class="btn btn-success btn-sm" type="button" (click)="patchProductionOrder()"
11
- [disabled]="!isEmriBarkoduGecerliMi">
12
- <i class="fa fa-plus me-1"></i>
13
- {{ 'UretimYonetimi::ProductionOrders.Create' | abpLocalization }}
14
- </button>
15
- </div>
16
- <div class="col-4">
17
- <button class="btn btn-warning btn-sm" type="button" (click)="clearAll()">
18
- <i class="fa fa-broom me-1"></i>
19
- {{ 'UretimYonetimi::ProductionOrders.Clean' | abpLocalization }}
20
- </button>
21
- </div>
22
- </div>
23
- </abp-page-toolbar-container>
24
- <div class="card mt-2">
25
- <div class="card-body">
26
- <div style="display: flex; align-items: center;">
27
- <dx-number-box #barkodNumarasiRef class="me-1" style="width:100%;"
28
- [label]="'UretimYonetimi::ProductionOrders.WorkOrderNo' | abpLocalization"
29
- [(value)]="isEmriBarkodu" (onEnterKey)="getProductionOrderDetails()"
30
- [disabled]="searcheBasildiMi || isEmriBarkoduGecerliMi">
31
- </dx-number-box>
32
- <dx-button style="margin-top: 7.5px;" icon="search" type="default" (onClick)="getProductionOrderDetails()"
33
- [disabled]="searcheBasildiMi || isEmriBarkoduGecerliMi">
34
- </dx-button>
35
- </div>
36
- <div class="mt-3" *ngIf="isEmriBarkoduGecerliMi">
37
- <dx-text-box style="width:100%;"
38
- [label]="'UretimYonetimi::ProductionOrders.WorkOrderName' | abpLocalization"
39
- [(value)]="productionOrder.productDescription"
40
- [disabled]="true">
41
- </dx-text-box>
42
- <dx-number-box style="width:100%;"
43
- [label]="'UretimYonetimi::ProductionOrders.PlannedQty' | abpLocalization"
44
- format="#,##0.00"
45
- [(value)]="productionOrder.plannedQuantity"
46
- [disabled]="true">
47
- </dx-number-box>
48
- <div style="display: flex; align-items: center;">
49
- <dx-text-box #hammaddeQRRef style="width:100%;" class="me-1"
50
- [label]="'UretimYonetimi::ProductionOrders.QrBarcode' | abpLocalization"
51
- [maxLength]="256"
52
- [(value)]="hammaddeQR" (onEnterKey)="parseAndAddQR()"
53
- [placeholder]="'UretimYonetimi::ProductionOrders.QrBarcode.Placeholder' | abpLocalization"
54
- [disabled]="qrOkutulduMu">
55
- </dx-text-box>
56
- <dx-button style="margin-top: 7.5px;" icon="plus" type="default" (onClick)="parseAndAddQR()"
57
- [disabled]="qrOkutulduMu">
58
- </dx-button>
59
- </div>
60
-
61
- <div *ngIf="productionOrderList.ProductionOrderLines?.length" class="mt-3">
62
- <dx-data-grid [dataSource]="productionOrderList.ProductionOrderLines" [showBorders]="true"
63
- [columnAutoWidth]="true" (onRowRemoved)="qrOkutulduMu=false">
64
- <dxo-editing mode="row" [allowUpdating]="true" [allowDeleting]="true" [useIcons]="true">
65
- </dxo-editing>
66
- <dxi-column dataField="ItemName" [caption]="'UretimYonetimi::ProductionOrders.ItemName' | abpLocalization" [allowEditing]="false"></dxi-column>
67
- <dxi-column dataField="Quantity" [caption]="'UretimYonetimi::ProductionOrders.Quantity' | abpLocalization" dataType="number" [format]="'#0.00 kg'"></dxi-column>
68
- <dxi-column dataField="WarehouseCode" [caption]="'UretimYonetimi::ProductionOrders.Warehouse' | abpLocalization" [width]="150" [allowSorting]="false">
69
- <dxo-lookup [dataSource]="warehouses" displayExpr="whsName" valueExpr="whsCode">
70
- </dxo-lookup>
71
- </dxi-column>
72
- <dxi-column dataField="ItemCode" [caption]="'UretimYonetimi::ProductionOrders.ItemCode' | abpLocalization" [allowEditing]="false"></dxi-column>
73
- <dxi-column dataField="BatchNumber" [caption]="'UretimYonetimi::ProductionOrders.BatchNumber' | abpLocalization" [allowEditing]="false"></dxi-column>
74
- </dx-data-grid>
75
- </div>
76
- </div>
77
- </div>
78
- </div>
79
- </abp-page>
@@ -1,213 +0,0 @@
1
- import {ABP, ListService, PagedResultDto, TrackByService} from '@abp/ng.core';
2
- import {Confirmation, ConfirmationService} from '@abp/ng.theme.shared';
3
- import {DateAdapter} from '@abp/ng.theme.shared/extensions';
4
- import {
5
- AfterViewInit,
6
- ChangeDetectionStrategy,
7
- Component,
8
- NgZone,
9
- OnInit,
10
- ViewChild,
11
- } from '@angular/core';
12
- import {FormBuilder, FormControl, FormGroup, Validators} from '@angular/forms';
13
- import {NgbDateAdapter} from '@ng-bootstrap/ng-bootstrap';
14
- import {filter, finalize, switchMap, tap} from 'rxjs/operators';
15
- import {HitProductionOrdersService} from '../../hit-proxy/hit-production-orders/hit-production-orders.service';
16
- import {DevExtremeModule, DxNumberBoxComponent, DxTextBoxComponent} from 'devextreme-angular';
17
- import {GetProductionOrderDto} from '../../hit-proxy/hit-receipt-from-productions/models';
18
- import {
19
- BatchNumber,
20
- ProductionOrderLine,
21
- ProductionOrderLineForListing,
22
- ProductionOrderList,
23
- ProductionOrderPatchDto,
24
- TuketilenHammadde,
25
- Warehouse,
26
- } from '../../hit-proxy/hit-production-orders/models';
27
- import {firstValueFrom} from 'rxjs';
28
- import {HitHelper} from '../../hit-proxy/models';
29
-
30
- @Component({
31
- selector: 'lib-hit-production-orders',
32
- changeDetection: ChangeDetectionStrategy.Default,
33
- providers: [ListService, {provide: NgbDateAdapter, useClass: DateAdapter}],
34
- templateUrl: './hit-production-orders.component.html',
35
- styles: [],
36
- })
37
- export class HitProductionOrdersComponent implements AfterViewInit, OnInit {
38
- protected readonly HitHelper = HitHelper;
39
- @ViewChild('barkodNumarasiRef', {static: false}) nmbBoxBarkodNumarasi: DxTextBoxComponent;
40
- @ViewChild('hammaddeQRRef', {static: false}) nmbBoxHammaddeQR: DxTextBoxComponent;
41
- options: Partial<Confirmation.Options> = {
42
- hideYesBtn: true,
43
- cancelText: 'Kapat',
44
- dismissible: false,
45
- };
46
-
47
- constructor(
48
- private ngZone: NgZone,
49
- public readonly list: ListService,
50
- public readonly track: TrackByService,
51
- public readonly service: HitProductionOrdersService,
52
- private confirmation: ConfirmationService,
53
- private fb: FormBuilder,
54
- private productionOrdersService: HitProductionOrdersService
55
- ) {
56
- }
57
-
58
- ngOnInit(): void {
59
- this.getWarehouses();
60
- }
61
-
62
- ngAfterViewInit() {
63
- this.nmbBoxBarkodNumarasi.instance.focus();
64
- }
65
-
66
- isLoading: boolean = false;
67
- isEmriBarkoduGecerliMi: boolean = false;
68
- searcheBasildiMi: boolean = false;
69
- isEmriBarkodu: number;
70
- hammaddeQR: string = '';
71
- productionOrder: GetProductionOrderDto;
72
- productionOrderPatch: ProductionOrderPatchDto;
73
- productionOrderList: ProductionOrderList;
74
- qrOkutulduMu: boolean = false;
75
- unitOfMeasure: string;
76
-
77
- async getProductionOrderDetails() {
78
- if (!this.isEmriBarkodu) {
79
- return;
80
- }
81
-
82
- try {
83
- this.isLoading = true;
84
- this.isEmriBarkoduGecerliMi = false;
85
- this.searcheBasildiMi = true;
86
-
87
- const response = await firstValueFrom(this.productionOrdersService.get(this.isEmriBarkodu));
88
- const response2 = await this.productionOrdersService.get2(this.isEmriBarkodu).subscribe();
89
-
90
- if (response?.items) {
91
- this.unitOfMeasure = response.items.unitOfMeasurement;
92
- this.productionOrder = response.items;
93
- this.productionOrderList = new ProductionOrderList();
94
- this.isEmriBarkoduGecerliMi = true;
95
- this.ngZone.run(() => {
96
- setTimeout(() => {
97
- this.nmbBoxHammaddeQR.instance.focus();
98
- }, 0);
99
- });
100
- }
101
- } catch (error) {
102
- this.isEmriBarkoduGecerliMi = false;
103
- this.searcheBasildiMi = false;
104
- } finally {
105
- this.isLoading = false;
106
- }
107
- }
108
-
109
- async parseAndAddQR() {
110
- if (!this.hammaddeQR) {
111
- return;
112
- }
113
-
114
- const parsed = HitHelper.parseQR(this.hammaddeQR);
115
-
116
- if (!parsed) {
117
- this.confirmation.error('', 'Geçersiz barkod!', this.options).subscribe({
118
- next: () => {
119
- this.hammaddeQR = '';
120
- this.nmbBoxHammaddeQR.instance.focus();
121
- },
122
- });
123
- return;
124
- }
125
-
126
- const response = await firstValueFrom(
127
- this.service.getWareHouseInfo(
128
- parsed.chemicalCode,
129
- this.productionOrder.absoluteEntry.toString()
130
- )
131
- );
132
-
133
- const response2 = await firstValueFrom(this.service.getItemInfo(parsed.chemicalCode));
134
-
135
- if (response?.items && response.isSuccessful) {
136
- const productionOrderLineForListing = new ProductionOrderLineForListing(
137
- parsed.chemicalCode,
138
- response2.items.itemName,
139
- response.items.selectedWarehouse,
140
- parsed.weightKg,
141
- parsed.weightKg,
142
- parsed.lotNumber,
143
- 202,
144
- this.productionOrder.absoluteEntry,
145
- 0
146
- );
147
- this.productionOrderList.ProductionOrderLines.push(productionOrderLineForListing);
148
-
149
- this.qrOkutulduMu = true;
150
- }
151
-
152
- this.hammaddeQR = '';
153
- }
154
-
155
- patchProductionOrder() {
156
- this.isLoading = true;
157
- this.isEmriBarkoduGecerliMi = false;
158
- const productionOrderLines: ProductionOrderLine[] =
159
- this.productionOrderList.ProductionOrderLines.map(productionLine => {
160
- return new ProductionOrderLine(
161
- productionLine.ItemCode,
162
- productionLine.WarehouseCode,
163
- productionLine.Quantity,
164
- productionLine.Quantity,
165
- productionLine.Quantity,
166
- '',
167
- productionLine.BaseEntry,
168
- 0,
169
- [new BatchNumber(productionLine.BatchNumber, productionLine.Quantity)]
170
- );
171
- });
172
- this.productionOrderPatch = new ProductionOrderPatchDto(productionOrderLines);
173
-
174
- this.service.patch(this.productionOrderPatch).subscribe({
175
- next: result => {
176
- if (result.isSuccessful) {
177
- this.confirmation.success('', 'İşlem başarılı!', this.options).subscribe(() => {
178
- });
179
- }
180
- },
181
- });
182
- this.clearAll();
183
- this.isLoading = false;
184
- }
185
-
186
- clearAll() {
187
- this.isEmriBarkoduGecerliMi = false;
188
- this.searcheBasildiMi = false;
189
- this.qrOkutulduMu = false;
190
- this.productionOrderPatch = null;
191
- this.isEmriBarkodu = null;
192
- this.hammaddeQR = '';
193
- this.productionOrder = null;
194
- this.unitOfMeasure = null;
195
- this.ngZone.run(() => {
196
- setTimeout(() => {
197
- this.nmbBoxBarkodNumarasi.instance.focus();
198
- }, 0);
199
- });
200
- }
201
-
202
- warehouses: Warehouse[] = [];
203
-
204
- getWarehouses() {
205
- this.isLoading = true;
206
- this.service.getWarehouses().subscribe(result => {
207
- if (result.items) {
208
- this.warehouses = result.items.slice();
209
- }
210
- });
211
- this.isLoading = false;
212
- }
213
- }
@@ -1,39 +0,0 @@
1
- import {CoreModule} from '@abp/ng.core';
2
- import {ThemeSharedModule} from '@abp/ng.theme.shared';
3
- import {NgModule} from '@angular/core';
4
- import {
5
- NgbCollapseModule,
6
- NgbDatepickerModule,
7
- NgbDropdownModule,
8
- } from '@ng-bootstrap/ng-bootstrap';
9
- import {NgxValidateCoreModule} from '@ngx-validate/core';
10
- import {CommercialUiModule} from '@volo/abp.commercial.ng.ui';
11
- import {PageModule} from '@abp/ng.components/page';
12
- import {HitProductionOrdersComponent} from "./hit-production-orders.component";
13
- import {HitProductionOrdersRoutingModule} from "./hit-production-orders-routing.module";
14
- import {DxButtonModule, DxDataGridModule, DxNumberBoxModule, DxTextBoxModule} from "devextreme-angular";
15
-
16
- @NgModule({
17
- declarations: [HitProductionOrdersComponent],
18
- imports: [
19
- HitProductionOrdersRoutingModule,
20
- CoreModule,
21
- ThemeSharedModule,
22
- CommercialUiModule,
23
- NgxValidateCoreModule,
24
- NgbCollapseModule,
25
- NgbDatepickerModule,
26
- NgbDropdownModule,
27
- PageModule,
28
- DxTextBoxModule,
29
- DxButtonModule,
30
- DxDataGridModule,
31
- DxNumberBoxModule
32
- ],
33
- })
34
- export class HitProductionOrderModule {
35
- }
36
-
37
- export function loadHitProductionOrdersAsChild() {
38
- return Promise.resolve(HitProductionOrderModule);
39
- }
@@ -1,10 +0,0 @@
1
- .mobilde-gorunur {
2
- display: none;
3
- }
4
-
5
- /* Ekran genişliği 768px veya daha küçükse (mobil cihazlar) görünür yap */
6
- @media (max-width: 768px) {
7
- .mobilde-gorunur {
8
- display: block; /* ya da inline-block / flex — ne gerekiyorsa */
9
- }
10
- }