hakanylmz Şöyle bir şey yaptım:
function getPaymentCount($iyzicoPaymentsMadeYesterday, $paymentsMadeToday)
{
$default = $paymentsMadeToday >= 4
? 4
: 4 - $paymentsMadeToday;
$iyzico = match($iyzicoPaymentsMadeYesterday) {
0 => $default,
2 => 3,
3 => 4,
4 => 2,
default => $default
};
if($iyzico >= $paymentsMadeToday) {
$iyzico = $paymentsMadeToday;
}
return [
'payments_made_today' => $paymentsMadeToday,
'iyzico' => $iyzico,
'paytr' => max($paymentsMadeToday - $iyzico, 0),
];
}
Örneğin:
// Pazartesiden itibaren gelen ödeme sayıları.
// Özellikle perşembe ve cumayı düşük bıraktım.
$payments = [10, 12, 8, 1, 0, 8, 16];
// Dün yapılan Iyzico ödemeleri
$yesterday = 0;
$results = [];
foreach($payments as $dayCount) {
$counts = getPaymentCount($yesterday, $dayCount);
$yesterday = $counts['iyzico'];
$results[] = $counts;
}
return $results;
[
{
"payments_made_today": 10,
"iyzico": 4,
"paytr": 6
},
{
"payments_made_today": 12,
"iyzico": 2,
"paytr": 10
},
{
"payments_made_today": 8,
"iyzico": 3,
"paytr": 5
},
{
"payments_made_today": 1,
"iyzico": 1,
"paytr": 0
},
{
"payments_made_today": 0,
"iyzico": 0,
"paytr": 0
},
{
"payments_made_today": 8,
"iyzico": 4,
"paytr": 4
},
{
"payments_made_today": 16,
"iyzico": 2,
"paytr": 14
}
]