<?php

namespace App\Http\Controllers;

use App\AadharPayComissionSurcharge;
use App\AadharPaySettingType;
use App\ApesComission;
use App\Cyrus_recharge;
use App\DmrComission;
use App\DmrSurcharge;
use App\DmtComission;
use App\DmtSurcharge;
use App\memberType;
use App\PayoutSurcharge;
use App\UpiSurcharge;
use App\UpiCommission;
use App\Recharge;
use App\RechargeComission;
use App\RechargePPComission;
use App\RegistrationFees;
use App\UitpanSurcharge;
use App\UitpancouponSurcharge;
use App\News;
use App\Slider;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Auth;
use DB;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use \Illuminate\Http\Response;
use Illuminate\Validation\Rule;

use App\Holdbalance;
use App\MiniStatementCommission;
use App\State;
use App\City;
use App\RechargeService;
use App\BBPSRechargeComission;
use File;

class Setting extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function registration()
    {

        $members = memberType::all();
        //$fees = RegistrationFees::with("memberType")->get();
//echo "he";
        return view("setting.reg", compact("members"));
    }

    public function updateRegFee(Request $request)
    {
		memberType::where("id",$request->id)->update(array('registration_charge'=>$request->registration_charge));
        return back();
    }
    public static function getMemberComission($memberId, $recharge)
    {

        $recharge = RechargeComission::where(["recharge_id" => $recharge, "member_types_id" => $memberId])->first();

        if (isset($recharge->comission)) {
            return [$recharge->comission, $recharge->type,$recharge->tds];
        } else {
            return [0, 1,0];
        }

    }

    public static function getBBPSMemberComission($memberId, $recharge)
    {

        $recharge = BBPSRechargeComission::where(["recharge_id" => $recharge, "member_types_id" => $memberId])->first();

        if (isset($recharge->comission)) {
            return [$recharge->comission, $recharge->type,$recharge->tds];
        } else {
            return [0, 1, 0];
        }

    }
    public function ApesComissionDelete()
    {
        $data = ApesComission::where(["id" => request()->input("id")])->delete();
        if ($data) {
            Session::flash('success', "Apes Comission Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
    public function PayoutDelete()
    {
        $data = PayoutSurcharge::where(["id" => request()->input("id")])->delete();
        if ($data) {
            Session::flash('success', "PayoutSurcharge Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
    public function DmrSurchargeDelete()
    {
        $data = DmrComission::where(["id" => request()->input("id")])->delete();
        if ($data) {
            Session::flash('success', "Dmr Surcharge Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
	
	public function DmrComissionDelete()
    {
        $data = DmrSurcharge::where(["id" => request()->input("id")])->delete();
        if ($data) {
            Session::flash('success', "Dmr Comission Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
	
    public function saveApesComission()
    {
        request()->validate([
            "member_type_id" => "required",
            "start" => "required",
            "end" => "required",
            "comission" => "required",
        ]);
        $data = ApesComission::updateOrCreate(
            [
                "member_type_id" => request()->input("member_type_id"),
                "start" => request()->input("start"),
                "end" => request()->input("end"),
            ], [
                "comission" => request()->input("comission"),
				"tds" => request()->input("tds"),
                "is_flat" => request()->input("is_flat") ? request()->input("is_flat") : 0,
            ]
        );
        if ($data) {
            Session::flash('success', "Apes Comission Added Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
    public function saveDmrSurcharge()
    {
		
        request()->validate([
            "member_type_id" => "required",
            "start" => "required",
            "end" => "required",
            "surcharge" => "required",
        ]);
        $data = DmrComission::updateOrCreate(
            [
                "member_type_id" => request()->input("member_type_id"),
                "start" => request()->input("start"),
                "end" => request()->input("end"),
            ], [
                "surcharge" => request()->input("surcharge"),
				"gst" => request()->input("gst"),
                "is_flat" => request()->input("is_flat") ? request()->input("is_flat") : 0,
            ]
        );
        if ($data) {
            Session::flash('success', "Dmr Surcharge Added Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
	
	public function saveDmrComission(){
		
        request()->validate([
            "member_type_id" => "required",
            "start" => "required",
            "end" => "required",
            "comission" => "required",
        ]);
        $data = DmrSurcharge::updateOrCreate(
            [
                "member_type_id" => request()->input("member_type_id"),
                "start" => request()->input("start"),
                "end" => request()->input("end"),
            ], [
                "comission" => request()->input("comission"),
				"tds" => request()->input("tds"),
                "is_flat" => request()->input("is_flat") ? request()->input("is_flat") : 0,
            ]
        );
        if ($data) {
            Session::flash('success', "Dmr Comission Added Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
	
	public function dmt($memberCode=""){
		$members = memberType::get();
		if(!empty($memberCode)){
			$memberCodeArr = array();
			foreach ($members as $member){
				$memberCodeArr[$member->code] = $member->id;
			}
			
			$data = DmtComission::with("memberType")->where(["member_type_id" => $memberCodeArr[$memberCode]])->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
        }
		else
		{
			$data = DmtComission::with("memberType")->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
		}
		
        
        
        return view('setting.dmt', compact("members", "data","memberCode"));
    }
	
	public function dmtComission($memberCode=""){
		$members = memberType::get();
		if(!empty($memberCode)){
			$memberCodeArr = array();
			foreach ($members as $member){
				$memberCodeArr[$member->code] = $member->id;
			}
			
			$data = DmtSurcharge::with("memberType")->where(["member_type_id" => $memberCodeArr[$memberCode]])->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
        }
		else
		{
			$data = DmtSurcharge::with("memberType")->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
		}
		
        
        
        return view('setting.dmtComission', compact("members", "data","memberCode"));
    }
	
	public function DmtComissionDelete(){
        $data = DmtSurcharge::where(["id" => request()->input("id")])->delete();
        if ($data) {
            Session::flash('success', "Dmt Surcharge Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
	
	public function DmtSurchargeDelete(){
        $data = DmtComission::where(["id" => request()->input("id")])->delete();
        if ($data) {
            Session::flash('success', "Dmt Comission Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
	
	public function saveDmtSurcharge() {
        request()->validate([
            "member_type_id" => "required",
            "start" => "required",
            "end" => "required",
            "surcharge" => "required",
        ]);
        $data = DmtComission::updateOrCreate(
            [
                "member_type_id" => request()->input("member_type_id"),
                "start" => request()->input("start"),
                "end" => request()->input("end"),
            ], [
                "surcharge" => request()->input("surcharge"),
				"gst" => request()->input("gst"),
                "is_flat" => request()->input("is_flat") ? request()->input("is_flat") : 0,
            ]
        );
        if ($data) {
            Session::flash('success', "Dmt Surcharge Added Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
	
	public function saveDmtComission(){
		
        request()->validate([
            "member_type_id" => "required",
            "start" => "required",
            "end" => "required",
            "comission" => "required",
        ]);
        $data = DmtSurcharge::updateOrCreate(
            [
                "member_type_id" => request()->input("member_type_id"),
                "start" => request()->input("start"),
                "end" => request()->input("end"),
            ], [
                "comission" => request()->input("comission"),
				"tds" => request()->input("tds"),
                "is_flat" => request()->input("is_flat") ? request()->input("is_flat") : 0,
            ]
        );
        if ($data) {
            Session::flash('success', "Dmt Comission Added Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
	
	
    public function savePayoutSurcharge() {
        request()->validate([
            "member_type_id" => "required",
            "start" => "required",
            "end" => "required",
            "surcharge" => "required",
            "type" => "required",
        ]);
        $data = PayoutSurcharge::create(
            [
                "member_type_id" => request()->input("member_type_id"),
                "start" => request()->input("start"),
                "end" => request()->input("end"),
                "surcharge" => request()->input("surcharge"),
				"gst" => request()->input("gst"),
                "type" => request()->input("type"),
                "is_flat" => request()->input("is_flat") ? request()->input("is_flat") : 0,
            ]
        );
        if ($data) {
            Session::flash('success', "Payout Surcharge Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
    
	public static function getPPMemberComission($memberId, $recharge){
        
        $recharge = RechargePPComission::where(["recharge_id" => $recharge, "member_types_id" => $memberId])->first();

        if (isset($recharge->comission)) {
            return [$recharge->comission, $recharge->type,$recharge->tds];
        } else {
            return [0, 1,0];
        }

    }

    public function recharge($memberCode = ""){
        if(request()->role!="" && request()->role!=$memberCode)
        {
            return view("auth.invalid");
        }
        
        $members = memberType::get();

        $rechargeAgencyList = [];
        $memberId = "";
        if ($memberCode != '') {
            $memberId = memberType::where(["code" => $memberCode])->first();
            $rechargeAgencyList = Recharge::get();
        }
        return view('setting.recharge', compact("members", "memberCode", "rechargeAgencyList", "memberId"));
    }

    public function bbpsRecharge($memberCode = ""){
        if(request()->role!="" && request()->role!=$memberCode)
        {
            return view("auth.invalid");
        }
        $rechargeServices = RechargeService::whereNotIn('service', ["AEPS-on", "DMR", "Easy Return", "IRCTC", "GIFT Vourhcer", "METRO TRAIN", "PAN Token", "PayService", "Prepaid-Mobile", "Postpaid-Mobile", "DTH", "Mobile Postpaid"])->groupBy('service')->get("service");
        $getRechargeComission = BBPSRechargeComission::all();
        // return $rechargeServices;
        // $members = memberType::get();
        // $rechargeAgencyList = [];
        // $memberId = "";
        // if ($memberCode != '') {
        //     $memberId = memberType::where(["code" => $memberCode])->first();
        //     $rechargeAgencyList = RechargeService::whereNotIn('service', ["AEPS-on", "DMR", "Easy Return", "IRCTC", "GIFT Vourhcer", "METRO TRAIN", "PAN Token", "PayService", "Prepaid-Mobile", "Postpaid-Mobile", "DTH", "Mobile Postpaid"])->get();
        // }
        return view('setting.bbpsRecharge', compact("rechargeServices", "getRechargeComission"));
    }

	
    public function apes($memberCode = ""){
		$members = memberType::get();
		if(!empty($memberCode)){
			$memberCodeArr = array();
			foreach ($members as $member){
				$memberCodeArr[$member->code] = $member->id;
			}
			
			$data = ApesComission::with("memberType")->where(["member_type_id" => $memberCodeArr[$memberCode]])->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
		}
		else
		{
			$data = ApesComission::with("memberType")->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
		}
        return view('setting.apes', compact("members", "data","memberCode"));

    }    

    public function dmr($memberCode=""){
		$members = memberType::get();
		if(!empty($memberCode)){
			$memberCodeArr = array();
			foreach ($members as $member){
				$memberCodeArr[$member->code] = $member->id;
			}
			
			$data = DmrComission::with("memberType")->where(["member_type_id" => $memberCodeArr[$memberCode]])->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
        }
		else
		{
			$data = DmrComission::with("memberType")->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
		}
		
        
        
        return view('setting.dmr', compact("members", "data","memberCode"));
    }
	
	public function dmrComission($memberCode=""){
		$members = memberType::get();
		if(!empty($memberCode)){
			$memberCodeArr = array();
			foreach ($members as $member){
				$memberCodeArr[$member->code] = $member->id;
			}
			
			$data = DmrSurcharge::with("memberType")->where(["member_type_id" => $memberCodeArr[$memberCode]])->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
        }
		else
		{
			$data = DmrSurcharge::with("memberType")->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
		}
		
        
        
        return view('setting.dmrComission', compact("members", "data","memberCode"));
    }
	
    public function payout($memberCode=""){
		$members = memberType::get();
		if(!empty($memberCode)){
			$memberCodeArr = array();
			foreach ($members as $member){
				$memberCodeArr[$member->code] = $member->id;
			}
			
			$data = PayoutSurcharge::with("memberType")->where(["member_type_id" => $memberCodeArr[$memberCode]])->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
        }
		else
		{
			 $data = PayoutSurcharge::with("memberType")->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
		}
        
       
        return view('setting.payout', compact("members", "data","memberCode"));
    }
	
    public function upicommision($memberCode=""){
		$members = memberType::get();
		if(!empty($memberCode)){
			$memberCodeArr = array();
			foreach ($members as $member){
				$memberCodeArr[$member->code] = $member->id;
			}
			
			$data = UpiCommission::with("memberType")->where(["member_type_id" => $memberCodeArr[$memberCode]])->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
        }
		else
		{
			 $data = UpiCommission::with("memberType")->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
		}
        
       
        return view('setting.upicommision', compact("members", "data","memberCode"));
    }
	
    public function upicharge($memberCode=""){
		$members = memberType::get();
		if(!empty($memberCode)){
			$memberCodeArr = array();
			foreach ($members as $member){
				$memberCodeArr[$member->code] = $member->id;
			}
			
			$data = UpiSurcharge::with("memberType")->where(["member_type_id" => $memberCodeArr[$memberCode]])->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
        }
		else
		{
			 $data = UpiSurcharge::with("memberType")->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
		}
        
       
        return view('setting.upicharge', compact("members", "data","memberCode"));
    }
   
	public function UpiSave($type="") {
        request()->validate([
            "member_type_id" => "required",
            "start" => "required",
            "end" => "required",
            "surcharge" => "required"
        ]);
		if($type=="charge"){
			$data = UpiSurcharge::updateOrCreate(
				[
					"member_type_id" => request()->input("member_type_id"),
					"start" => request()->input("start"),
					"end" => request()->input("end"),
				], [
					"surcharge" => request()->input("surcharge"),
					"gst" => request()->input("gst"),
					"is_flat" => request()->input("is_flat") ? request()->input("is_flat") : 0,
				]
			);
		}
		if($type=="commision"){
			$data = UpiCommission::updateOrCreate(
				[
					"member_type_id" => request()->input("member_type_id"),
					"start" => request()->input("start"),
					"end" => request()->input("end"),
				], [
					"surcharge" => request()->input("surcharge"),
					"gst" => request()->input("gst"),
					"is_flat" => request()->input("is_flat") ? request()->input("is_flat") : 0,
				]
			);
		}
        if ($data) {
            Session::flash('success', "UPI Surcharge Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }

    public function UpiDelete($type="")
    {
		if($type=="commision"){
			$data = UpiCommission::where(["id" => request()->input("id")])->delete();
		}
		if($type=="charge"){
			$data = UpiSurcharge::where(["id" => request()->input("id")])->delete();
		}
        if ($data) {
            Session::flash('success', "Upi charge Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
	
    public function pprecharge($memberCode = ""){
        if(request()->role!="" && request()->role!=$memberCode)
        {
            return view("auth.invalid");
        }
        $members = memberType::get();

        $rechargeAgencyList = [];
        $memberId = "";
        if ($memberCode != '') {
            $memberId = memberType::where(["code" => $memberCode])->first();
            $rechargeAgencyList = Cyrus_recharge::get();
        }
        return view('setting.pprecharge', compact("members", "memberCode", "rechargeAgencyList", "memberId"));
    }
   
	public function saveRecharge() {
         $subadmin =  Auth::user()->subadmin; 

        if (request()->input("role") == "" || $subadmin==1) {
			
            if (request()->input("is_flat") != null) {
                $flat = array_flip(request()->input("is_flat"));
            }
            $success = '';
            foreach (request()->input("rechargeId") as $key => $recharge) {
                $success = RechargeComission::updateOrCreate([
                    "recharge_id" => $recharge,
                    "member_types_id" => request()->input("package"),
                ],
                    ["comission" => request()->input("comission")[$key],"tds" => request()->input("tds")[$key],"type" => isset($flat[$key]) ? 0 : 1]
                );

            }
            if ($success != '') {
                Session::flash('success', "Recharge Comission Updated Successfully");
            } else {
                Session::flash('error', "Something Went Wrong");
            }
            return back();
        } else {
            return view("auth.invalid");
        }
    }

    public function saveBBPSRecharge() {
        // return request()->input();
        request()->validate([
            "service_name" => "required",
            "start" => "required",
            "end" => "required",
            "comission" => "required",
        ]);
        $data = BBPSRechargeComission::updateOrCreate(
            [
                "service_name" => request()->input("service_name"),
                "start" => request()->input("start"),
                "end" => request()->input("end"),
            ], [
                "comission" => request()->input("comission"),
                "tds" => request()->input("tds"),
                "is_flat" => request()->input("is_flat") ? request()->input("is_flat") : 0,
            ]
        );
        if ($data) {
            Session::flash('success', "BBPS Comission Added Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }

    public function BBPSComissionDelete()
    {
        // return request()->input();
        $data = BBPSRechargeComission::where(["id" => request()->input("id")])->delete();
        if ($data) {
            Session::flash('success', "BBPS Comission Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
	
    public function savePPRecharge(){
		
         $subadmin =  Auth::user()->subadmin; 

        if (request()->input("role") == "" || $subadmin==1) {
            if (request()->input("is_flat") != null) {
                $flat = array_flip(request()->input("is_flat"));
            }
			
            $success = '';
            foreach (request()->input("rechargeId") as $key => $recharge) {
				
                $success = RechargePPComission::updateOrCreate([
                    "recharge_id" => $recharge,
                    "member_types_id" => request()->input("package"),
                ],
                    ["comission" => request()->input("comission")[$key], "tds" => request()->input("tds")[$key],"type" => isset($flat[$key]) ? 0 : 1]
                );

            }
            if ($success != '') {
                Session::flash('success', "Recharge Comission Updated Successfully");
            } else {
                Session::flash('error', "Something Went Wrong");
            }
            return back();
        } else {
			
            return view("auth.invalid");
        }
    }
    
	public function saveFee(){
        $data = RegistrationFees::where(["member_type_id" => request()->input("package")])->update(["reg_fee" => request()->input("reg_fee"), "daily_fee" => request()->input("daily_fee"),"referral_amount" => request()->input("referral_amount"), "created_at" => date("Y-m-d H:i:s"), "updated_at" => date("Y-m-d H:i:s")]);
        if ($data) {
            Session::flash('success', "Fees Updated Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }

    public function addharPay()
    {
        $setting = AadharPaySettingType::first();
        return view('setting.aadharPay', compact("setting"));
        
    }
    public function aadharComission()
    {
        $members = memberType::get();
        $data = AadharPayComissionSurcharge::with("memberType")->where(["type"=>"comission"])->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
        return view('setting.aadharPayComission', compact("members", "data"));
    }
    public function aadharSurcharge($memberCode = "")
    {
		
		$members = memberType::get();
		if(!empty($memberCode)){
			$memberCodeArr = array();
			foreach ($members as $member){
				$memberCodeArr[$member->code] = $member->id;
			}
			
			$data = AadharPayComissionSurcharge::with("memberType")->where(["member_type_id" => $memberCodeArr[$memberCode],"type"=>"surcharge"])->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
        }
		else
		{
			$data = AadharPayComissionSurcharge::with("memberType")->where(["type"=>"surcharge"])->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
		}
        //$data = AadharPayComissionSurcharge::with("memberType")->where(["type"=>"surcharge"])->OrderBy("member_type_id", "asc")->OrderBy("start", "asc")->get();
        return view('setting.aadharPaySurcharge', compact("members", "data","memberCode"));
    }
	
    public function aadharPayFeesDelete()
    {
        $data = AadharPayComissionSurcharge::where(["id" => request()->input("id")])->delete();
        if ($data) {
            Session::flash('success', "Aadhar Pay Fees Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
    public function saveAadharPaySurcharge()
    {
		
        request()->validate([
            "member_type_id" => "required",
            "start" => "required",
            "end" => "required",
            "type"=>"required",
            "comission" => "required",
        ]);
		
        $data = AadharPayComissionSurcharge::updateOrCreate(
            [
                "member_type_id" => request()->input("member_type_id"),
                "start" => request()->input("start"),
                "end" => request()->input("end"),
                "type"=>request()->type,
               
            ], [
                "value" => request()->input("comission"),
				 "gst" => request()->input("gst"),
                "is_enable"=>0,
                "is_flat" => request()->input("is_flat") ? request()->input("is_flat") : 0,
            ]
        );
        if ($data) {
            Session::flash('success', "Apes Surcharge Added Successfully");
        } else {
			die;
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
    
    public function aadharPayType()
    {
        $set = request()->isset;
        try {
            $aadhar = AadharPaySettingType::where(["id" => 1])->update([
                "type" => $set,
            ]);
            return response()->json([
                "status" => 1,
                "message" => "Setting updated successfully",
            ]);
        } catch (\Throwable $th) {
            return response()->json([
                "status" => 0,
                "message" => "Something went wrong",
            ]);
        }

    }
	
	public function uitpan()
    {
        $members = memberType::get();
        $data = UitpanSurcharge::with("memberType")->OrderBy("member_type_id", "asc")->OrderBy("created_at", "Desc")->get();
        return view('setting.uitpan', compact("members", "data"));
    }
	
	public function saveUitpanSurcharge(){
        request()->validate([
            "member_type_id" => "required",
            "surcharge" => "required",
        ]);
        $data = UitpanSurcharge::updateOrCreate(
            [
                "member_type_id" => request()->input("member_type_id"),
               ], [
                "surcharge" => request()->input("surcharge"),
                "is_flat" => request()->input("is_flat") ? request()->input("is_flat") : 0,
            ]
        );
        if ($data) {
            Session::flash('success', "UIT PAN Surcharge Added Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
	
	public function UitpanSurchargeDelete(){
        $data = UitpanSurcharge::where(["id" => request()->input("id")])->delete();
        if ($data) {
            Session::flash('success', "UIT PAN Surcharge Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
	
	
	public function uitpancoupon()
    {
        $members = memberType::get();
        $data = UitpancouponSurcharge::with("memberType")->OrderBy("member_type_id", "asc")->OrderBy("created_at", "Desc")->get();
        return view('setting.uitpancoupon', compact("members", "data"));
    }
	
	public function saveUitpancouponSurcharge(){
        request()->validate([
            "member_type_id" => "required",
            "surcharge" => "required",
        ]);
        $data = UitpancouponSurcharge::updateOrCreate(
            [
                "member_type_id" => request()->input("member_type_id"),
               ], [
                "surcharge" => request()->input("surcharge"),
                "is_flat" => request()->input("is_flat") ? request()->input("is_flat") : 0,
            ]
        );
        if ($data) {
            Session::flash('success', "UIT PAN Coupon Surcharge Added Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
	
	public function UitpancouponSurchargeDelete(){
        $data = UitpancouponSurcharge::where(["id" => request()->input("id")])->delete();
        if ($data) {
            Session::flash('success', "UIT PAN Coupon Surcharge Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
    
    // made by suraj
    public function news(){
        $news = News::orderBy('id', 'DESC')->get();
        return view('news.index', compact("news"));
    }

    public function news_create(){
        return view('news.create');
    }

    public function news_store(){
        $news = new News;
        $news->name = request()->input("news_name");
        $news->news = request()->input("news");
        if($news->save()){
            return redirect('setting/news');
        }else{
            return back();
        }
        // return request()->input();
    }

    public function news_delete($id){
        // return $id;
        $news = News::find($id);
        if($news->delete()){
            return back();
        }
    }
        
    public function holdbalance(){
        #$holdbalance = Holdbalance::get();
        
        $holdbalance =  DB::select("SELECT holdbalance.*, member_types.name FROM `holdbalance` LEFT JOIN member_types ON holdbalance.member_type_id = member_types.id");
        return view('holdbalance.index', compact("holdbalance"));
    }  
    
    public function holdbalance_create(){
        $memberType = memberType::where(["status" => 1])->get();
        return view('holdbalance.create', compact('memberType'));
       // return view('holdbalance.create');
    }
    
    
    public function holdbalance_store(Request $request){
        
        $request->validate([

            'member_type_id' => 'required|unique:holdbalance',

            'balance' => 'required'

        ]);
        
        $holdbalance = new Holdbalance;
        $holdbalance->member_type_id = request()->input("member_type_id");
        $holdbalance->balance = request()->input("balance");
        $holdbalance->status = request()->input("status");
      
        if($holdbalance->save()){
            return redirect('/setting/holdbalance');
        }else{
            return back();
        }        
    }

    public function holdbalance_delete($id){
        // return $id;
        $holdbalance = Holdbalance::find($id);
        if($holdbalance->delete()){
            return back();
        }
    }


    public function slider(){
        $sliders = Slider::get();
        return view('slider.index', compact("sliders"));
    }

    public function slider_create(){
        return view('slider.create');
    }

    public function slider_store(Request $request){
        $this->validate($request, [            
            'slider' => 'required',
        ]);
        $image = $request->file('slider');
        $filename = time() . '.' . $image->getClientOriginalExtension();
        // dd($image);
        $tempName = $image->getPathName();
        $name = $image->getClientOriginalName();
        $type = $image->getType();
        // dd($type);
        $curl = curl_init();

        curl_setopt_array($curl, array(
          CURLOPT_URL => 'https://files.diosm.in/image_upload.php',
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => '',
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => 'POST',
          CURLOPT_POSTFIELDS => array('file'=> new \CURLFILE($tempName, $type, $name),'filename' => $filename,'path' => 'diospays/slider'),
        ));

        $response = curl_exec($curl);

        curl_close($curl);
        $jsonImageData = json_decode($response, true);
        if ($jsonImageData['type'] == "error") {
            Session::flash('error', $jsonImageData['message']);
            return back();
        } 
        // return $jsonImageData;
        $sliders = new Slider;
        $sliders->name = request()->input("slider_name");
        $sliders->image = $jsonImageData['filename'];
        $sliders->image_url = $jsonImageData['target'];
        // if(request()->file('slider')){
        //     $sliderImage = time().'-slider.jpg';
        //     $aPath = request()->file('slider')->move(public_path("/uploads/Slider/"), $sliderImage);
        //     $sliders->image = $sliderImage;
        // }
        if($sliders->save()){
            Session::flash('success', $jsonImageData['message']);
            return redirect('setting/slider');
        }else{
            Session::flash('error', "Image not uploded! Something went wrong");
            return back();
        }        
    }

    public function slider_delete($id){
        // return $id;
        $slider = Slider::find($id);
        $image_path = 'system/public/uploads/Slider/'.$slider->image; 
        // return $image_path;
        if(File::exists($image_path)) {
            File::delete($image_path);
        }
        
        if($slider->delete()){
            return back();
        }
    }

    public function miniStatementCommission(){
        $members = memberType::get();
        $data = MiniStatementCommission::with("memberType")->OrderBy("member_type_id", "asc")->get();
        return view('setting.mini_statement', compact("members", "data"));
    }

    public function saveMiniStatementComission()
    {
        // return request()->input();
        request()->validate([
            "member_type_id" => "required",            
            "comission" => "required",
        ]);
        $data = MiniStatementCommission::updateOrCreate(
            [
                "member_type_id" => request()->input("member_type_id")                
            ], [
                "comission" => request()->input("comission"),
				"tds" => request()->input("tds")
            ]
        );
        if ($data) {
            Session::flash('success', "Mini Statement Comission Added Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }

    public function miniStatementComissionDelete()
    {
        $data = MiniStatementCommission::where(["id" => request()->input("id")])->delete();
        if ($data) {
            Session::flash('success', "Apes Comission Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }

    public function state(){
        $states = State::all();        
        return view('setting.state', compact("states"));
    }

    public function saveState(Request $request)
    {
        // return request()->input();
        $validateData = Validator::make($request->all(), [
            'stateName' => 'required'
        ]);
        if($validateData->fails())
        {
            Session::flash('error', "State Name is required!");
        } 
        $state = new State;
        if ($state) {
            $state->CountryID = 1;
            $state->StateName = $request->stateName;
            if ($state->save()) {
                Session::flash('success', "State Added Successfully");
            } else {
                Session::flash('error', "Something Went Wrong! Data not saved");
            }            
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }

    public function deleteState()
    {
        // return request()->input("id");
        $data = State::where(["StateID" => request()->input("id")])->delete();
        if ($data) {
            Session::flash('success', "State Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }

    public function city(){
        $states = State::all();  
        $cities = City::all();        
        return view('setting.city', compact("states", "cities"));
    }

    public function saveCity(Request $request)
    {
        // return request()->input();
        $validateData = Validator::make($request->all(), [
            'city_state' => 'required',
            'city_name' => 'required'
        ]);
        if($validateData->fails())
        {
            Session::flash('error', "State and City Name is required!");
        } 
        $city = new City;
        if ($city) {
            $city->city_state = $request->city_state;
            $city->city_name = $request->city_name;
            if ($city->save()) {
                Session::flash('success', "City Added Successfully");
            } else {
                Session::flash('error', "Something Went Wrong! Data not saved");
            }            
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }

    public function deleteCity()
    {
        // return request()->input("id");
        $data = City::where(["city_id" => request()->input("id")])->delete();
        if ($data) {
            Session::flash('success', "City Deleted Successfully");
        } else {
            Session::flash('error', "Something Went Wrong");
        }
        return back();
    }
}
