<?php

namespace App;

use Carbon\Carbon;
use Illuminate\Http\Request;

class NachService
{
    private $request;

    public function __construct(Request $request){
        $this->request = $request;
    }

    public function isCustomerHasPreviousActiveNach($applicant_id){

        if ($applicant_id) {
            $consumerApplication = ConsumerApplication::with(['mandateMany' => function($query){
                $query->where('status','active');
            }],'emi')->where('applicant_id', $applicant_id)->get();
            foreach ($consumerApplication as $application){
                if ($application->emi) {
                    foreach ($application->mandateMany as $mandate) {
                        if ($mandate->status == 'active' && $application->emi->emi <= $mandate->mandate_amount && in_array($mandate->frequency, ['M', 'O']) && (($mandate->frequency == 'M' && $application->state == 'closed') || $mandate->frequency == 'O')) {
                            $last_emi_date = Carbon::parse($application->emi->emi_date)->addMonths(($application->emi->remaining_tenure - 1))->toDateString();
                            if ((!empty($mandate->expiry_date) && strtotime($mandate->expiry_date) >= strtotime($last_emi_date)) || $mandate->until_cancelled == 1) {
                                return $mandate->id;
                            }
                        }
                    }
                }
            }
        }

        return false;
    }
}
