ikinci temizlik tamamlandı
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
# 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
|
||||
```
|
||||
Reference in New Issue
Block a user