У меня есть клиентская база данных с транзакциями.
Каждая транзакция имеет 2 столбца sql, дебет и кредит. Оба могут быть заполнены или только один.
Используя eloquent, я хочу получить сумму долга - сумму кредита, чтобы я мог получить его баланс.
Схема транзакции выглядит следующим образом:
Schema::create('transactions', function (Blueprint $table) {
$table->increments('id');
$table->datetime('datestamp')->nullable();;
$table->text('reason')->nullable();;
$table->decimal('debit')->default(0);
$table->decimal('credit')->default(0);
$table->integer('customerId')->unsigned();
$table->foreign('customerId')->references('id')->on('customers');
$table->boolean('isDeleted')->default(0);
$table->timestamps();
});
Моя модель клиента выглядит следующим образом:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class customer extends Model
{
public function transaction()
{
return $this->hasMany('App\Models\transaction','customerId','id')->where("isDeleted",0)->orderBy('datestamp');
}
}
Моя модель транзакции выглядит следующим образом:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class transaction extends Model
{
public function balance()
{
// problem is that i dont know how to get only for specific customer
$debit = transaction::sum('debit');
$credit = transaction::sum('credit');
return $debit-credit;
}
}