v2.5.2
Giriş yap

PHP ile işlem önceliği hesaplaması

edward
783 defa görüntülendi

PHP ile işlem önceliği

Merhaba arkadaşlar,

Oluşturmuş olduğum formda bir adet tutar giriş kısmı bulunmaktadır. Veritabanımda da borçlar adı altında tablom bulunmaktadır ve bu tablonun sütunları ise; borc, odenenTutar ve toplamBorc adı altında bulunmaktadır.

Borçlar tablosunda 3 adet veri girişi bulunmaktadır ve bunların borçları 250, 120 ve 450 tutarındadır.

Ben bu formdaki tutar girişine 260 lira yazdığım zaman borçlar tablosundaki ilk verideki 250TL tutarındaki borcu ödeyecek arta kalan tutar ile de ikinci verideki tutara aktaracak yani kalan 10TL ödeyecek ikinci veriye.
Sadece 250 veya 150 lira yaparsamda ilk veriye ödeme yapacak

Bu işlemi nasıl yapabilirim arkadaşlar, uygulamalı olarak yardımcı olursanı sevinirim.

iyi günler

makifgokce
1347 gün önce
$userId = 1;
$ode = 0;
$a = $db->prepare("SELECT SUM(`borc` - `odenenTutar`) as odenecekTutar FROM `borclar` WHERE `odemeDurumu` != 2 AND `uyeId` = ?");
$a->execute([$userId]);
$userDept = $a->fetch(PDO::FETCH_ASSOC);
$b = $db->prepare("SELECT * FROM `borclar` WHERE `odemeDurumu` != 2 AND `uyeId` = ?");
$b->execute([$userId]);
$depts= $b->fetchAll(PDO::FETCH_ASSOC);
if(isset($userDept["odenecekTutar"])){
	echo "Ödenecek tutar: ".$userDept["odenecekTutar"]."₺<br>";
	if(isset($_POST["tutar"]) && intval($_POST["tutar"]) > 0){
		$ode = intval($_POST["tutar"]);
	}
	if($ode <= $userDept["odenecekTutar"] && $ode > 0){
		echo "<pre>";
		foreach($depts as $dept){
			$odenecek = $dept["borc"] - $dept["odenenTutar"];
			if($ode > 0){
				if($ode >= $odenecek){
					$durum = 2;
					$odenen = $dept["odenenTutar"] + $odenecek;
				}else if($ode < $odenecek){
					$durum = 1;
					$odenen = $dept["odenenTutar"] + $ode;
				}else{
					$durum = 0;
					$odenen = 0;
				}
				$borc_ode = $db->prepare("REPLACE INTO `borclar` SET `id` = :id, `uyeId` = :uyeId, `borc` = :borc, `odenenTutar` = :odenenTutar, `toplamBorc` = :toplamBorc, `odemeDurumu` = :odemeDurumu, `tarih` = :tarih");
				$borc_ode->execute([
					":id" 			=> $dept["id"],
					":uyeId" 		=> $dept["uyeId"],
					":borc" 		=> $dept["borc"],
					":odenenTutar" 	=> $odenen,
					":toplamBorc" 	=> $dept["toplamBorc"],
					":odemeDurumu" 	=> $durum,
					":tarih" 		=> $dept["tarih"]
				]);
				echo "Ödenen: $odenen, ödenecek: $odenecek, durum: $durum, $ode <br>";
				print_r($dept);
				echo "<br>";
				$ode -= $odenecek;
			}
		}
		echo "</pre>";
	}
}else {
	echo "Kullanıcıya ait borc bulunamadı.<br>";
}