96 lines
4.4 KiB
Markdown
96 lines
4.4 KiB
Markdown
# WPQ Follow-up Datagrid Algoritması
|
||
|
||
Bu doküman, `resources/views/admin/type/wpq-follow-up/datagrid-script.blade.php` dosyasındaki DataGrid içerisinde yer alan **Diameter (Çap)** ve **Thickness (Kalınlık)** alanlarının değişim mantığını ve hesaplama algoritmasını açıklar.
|
||
|
||
## Algoritma Özeti
|
||
|
||
Süreç iki ana kola ayrılır:
|
||
|
||
### 1. Diameter (Çap) Değişikliği Algoritması
|
||
|
||
1. Kullanıcı **Diameter** değerini değiştirir.
|
||
2. Sistem, satırdaki `grade_1` değerini kullanarak sunucudan malzeme detayını (JSON) çeker.
|
||
3. Gelen `short_name` (Kısa Ad) değerine göre malzeme tipi belirlenir:
|
||
* **Çelik (AS, SS, CS) veya Nikel (NI) ise:**
|
||
* Değer <= 25 ise: `min = değer`, `max = değer * 2`
|
||
* 25 < Değer <= 150 ise: `min = değer * 0.5`, `max = değer * 2`
|
||
* Değer > 150 ise: `min = değer * 0.5`, `max = Boş`
|
||
* **Alüminyum (AL) ise:**
|
||
* Değer <= 125 ise: `min = değer * 0.5`, `max = değer * 2.5`
|
||
* Değer > 125 ise: `min = 0.5 * değer`, `max = 2.5 * değer`
|
||
4. Hesaplanan `min` ve `max` değerleri tablodaki `dia_min` ve `dia_max` hücrelerine yazılır.
|
||
|
||
### 2. Thickness (Kalınlık) Değişikliği Algoritması
|
||
|
||
1. Kullanıcı **Thickness** hücresine odaklandığında (FocusIn):
|
||
* `wps_no` ile sunucudan veri çekilir, `min/max_thick` değerleri `localStorage`'a kaydedilir (Bu adım kodda var ancak hesaplamada doğrudan kullanılmamış gibi görünüyor, yine de akışta mevcuttur).
|
||
2. Kullanıcı **Thickness** değerini değiştirdiğinde:
|
||
3. Sistem `grade_1` ile malzeme detayını sunucudan çeker.
|
||
4. `short_name` değerine göre limitler hesaplanır:
|
||
* **Çelik (AS, SS, CS) veya Nikel (NI) ise:**
|
||
* Değer <= 3 ise: `min = değer`, `max = değer * 2`
|
||
* 3 < Değer <= 12 ise: `min = 3`, `max = değer * 2`
|
||
* Değer > 12 ise: `min = 5`, `max = Boş`
|
||
* **Alüminyum (AL) ise:**
|
||
* Değer <= 6 ise: `min = değer * 0.7`, `max = değer * 2.5`
|
||
* 6 < Değer <= 15 ise: `min = 6`, `max = 40`
|
||
5. Hesaplanan değerler `thk_min` ve `thk_max` hücrelerine yazılır.
|
||
|
||
---
|
||
|
||
## Akış Şeması (Flowchart)
|
||
|
||
```mermaid
|
||
flowchart TD
|
||
Start(("Başla")) --> CheckField{"Alan Hangisi?"}
|
||
|
||
%% --- DIAMETER BRANCH ---
|
||
CheckField -- "Diameter (Çap)" --> DiaFetch["Get JSON: materials/steel_grade (grade_1)"]
|
||
DiaFetch --> CheckMaterialDia{"Malzeme Kısa Adı\n(short_name)"}
|
||
|
||
%% Steel/Nickel Logic (Diameter)
|
||
CheckMaterialDia -- "AS, SS, CS, NI" --> DiaSteelRange{"Değer Aralığı?"}
|
||
DiaSteelRange -- "<= 25" --> DiaCalc1["Min = Değer\nMax = Değer * 2"]
|
||
DiaSteelRange -- "25 < x <= 150" --> DiaCalc2["Min = 0.5 * Değer\nMax = Değer * 2"]
|
||
DiaSteelRange -- "> 150" --> DiaCalc3["Min = 0.5 * Değer\nMax = Boş"]
|
||
|
||
%% Aluminium Logic (Diameter)
|
||
CheckMaterialDia -- "AL" --> DiaAlRange{"Değer Aralığı?"}
|
||
DiaAlRange -- "<= 125" --> DiaCalc4["Min = Değer * 0.5\nMax = Değer * 2.5"]
|
||
DiaAlRange -- "> 125" --> DiaCalc5["Min = 0.5 * Değer\nMax = 2.5 * Değer"]
|
||
|
||
%% Finalize Diameter
|
||
DiaCalc1 --> SetDiaCells["Tabloyu Güncelle:\ndia_min, dia_max"]
|
||
DiaCalc2 --> SetDiaCells
|
||
DiaCalc3 --> SetDiaCells
|
||
DiaCalc4 --> SetDiaCells
|
||
DiaCalc5 --> SetDiaCells
|
||
|
||
%% --- THICKNESS BRANCH ---
|
||
CheckField -- "Thickness (Kalınlık)" --> ThkFocus["On Focus: WPS detaylarını\nlocalStorage'a kaydet"]
|
||
ThkFocus --> ThkChange["Kullanıcı Değer Değiştirdi"]
|
||
ThkChange --> ThkFetch["Get JSON: materials/steel_grade (grade_1)"]
|
||
ThkFetch --> CheckMaterialThk{"Malzeme Kısa Adı\n(short_name)"}
|
||
|
||
%% Steel/Nickel Logic (Thickness)
|
||
CheckMaterialThk -- "AS, SS, CS, NI" --> ThkSteelRange{"Değer Aralığı?"}
|
||
ThkSteelRange -- "<= 3" --> ThkCalc1["Min = Değer\nMax = Değer * 2"]
|
||
ThkSteelRange -- "3 < x <= 12" --> ThkCalc2["Min = 3\nMax = Değer * 2"]
|
||
ThkSteelRange -- "> 12" --> ThkCalc3["Min = 5\nMax = Boş"]
|
||
|
||
%% Aluminium Logic (Thickness)
|
||
CheckMaterialThk -- "AL" --> ThkAlRange{"Değer Aralığı?"}
|
||
ThkAlRange -- "<= 6" --> ThkCalc4["Min = Değer * 0.7\nMax = Değer * 2.5"]
|
||
ThkAlRange -- "6 < x <= 15" --> ThkCalc5["Min = 6\nMax = 40"]
|
||
|
||
%% Finalize Thickness
|
||
ThkCalc1 --> SetThkCells["Tabloyu Güncelle:\nthk_min, thk_max"]
|
||
ThkCalc2 --> SetThkCells
|
||
ThkCalc3 --> SetThkCells
|
||
ThkCalc4 --> SetThkCells
|
||
ThkCalc5 --> SetThkCells
|
||
|
||
SetDiaCells --> End(("Bitir"))
|
||
SetThkCells --> End
|
||
```
|