Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b812a4d7d4 | ||
|
|
eed06508a0 | ||
|
|
0ebbb49db0 | ||
|
|
44cb84ad9b | ||
|
|
2224c74398 | ||
|
|
85feca9a92 | ||
|
|
a84cb5826a | ||
|
|
663c16e094 | ||
|
|
f85558e374 | ||
|
|
f7cc2f88e5 | ||
|
|
caf6ec5b2d | ||
|
|
eef16b2a2a | ||
|
|
970145bd4e | ||
|
|
b74d2f968d |
@@ -0,0 +1,33 @@
|
|||||||
|
name: kalite-kontrol
|
||||||
|
on: [push]
|
||||||
|
jobs:
|
||||||
|
kontrol:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
|
steps:
|
||||||
|
- name: Kodu indir
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
github-server-url: https://gitea.twinpay.one
|
||||||
|
|
||||||
|
- name: Çakışma işareti kalmamış olmalı
|
||||||
|
run: |
|
||||||
|
if grep -rn '^<<<<<<< ' --include='*.js' --include='*.html' --include='*.md' .; then
|
||||||
|
echo 'HATA: çözülmemiş çakışma işareti var!'; exit 1
|
||||||
|
fi
|
||||||
|
echo 'temiz: çakışma işareti yok'
|
||||||
|
|
||||||
|
- name: Sessiz bozulma dersi — tanımsız çağrı olmasın
|
||||||
|
run: |
|
||||||
|
grep -q 'function sonFiyat' fiyat.js
|
||||||
|
if grep -rn 'indirimliFiyat(' --include='*.js' .; then
|
||||||
|
echo 'HATA: tanımsız fonksiyon çağrısı (indirimliFiyat)'; exit 1
|
||||||
|
fi
|
||||||
|
echo 'temiz: tüm çağrılar tanımlı'
|
||||||
|
|
||||||
|
- name: Çöp tarihe girmemiş olmalı
|
||||||
|
run: |
|
||||||
|
if git ls-files | grep -E '^(node_modules/|.*\.log$)'; then
|
||||||
|
echo 'HATA: izlenmemesi gereken dosya izleniyor!'; exit 1
|
||||||
|
fi
|
||||||
|
echo 'temiz: node_modules ve loglar izlenmiyor'
|
||||||
@@ -8,3 +8,21 @@ Sayfadaki "Atölye" bölümü bu deponun her adımını kod kod gösterir.
|
|||||||
## Nasıl çalışır?
|
## Nasıl çalışır?
|
||||||
|
|
||||||
fiyat.js fiyatı hesaplar, sepet.js ürünleri toplar. index.html ikisini yükler.
|
fiyat.js fiyatı hesaplar, sepet.js ürünleri toplar. index.html ikisini yükler.
|
||||||
|
|
||||||
|
## SSS
|
||||||
|
|
||||||
|
- Fiyatlar KDV dahil mi? kdvliFiyat() ile evet.
|
||||||
|
|
||||||
|
## Canlı adres ve zincir
|
||||||
|
|
||||||
|
Bu depo Gitea'ya bağlıdır ve Coolify tarafından yayınlanır:
|
||||||
|
push → robot testler (CI) → deploy → bekçi (push-denetim) PASS.
|
||||||
|
|
||||||
|
## Saha Defteri töresi (bu projeye özel tek fark)
|
||||||
|
|
||||||
|
Bu projede edit yapan HER AI (hangi bilgisayar/araç olursa olsun) işi bitince
|
||||||
|
ortak sayfaya (Projelerimiz/.ai-ortak/kod-yolculugu-3d.html) bir SAHA DEFTERİ
|
||||||
|
kaydı ekler: kim, hangi makine/araç, ne yaptı, ne yaşadı. Yöntem: önce ai-ortak
|
||||||
|
ışığını al, sayfadaki SAHA_DEFTERI dizisine tek nesne ekle, ışığı bırak.
|
||||||
|
Ayrıca HERHANGİ bir projede o sayfadaki bir vaatle ilgili sorun yaşayan AI da
|
||||||
|
tur:"sorun" kaydı düşer. Pasif özellik kontrolü: .ai-ortak/pasif-ozellikler.json
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
// Raf etiketi — fiyatı etikete yazar
|
||||||
|
function etiketFiyati(fiyat) {
|
||||||
|
return "TL " + sonFiyat(fiyat).toFixed(2); // düzeltildi: güncel fonksiyon
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@ function sonFiyat(fiyat) {
|
|||||||
return fiyat - (fiyat * INDIRIM / 100);
|
return fiyat - (fiyat * INDIRIM / 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
const KDV = 20; // yüzde
|
const KDV = 10; // yüzde — gıda indirimi kaldı (rebase çözümü: dalın niyeti korundu)
|
||||||
|
|
||||||
function kdvliFiyat(fiyat) {
|
function kdvliFiyat(fiyat) {
|
||||||
return fiyat + (fiyat * KDV / 100);
|
return fiyat + (fiyat * KDV / 100);
|
||||||
|
|||||||
@@ -13,5 +13,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<script src="fiyat.js"></script>
|
<script src="fiyat.js"></script>
|
||||||
<script src="sepet.js"></script>
|
<script src="sepet.js"></script>
|
||||||
|
<footer>Atölye Dükkânı — eğitim amaçlı örnek · etiket özelliği PR #1 ile geldi</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
// Sepet — ürünleri toplar
|
// Sepet — ürünleri toplar
|
||||||
const sepet = [];
|
const sepet = [];
|
||||||
|
const KUPON_INDIRIMI = 50; // TL — SEPET50 kuponu
|
||||||
|
const HEDIYE_CEKI = 100; // TL — hediye çeki bakiyesi
|
||||||
|
|
||||||
function sepeteEkle(urun, fiyat) {
|
function sepeteEkle(urun, fiyat) {
|
||||||
sepet.push({ urun: urun, fiyat: fiyat });
|
sepet.push({ urun: urun, fiyat: fiyat });
|
||||||
@@ -10,5 +12,5 @@ function sepetToplami() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function sepetIndirimliToplam() {
|
function sepetIndirimliToplam() {
|
||||||
return sonFiyat(sepetToplami());
|
return sonFiyat(sepetToplami()) - HEDIYE_CEKI - KUPON_INDIRIMI; // harman: önce çeki, sonra kupon
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user