#39 - generate timesheet #56
@@ -48,6 +48,6 @@ enum Month: string
|
||||
|
|
||||
|
||||
public static function fromNameOrCurrent(string $name): Month
|
||||
{
|
||||
return Month::tryFrom($name) ?? Month::current();
|
||||
|
I think we can simplify it: I think we can simplify it:
```suggestion
return Month::tryFrom($name) ?? Month::current();
```
|
||||
return Month::tryFrom($name) ?? Month::current();
|
||||
|
I think we can simplify it: I think we can simplify it:
```suggestion
return Month::tryFrom($name) ?? Month::current();
```
|
||||
}
|
||||
}
|
||||
|
||||
|
I think we can simplify it: I think we can simplify it:
```suggestion
return Month::tryFrom($name) ?? Month::current();
```
I think we can simplify it: I think we can simplify it:
```suggestion
return Month::tryFrom($name) ?? Month::current();
```
|
||||
@@ -7,6 +7,7 @@ namespace Toby\Domain;
|
||||
|
Why not to use Why not to use `map()`?
Why not to use Why not to use `map()`?
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
|
||||
use Toby\Eloquent\Models\User;
|
||||
|
Why not to use Why not to use `map()`?
|
||||
|
||||
class TimesheetExport implements WithMultipleSheets
|
||||
{
|
||||
@@ -15,13 +16,9 @@ class TimesheetExport implements WithMultipleSheets
|
||||
|
Why not to use Why not to use `map()`?
Why not to use Why not to use `map()`?
|
||||
|
||||
public function sheets(): array
|
||||
{
|
||||
$sheets = [];
|
||||
|
Why not to use Why not to use `map()`?
|
||||
|
||||
|
Why not to use Why not to use `map()`?
|
||||
foreach ($this->users as $user) {
|
||||
|
Why not to use Why not to use `map()`?
|
||||
$sheets[] = new TimesheetPerUserSheet($user, $this->month);
|
||||
|
Why not to use Why not to use `map()`?
|
||||
}
|
||||
|
Why not to use Why not to use `map()`?
|
||||
|
||||
|
Why not to use Why not to use `map()`?
|
||||
return $sheets;
|
||||
|
Why not to use Why not to use `map()`?
|
||||
return $this->users
|
||||
|
Why not to use Why not to use `map()`?
|
||||
->map(fn(User $user) => new TimesheetPerUserSheet($user, $this->month))
|
||||
|
Why not to use Why not to use `map()`?
|
||||
->toArray();
|
||||
|
Why not to use Why not to use `map()`?
|
||||
}
|
||||
|
||||
public function forUsers(Collection $users): static
|
||||
|
||||
|
Why not to use Why not to use `map()`?
Why not to use Why not to use `map()`?
|
||||
@@ -35,6 +35,8 @@ class TimesheetPerUserSheet implements WithTitle, WithHeadings, WithEvents, With
|
||||
|
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
|
||||
use RegistersEventListeners;
|
||||
|
||||
protected const HOURS_PER_DAY = 8;
|
||||
protected const START_HOUR = 8;
|
||||
|
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
|
||||
protected const END_HOUR = 16;
|
||||
|
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
|
||||
|
||||
public function __construct(
|
||||
protected User $user,
|
||||
@@ -79,8 +81,8 @@ class TimesheetPerUserSheet implements WithTitle, WithHeadings, WithEvents, With
|
||||
|
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
|
||||
$row = [
|
||||
Date::dateTimeToExcel($day),
|
||||
$day->translatedFormat("l"),
|
||||
$workedThisDay ? $this->toExcelTime(Carbon::createFromTime(8)) : null,
|
||||
|
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
|
||||
$workedThisDay ? $this->toExcelTime(Carbon::createFromTime(16)) : null,
|
||||
|
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
|
||||
$workedThisDay ? $this->toExcelTime(Carbon::createFromTime(static::START_HOUR)) : null,
|
||||
|
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
|
||||
$workedThisDay ? $this->toExcelTime(Carbon::createFromTime(static::END_HOUR)) : null,
|
||||
|
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
|
||||
$workedThisDay ? static::HOURS_PER_DAY : null,
|
||||
];
|
||||
|
||||
|
||||
|
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
Maybe move these hours to consts as start hour and end hour? Maybe move these hours to consts as start hour and end hour?
|
||||
@@ -2,6 +2,7 @@
|
||||
|
I would import that too. I would import that too.
I would import that too. I would import that too.
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Maatwebsite\Excel\DefaultValueBinder;
|
||||
|
I would import that too. I would import that too.
|
||||
use Maatwebsite\Excel\Excel;
|
||||
|
||||
return [
|
||||
@@ -75,7 +76,7 @@ return [
|
||||
|
I would import that too. I would import that too.
I would import that too. I would import that too.
|
||||
"pdf" => Excel::DOMPDF,
|
||||
],
|
||||
"value_binder" => [
|
||||
"default" => Maatwebsite\Excel\DefaultValueBinder::class,
|
||||
|
I would import that too. I would import that too.
|
||||
"default" => DefaultValueBinder::class,
|
||||
|
I would import that too. I would import that too.
|
||||
],
|
||||
|
||||
"cache" => [
|
||||
|
||||
|
I would import that too. I would import that too.
I would import that too. I would import that too.
|
||||
@@ -9,7 +9,7 @@
|
||||
</div>
|
||||
<div>
|
||||
<a
|
||||
:href="`timesheet/${selectedMonth.value}`"
|
||||
:href="`/timesheet/${selectedMonth.value}`"
|
||||
class="inline-flex items-center px-4 py-3 border border-transparent text-sm leading-4 font-medium rounded-md shadow-sm text-white bg-blumilk-600 hover:bg-blumilk-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blumilk-500"
|
||||
>
|
||||
Pobierz plik excel
|
||||
|
||||
I think we can simplify it:
I think we can simplify it: