<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use App\Scopes\MessageScope;
use Illuminate\Http\Request;

class TradeAdvanceDisbursement extends Model
{
    use SoftDeletes;

    protected $table = 'trade_advance_disbursement';

    public function application(){
        return $this->hasOne('App\ConsumerApplication','id','application_id')->where('lender_id', 2);
    }

    public function getBalanceAmount($id, $netdisbusedamount = 0){
        $merchant = Merchant::where('id', $id)->first(['trade_advance_amount','merchant_name','id','is_trade_advance']);
        if ($merchant->is_trade_advance == 1 && $merchant->trade_advance_amount) {
            $tradeAdvanceDisbursement = $this->with('application.disbursed')->where('merchant_id', $id)->get();
            $netAmount = 0;
            foreach ($tradeAdvanceDisbursement as $item) {
                $netAmount += $item->net_amount;
            }


            $trade_advance_amount = TradeAdvanceLogs::with('user')->where('merchant_id', $id)->sum('trade_advance_amount');

            $amount = $trade_advance_amount - $netAmount;

            if($netdisbusedamount && $netdisbusedamount > $amount){
                (new Slack(new Request(['title' =>'Trade balance for '.$merchant->merchant_name.' has fallen below Rs 0', 'fields' => ['Merchant Name' => $merchant->merchant_name], 'group' => 'businessdevelopment'])))->send();
                return false;
            }

            if(($amount - $netdisbusedamount) < 50000){
                (new Slack(new Request(['title' =>'Trade balance for '.$merchant->merchant_name.' has fallen below Rs 50k', 'fields' => ['Merchant Name' => $merchant->merchant_name], 'group' => 'businessdevelopment'])))->send();
                if($amount > $netdisbusedamount){
                    return $amount;
                }
                return false;
            }
            return $amount;
        }
        return false;
    }
}
