HEX
Server: Apache/2.4.46 (Ubuntu)
System: Linux localhost 5.11.0-49-generic #55-Ubuntu SMP Wed Jan 12 17:36:34 UTC 2022 x86_64
User: root (0)
PHP: 7.4.16
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/MasterDataController.php
<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\UOM;
use App\Models\CustomerType;
use App\Models\PaymentType;
use App\Models\GST;
use App\Models\ProductFamily;
use App\Models\ExpenseType;
use App\Models\ExpenseTypeTravel;
use Illuminate\Http\Request;
use App\Library\UserLib;

class MasterDataController extends Controller
{
    protected $userLib;
    public function __construct(UserLib $userLib)
	{
		$this->userLib = $userLib;		 
	}

    public function MasterList()
	{
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        $UOM = UOM::all();
        $GST = GST::all();
        $CustomerType = CustomerType::all();
        $PaymentType = PaymentType::all();
        $ProductFamily = ProductFamily::all();
        return view('admin.master-data', ['Unit' => $UOM, 'GST' => $GST, 'CustomerType' => $CustomerType, 'ProductFamily' => $ProductFamily, 'PaymentType' => $PaymentType]);
    }


    ### Store New UOM
    public function storeUOM(Request $request)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        $UnitId = $this->userLib->useridGenrator();
        $UOM = new UOM;
        $UOM->UnitId = $UnitId;
        $UOM->MeasurementName = $request->input('MeasurementName');
        $UOM->Status = '1';
        $UOM->Created_by = session('UserId');
        $UOM->Created_at = date('Y-m-d H:i:s', time());
        $UOM->Updated_by = session('UserId');
        $UOM->Updated_at = date('Y-m-d H:i:s', time());
        $UOM->save();
        return redirect()->back()->with('status_success');
    }

    #### Change Status Unit of Measurement
    public function statusUpdateUOM($id)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        $data = UOM::select('tbl_unit_of_measurement.*')
        ->where('UnitId', '=', $id)
        ->get()->first();
        if ($data->Status == '1') {
            $Status = '0';
        } else {
            $Status = '1';
        }

        $values = array('Status' => $Status, 'Updated_by'=>session('UserId'), 'Updated_at' => date('Y-m-d H:i:s', time()));
        UOM::where('UnitId', $id)->update($values);
        return redirect()->back();
    }


    ### Edit Unit of Measurement
    public function editUOM($id)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        //$UOM = UOM::find($id);
        $UOM = UOM::select('tbl_unit_of_measurement.*')
        ->where('UnitId', '=', $id)
        ->get()->first();
    
        //echo $id;
        return response()->json([
            'status' => 200,
            'UOM' => $UOM,
        ]);
    }

    ### Update Unit of Measurement
    public function updateUOM(Request $request)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        //$user_id = Auth::id();
        $uom_id =  $request->input('id');
        $UpdatedDate = date('Y-m-d H:i:s', time());
        $data = array();
        $data['Updated_at'] = $UpdatedDate;
        $data['MeasurementName'] = $request->input('name');
        $data['Updated_by'] = session('UserId');

        $uom_update = UOM::where('UnitId', $uom_id)->update($data);
        if ($uom_update) {
            echo '1';
        } else {
            echo '0';
        }
        return redirect()->back()->with('status_success');
    }

    ##### check Measurement Name

    public function checkMeasurementName(Request $request){
		
        $CreatedDate = date('Y-m-d H:i:s',time());
         
        $data = $request->all(); 

        $uom = UOM::where('MeasurementName', $data['MeasurementName'])->get();               
        if ($uom->count() > 0)
        {   //Name already exist
            $uom = $uom->first();   
            $UomId = $uom->UomId;  
        
            $response = [
                'Success' => false,
                'ResponseMessage' => "Measurement Name already exist in CRM!",
                'ResponseCode' => '201',                
            ];
            return response()->json($response);
        }  
        else{
            $response = [
                'Success' => true,
                'ResponseMessage' => "<span class='text-success'>Measurement Name Available to create</span>",
                'ResponseCode' => '200',                
            ];
            return response()->json($response);
        }  

    }


    ########### GST #######
    ### Store New GST Slab
    public function storeGST(Request $request)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        $GstSlabId = $this->userLib->useridGenrator();
        $GST = new GST;
        $GST->GstSlabId = $GstSlabId;
        $GST->Name = $request->input('name');
        $GST->Status = '1';
        $GST->Created_by = session('UserId');
        $GST->Created_at = date('Y-m-d H:i:s', time());
        $GST->Updated_by = session('UserId');
        $GST->Updated_at = date('Y-m-d H:i:s', time());
        $GST->save();
        return redirect()->back()->with('status_success');
    }

    #### Change Status GST
    public function statusUpdateGST($id)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        $data = GST::select('tbl_gst_slab.*')
        ->where('GstSlabId', '=', $id)
        ->get()->first();
        if ($data->Status == '1') {
            $Status = '0';
        } else {
            $Status = '1';
        }

        $values = array('Status' => $Status, 'Updated_by'=>session('UserId'), 'Updated_at' => date('Y-m-d H:i:s', time()));
        GST::where('GstSlabId', $id)->update($values);
        return redirect()->back();
    }


    ### Edit GST
    public function editGST($id)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        $GST = GST::select('tbl_gst_slab.*')
        ->where('GstSlabId', '=', $id)
        ->get()->first();
        return response()->json([
            'status' => 200,
            'GST' => $GST,
        ]);
    }

    ### Update GST
    public function updateGST(Request $request)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        //$user_id = Auth::id();
        $gst_id =  $request->input('id');
        $UpdatedDate = date('Y-m-d H:i:s', time());
        $data = array();
        $data['Updated_at'] = $UpdatedDate;
        $data['Name'] = $request->input('name');
        $data['Updated_by'] = session('UserId');
        $data['Updated_at'] = date('Y-m-d H:i:s', time());

        $gst_update = GST::where('GstSlabId', $gst_id)->update($data);
        if ($gst_update) {
            echo '1';
        } else {
            echo '0';
        }
        return redirect()->back()->with('status_success');
    }

    ########### Customer Type #######
    ### Store New Customer Type
    public function storeCustomerType(Request $request)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }

        $CustomerTypeId = $this->userLib->useridGenrator();
        $CustomerType = new CustomerType;
        $CustomerType->Name = $request->input('name');
        $CustomerType->CustomerTypeId = $CustomerTypeId;        
        $CustomerType->Status = '1';
        $CustomerType->Created_by = session('UserId');
        $CustomerType->Created_at = date('Y-m-d H:i:s', time());
        $CustomerType->Updated_by = session('UserId');
        $CustomerType->Updated_at = date('Y-m-d H:i:s', time());
        $CustomerType->save();
        return redirect()->back()->with('status_success');
    }

    #### Change Status CustomerType
    public function statusUpdateCustomerType($id)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        $data = CustomerType::select('tbl_customer_type.*')
        ->where('CustomerTypeId', '=', $id)
        ->get()->first();
        if ($data->Status == '1') {
            $Status = '0';
        } else {
            $Status = '1';
        }

        $values = array('Status' => $Status, 'Updated_by'=>session('UserId'), 'Updated_at' => date('Y-m-d H:i:s', time()));
        CustomerType::where('CustomerTypeId', $id)->update($values);
        return redirect()->back();
    }


    ### Edit CustomerType
    public function editCustomerType($id)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        $CustomerType = CustomerType::select('tbl_customer_type.*')
        ->where('CustomerTypeId', '=', $id)
        ->get()->first();
        return response()->json([
            'status' => 200,
            'CustomerType' => $CustomerType,
        ]);
    }

    ### Update CustomerType
    public function updateCustomerType(Request $request)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        //$user_id = Auth::id();
        $type_id =  $request->input('id');
        $UpdatedDate = date('Y-m-d H:i:s', time());
        $data = array();
        $data['Updated_at'] = $UpdatedDate;
        $data['Name'] = $request->input('name');
        $data['Updated_by'] = session('UserId');
        $data['Updated_at'] = date('Y-m-d H:i:s', time());

        $CType_update = CustomerType::where('CustomerTypeId', $type_id)->update($data);
        if ($CType_update) {
            echo '1';
        } else {
            echo '0';
        }
        return redirect()->back()->with('status_success');
    }

    ########### Product Family #######
    ### Store New Product Family
    public function storeProductFamily(Request $request)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        $ProductFamilyId = $this->userLib->useridGenrator();
        $ProductFamily = new ProductFamily;
        $ProductFamily->ProductFamilyId = $ProductFamilyId;
        $ProductFamily->Name = $request->input('name');
        $ProductFamily->Status = '1';
        $ProductFamily->Created_by = session('UserId');
        $ProductFamily->Created_at = date('Y-m-d H:i:s', time());
        $ProductFamily->Updated_by = session('UserId');
        $ProductFamily->Updated_at = date('Y-m-d H:i:s', time());
        $ProductFamily->save();
        return redirect()->back()->with('status_success');
    }

    #### Change Status ProductFamily
    public function statusUpdateProductFamily($id)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        $data = ProductFamily::select('tbl_product_family.*')
        ->where('ProductFamilyId', '=', $id)
        ->get()->first();
        if ($data->Status == '1') {
            $Status = '0';
        } else {
            $Status = '1';
        }

        $values = array('Status' => $Status);
        ProductFamily::where('ProductFamilyId', $id)->update($values);
        return redirect()->back();
    }


    ### Edit ProductFamily
    public function editProductFamily($id)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        $ProductFamily = ProductFamily::select('tbl_product_family.*')
        ->where('ProductFamilyId', '=', $id)
        ->get()->first();
        return response()->json([
            'status' => 200,
            'ProductFamily' => $ProductFamily,
        ]);
    }

    ### Update ProductFamily
    public function updateProductFamily(Request $request)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        //$user_id = Auth::id();
        $id =  $request->input('id');
        $UpdatedDate = date('Y-m-d H:i:s', time());
        $data = array();
        $data['Updated_at'] = $UpdatedDate;
        $data['Name'] = $request->input('name');
        $data['Updated_by'] = session('UserId');
        

        $family_update = ProductFamily::where('ProductFamilyId', $id)->update($data);
        if ($family_update) {
            echo '1';
        } else {
            echo '0';
        }
        return redirect()->back()->with('status_success');
    }


    ########### Payment Type #######
    ### Store New Payment Type
    public function storePaymentType(Request $request)
    {
       // $userId = (session('UserId'));
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        
        $PaymentTypeId = $this->userLib->useridGenrator();
        $PaymentType = new PaymentType;
        $PaymentType->PaymentTypeId = $PaymentTypeId;
        $PaymentType->PaymentTypeName = $request->input('PaymentTypeName');
        $PaymentType->Status = '1';
        $PaymentType->Created_by = session('UserId');
        $PaymentType->Created_at = date('Y-m-d H:i:s', time());
        $PaymentType->Updated_by = session('UserId');
        $PaymentType->Updated_at = date('Y-m-d H:i:s', time());
        $PaymentType->save();
        return redirect()->back()->with('status_success');
    }

    #### Change Status PaymentType
    public function statusUpdatePaymentType($id)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        $data = PaymentType::select('tbl_payment_type.*')
        ->where('PaymentTypeId', '=', $id)
        ->get()->first();
        if ($data->Status == '1') {
            $Status = '0';
        } else {
            $Status = '1';
        }

        $values = array('Status' => $Status);
        PaymentType::where('PaymentTypeId', $id)->update($values);
        return redirect()->back();
    }


    ### Edit PaymentType
    public function editPaymentType($id)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        $PaymentType = PaymentType::select('tbl_payment_type.*')
        ->where('PaymentTypeId', '=', $id)
        ->get()->first();
        return response()->json([
            'status' => 200,
            'PaymentType' => $PaymentType,
        ]);
    }

    ### Update PaymentType
    public function updatePaymentType(Request $request)
    {
		if(empty(session('UserId')))
        {
            return redirect('/admin/logout'); 
        }
        //$user_id = Auth::id();
        $type_id =  $request->input('id');
        $UpdatedDate = date('Y-m-d H:i:s', time());
        $data = array();
        $data['Updated_at'] = $UpdatedDate;
        $data['PaymentTypeName'] = $request->input('paymentTypeName');
        $data['Updated_by'] = session('UserId');
        
        $paymentType_update = PaymentType::where('PaymentTypeId', $type_id)->update($data);
        if ($paymentType_update) {
            echo '1';
        } else {
            echo '0';
        }
        return redirect()->back()->with('status_success');
    }

    ##### check Payment Type Name

    public function checkPaymentTypeName(Request $request){
		
        $CreatedDate = date('Y-m-d H:i:s',time());
         
        $data = $request->all(); 

        $PaymentTypeName = PaymentType::where('PaymentTypeName', $data['PaymentTypeName'])->get();               
        if ($PaymentTypeName->count() > 0)
        {   //Name already exist
            $PaymentTypeName = $PaymentTypeName->first();   
            $PaymentTypeNameId = $PaymentTypeName->PaymentTypeNameId;  
        
            $response = [
                'Success' => false,
                'ResponseMessage' => "PaymentType Name already exist in CRM!",
                'ResponseCode' => '201',                
            ];
            return response()->json($response);
        }  
        else{
            $response = [
                'Success' => true,
                'ResponseMessage' => "<span class='text-success'>PaymentType Name Available to create</span>",
                'ResponseCode' => '200',                
            ];
            return response()->json($response);
        }  

    }



}