Files
citrus-cms/resources/views/guide/wpq-follow-up-algorithm.md
T
2026-04-28 21:15:09 +03:00

96 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
```