<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class DisbursementLogs extends Model
{

    use SoftDeletes;

    protected $table = 'disbursement_log';

    public static function isPartialDisbursement($application){
        $partialDisbursement = static::where('application_id', $application->id)->orderBy('created_at','desc')->get();
        if (static::canMaximumDisbursement($application->offer->id, $application) == count($partialDisbursement) && (count($partialDisbursement) == 1 || count($partialDisbursement) == 0))
            return true;
        return $partialDisbursement;
    }

    public static function isPartialDisbursementforMonth($application, $inv_start_date, $inv_end_date){
        $totalPartialDisbursement = static::where('application_id', $application->id)->orderBy('created_at','desc')->get();
        $partialDisbursement = static::where('application_id', $application->id)->where('created_at', '>=', $inv_start_date)->where('created_at', '<=', $inv_end_date)->orderBy('created_at','desc')->get();
        if (static::canMaximumDisbursement($application->offer->id, $application) == count($totalPartialDisbursement) && (count($totalPartialDisbursement) == 1 || count($totalPartialDisbursement) == 0))
            return true;
        return $partialDisbursement;
    }

    public function canPartialDisbursement($offer_id, $application){
        $offer = DisbursementOffers::where('offer_id',$offer_id)->where('application_id', $application->id)->first();
        return isset($offer->id);
    }

    public static function canMaximumDisbursement($offer_id, $application){
        return DisbursementOffers::where('offer_id',$offer_id)->where('application_id', $application->id)->count();
    }

    public function getPreviousDisbursement($application_id){
        return $this->where('application_id', $application_id)->orderBy('created_at','desc')->get();
    }
}
