Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/medad.corals.io/Corals/modules/Medad/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/medad.corals.io/Corals/modules/Medad/Http/Controllers/CompanyRelationsController.php
<?php

namespace Corals\Modules\Medad\Http\Controllers;

use Corals\Foundation\Http\Controllers\BaseController;
use Corals\Modules\Medad\DataTables\CompanyRelationsDataTable;
use Corals\Modules\Medad\DataTables\Scopes\CompanyRelationsScope;
use Corals\Modules\Medad\Http\Requests\CompanyRelationRequest;
use Corals\Modules\Medad\Http\Requests\NewCompanyRequest;
use Corals\Modules\Medad\Models\Branch;
use Corals\Modules\Medad\Models\Company;
use Corals\Modules\Medad\Models\CompanyRelation;
use Corals\Modules\Medad\Services\CompanyService;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;

class CompanyRelationsController extends BaseController
{
    protected $companyService;

    public function __construct(CompanyService $companyService)
    {
        $this->companyService = $companyService;

        $this->resource_url = config('medad.models.company_relation.resource_url');

        $this->title = trans('Medad::module.company_relation.title');
        $this->title_singular = trans('Medad::module.company_relation.title_singular');

        parent::__construct();
    }

    /**
     * @param CompanyRelationRequest $request
     * @param CompanyRelationsDataTable $dataTable
     * @return mixed
     */
    public function index(CompanyRelationRequest $request, CompanyRelationsDataTable $dataTable)
    {
        $this->setViewSharedData(['hideCreate' => true]);
        return $dataTable->render('Medad::company_relations.index');
    }

    /**
     * @param CompanyRelationRequest $request
     * @param Company $company
     * @return Application|Factory|View
     */
    public function getAddCompany(CompanyRelationRequest $request, Company $company)
    {
        return view('Medad::company_relations.add')->with(compact('company'));
    }

    /**
     * @param CompanyRelationRequest $request
     * @param Company $company
     * @return \Illuminate\Foundation\Application|JsonResponse|mixed
     */
    public function submitAddCompany(CompanyRelationRequest $request, Company $company)
    {
        try {
            if (!$request->filled('company_id')) {
                $secondCompany = $this->companyService->storeNewCompanyFromRelation($request);
                $request->request->add(['company_id' => $secondCompany->id]);
            }

            $this->companyService->storeRelation($request, $company);

            return [
                'level' => 'success',
                'message' => trans('Medad::messages.company_added')
            ];
        } catch (\Exception $exception) {
            log_exception($exception, Company::class, 'store');
            return ['level' => 'error', 'message' => $exception->getMessage()];
        }
    }

    /**
     * @param NewCompanyRequest $request
     * @param Company $company
     * @return \Illuminate\Foundation\Application|JsonResponse|mixed
     */
    public function submitAddNewCompany(NewCompanyRequest $request)
    {
        try {
            $newCompany = $this->companyService->storeNewCompanyFromRelation($request);

            return [
                'new_company_id' => $newCompany->id,
                'level' => 'success',
                'message' => trans('Medad::messages.company_added')
            ];
        } catch (\Exception $exception) {
            log_exception($exception, Company::class, 'store');
            return ['level' => 'error', 'message' => $exception->getMessage()];
        }
    }

    public function getCompanyRelations(
        CompanyRelationRequest $request,
        Company $company,
        CompanyRelationsDataTable $dataTable
    ) {
        if ($request->has('tab_html')) {
            $modelDataTable = new CompanyRelationsDataTable();
            $modelDataTable->setResourceUrl($request->url());
            return view('Medad::sub_show')->with(compact('modelDataTable'));
        }
        $dataTable->addScope(new CompanyRelationsScope($company));

        return $dataTable->renderAjaxAndActions();
    }


    /**
     * @param CompanyRelationRequest $request
     * @param CompanyRelation $company_relation
     * @param Company $company
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function edit(CompanyRelationRequest $request, CompanyRelation $company_relation)
    {
        $secondCompany = $company_relation->secondCompany;

        $this->setViewSharedData([
            'title_singular' => trans('Corals::labels.update_title', ['title' => $secondCompany->name])
        ]);

        return view('Medad::company_relations.edit')->with(compact('company_relation'));
    }

    /**
     * @param CompanyRelationRequest $request
     * @param CompanyRelation $company_relation
     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Foundation\Application|JsonResponse|RedirectResponse|Redirector|mixed
     */
    public function update(CompanyRelationRequest $request, CompanyRelation $company_relation)
    {
        try {
            $this->companyService->updateCompanyRelation($request, $company_relation);

            $secondCompany = $company_relation->secondCompany;

            $message = [
                'level' => 'success',
                'message' => trans('Corals::messages.success.updated', ['item' => $secondCompany->name])
            ];
        } catch (\Exception $exception) {
            $message = ['level' => 'error', 'message' => $exception->getMessage()];
            log_exception($exception, Branch::class, 'update');
        }

        return response()->json($message);
    }


    public function getCompanyDetailsByCode(Request $request)
    {
        $company = Company::query()
            ->where('code', $request->code)
            ->firstOrFail();

        return response()->json([
            'data' => $company->only(['id', 'name', 'email', 'phone_number']),
        ]);
    }

}

Spamworldpro Mini