HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
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/ipsremont-demo/app/Http/Controllers/ReconciliationController.php
<?php

namespace App\Http\Controllers;

use App\Console\Commands\ImportGetInPaymentOrder;
use App\Console\Commands\ImportGetOutPaymentOrder;
use App\Console\Commands\ImportSalesReceipt;
use App\Helpers\UserHelper;
use App\Http\Requests\Reconciliation\ReconciliationRequest;
use App\Models\Permission;
use App\Models\Reconciliation;
use App\Services\Branch\BranchService;
use App\Services\Reconciliation\ReconciliationService;
use App\Services\Service\ServiceService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;

class ReconciliationController extends Controller
{

    protected string $permission = Permission::reconciliation;

    public function index(Request $request)
    {
        $branches = [];
        $services = [];
        $user = UserHelper::getUser();
        if ($user->isManager()) {
            if (can(Permission::branchesAll) || count($user->getBranchIds()) > 1) {
                $branches = BranchService::getDisplayed();
                $services = ServiceService::getByBranchAjax($user->getBranchIds(), null, 'inline');
            } else {
                $services = ServiceService::getDisplayed()->pluck('name', 'id')->toArray();
            }
        }

        $error = $request->get('error');
        $error = empty($error) ? '' : $error;

        $model = new Reconciliation();
        $validate = new ReconciliationRequest();

        return view('reconciliation.index', compact('services', 'branches', 'validate', 'model', 'error'))->with(['sections' => ['service_id', 'branch_id']]);
    }

    public function formAct(ReconciliationRequest $request)
    {
        $user = UserHelper::getUser();
        if ($user->isService()) {
            $service = $user->getService();
        } else {
            $service = ServiceService::getById($request->service_id);
        }

        if (!in_array(App::environment(), ['local', 'stage'])) {
            $error = (new ImportSalesReceipt(true))->handle();
            if (!empty($error) && is_string($error)) {
                return redirect(route('reconciliation.index', ['error' => $error]));
            }
            $error = (new ImportGetOutPaymentOrder(true))->handle();
            if (!empty($error) && is_string($error)) {
                return redirect(route('reconciliation.index', ['error' => $error]));
            }
            $error = (new ImportGetInPaymentOrder(true))->handle();
            if (!empty($error) && is_string($error)) {
                return redirect(route('reconciliation.index', ['error' => $error]));
            }
        }

        $file = ReconciliationService::createReport($request->date_start, $request->date_end, $service);

        return response()->download($file);
    }

}