Как я могу поставить счетчик отпуска в Laravel? - PullRequest
0 голосов
/ 16 апреля 2019

Здесь, в имени пользователя, он будет получать данные из коллекции mongodb, но в Общее количество отпусков в этом месяце Я хочу указать в этом месяце счетчик, сколько сотрудников уходит?

<form id="myform" class="form-horizontal" method="POST" action="{{ url('approve-leave', $leaves->id) }}">
    @csrf
    <div class="row">
        <label class="col-md-6"><strong> Employee Name</strong></label>
        <div class="col-md-6">
            {{$leaves->username}}
        </div>
    </div>
    <hr>
    <div class="row">
        <label class="col-md-6"><strong> Total Leave in this month </strong></label>
        <div class="col-md-6">
            1
        </div>
    </div>
</form>

Итак, кто-нибудь, пожалуйста, помогите мне, как я могу это сделать?

1 Ответ

2 голосов
/ 16 апреля 2019

У вас та же проблема, что и у меня. Я решил эту проблему, используя подход ниже. Сначала я создал отдельную таблицу для year_wise_use_leave. В этой таблице я увеличиваю счет на каждый месяц, используя работу кроны. И непосредственно отображаются ежемесячные доступные отпуска из этой таблицы.

А для одобрения / отклонения действия будут напрямую отражены в этой таблице. так что если вы хотите получить ежегодный отпуск пользователя, это будет легко в это время.

Когда вводится ежегодный отпуск пользователя, вы должны разделить его на 12 и сохранить в таблице year_wise_use_leave.

Вот мой код работы крона

$userLeaves = UserAdditionalDetail::select('id', 'user_id', 'total_leaves')->whereHas('user', function ($query) {
        $query->where('deleted_at', null);
    })->get();

    foreach ($userLeaves as $userLeave) {
        $yearlyLeave = YearWiseUserLeave::where('user_id', $userLeave->user->id)->where('is_expired', 0)->first();
        $yearlyLeave->total_leave += $userLeave->total_leaves / 12;
        $yearlyLeave->save();
    }

Здесь UserAdditionalDetail - моя таблица, где хранится ежегодный отпуск пользователя. И эта крона-работа вызывается каждый месяц.

Надеюсь, это поможет:)

...