[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Albert Reis da Cruz
Criador Albert Reis da Cruz 14/02/2022

Carlos, Bom dia!

Tudo bem amigo?

Criador Albert Reis da Cruz 14/02/2022

Desculpe, enviei a dúvida em branco.

Vamos lá

neste projeto, o usuário precisa registrar 4 eventos (horários ) todos os dias(entrada, saída, entrada, saída) como uma folha de ponto.

no entanto, se o usuário esquece de efetuar um registro ou mais, minha lógica quebra. Preciso de uma forcinha aqui

abaixo segue a view e controller, se precisar de mais informações te mando o git

 

 

Albert Reis da Cruz
Criador Albert Reis da Cruz 14/02/2022

view:


@foreach ($employee->points->chunk(4) as $chunk)
    @php
        $item1 = $item2 = $item3 = $item4 = $total = $hours = $minutes = 0;
    @endphp
    <tr>
    @foreach ($chunk as $key => $point)
        @if ($loop->first)
            <td>
                <strong>
                    {{ date('d/m/Y', strtotime($point->register)) }}
                </strong>
            </td>
        @endif
        <td>
            {{ date('H:i:s', strtotime($point->register)) }}
            {{-- {{$loop->remaining}} #
            {{$loop->count}} --}}
        </td>
        @if ($loop->remaining  == 3)
            @php
                $item1 = $point->register;
            @endphp
        @endif
        @if ($loop->remaining  == 2)
            @php
                $item2 = $point->register;
            @endphp
        @endif
        @if ($loop->remaining == 1)
            @php
                $item3 = $point->register;
            @endphp
        @endif
        @if (($loop->remaining == 0))
            @php
                $item4 = $point->register;
            @endphp
        @endif
        @if ($loop->last)
            @if ($loop->count == 1)
                <td></td>
                <td></td>
                <td></td>
            @endif
            @if ($loop->count == 2)
                <td></td>
                <td></td>
            @endif
            @if ($loop->count == 3)
                <td></td>
            @endif
        @endif
    @endforeach
    </tr>
@endforeach
Albert Reis da Cruz
Criador Albert Reis da Cruz 14/02/2022

controller: 


    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function history($id)
    {
        if (!$employee = $this->repository->find($id)) {
            return redirect()->back();
        }

        $filter = date('');

        $employee = $this->repository
                    ->with(['points' => function ($query) use ($filter) {

                        $query->where('register', 'LIKE', "{$filter}%")->orderBy('register', 'DESC');    /* filtra points */
                        $query->where('reason_status','N');                 /* filtra points sem motivos*/

                    }])->find($id):                            /* filtra os usuários com função funcionário */
                    /* ->paginate() */;



        return view('admin.pages.employees.historySheet', compact('employee'));
    }
Albert Reis da Cruz
Criador Albert Reis da Cruz 14/02/2022

Desculpe, não estava indo tudo junto, precisei mandar separado

Albert Reis da Cruz
Manager Carlos Ferreira 14/02/2022

Olá, Albert!
Tudo bem?

Sempre que precisar enviar código, ainda mais em grande quantidade, usa o GitHub, fica mais fácil para você, e principalmente para mim.

---

Primeiro um feedback amigo, sua view tem lógica, e muita. Procura usar repositories, e usar o helper de collection map do Laravel, para fazer essas operações fora da view.

---

se o usuário esquece de efetuar um registro ou mais, minha lógica quebra

O quer dizer com quebra?
Gera erro? Qual? Print: https://uploaddeimagens.com.br/

Está com problemas em chegar na lógica do projeto?
Se sim, como a sua pergunta é algo muito particular, vou pedir que encaminhe ela para [email protected], porque assim posso te ajudar de forma mais direcionada.

Carlos Ferreira
Criador Albert Reis da Cruz 14/02/2022

Vamos lá:

1º - se o usuário esquece de efetuar um registro ou mais, minha lógica quebra, O quer dizer com quebra?

https://uploaddeimagens.com.br/imagens/o2W8FV0

a tabela deve constar na primeira coluna, a data e nas demas colunas os horários (mesmo dia)

2ª estou ciente que a view tem muita lógica, o motivo é não saber resolver da forma correta. 

3ª - segue o link do git: https://github.com/zurctrebla/sisgecon

aqui a view: https://github.com/zurctrebla/sisgecon/blob/master/resources/views/admin/pages/employees/historySheet.blade.php

aqui a controller: https://github.com/zurctrebla/sisgecon/blob/master/app/Http/Controllers/Admin/EmployeeController.php

aqui a model: https://github.com/zurctrebla/sisgecon/blob/master/app/Models/Employee.php

aqui a migration: https://github.com/zurctrebla/sisgecon/blob/master/database/migrations/2022_01_20_115125_create_points_table.php

quanto à logica do projeto, sim, pode ser que eu não tenha feito a modelagem corretamente, estou disposto a resolver o problema.

Infelizmente isso só surgiu depois do projeto já estar rodando. 

Sua dica de usar o repositories, pode mandar o link da documentação?, procurei mas não sei ao certo se o que encontrei é o que vc está se referindo!

Grato

 

 

Albert Reis da Cruz
Manager Carlos Ferreira 14/02/2022

Como a sua pergunta é algo muito particular, vou pedir que encaminhe ela para [email protected] (id do ticket: 2529), porque assim posso te ajudar de forma mais direcionada.

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!