#39 - generate timesheet #56
@@ -48,6 +48,6 @@ enum Month: string
|
|||||||
|
|
|||||||
|
|
||||||
public static function fromNameOrCurrent(string $name): Month
|
public static function fromNameOrCurrent(string $name): Month
|
||||||
{
|
{
|
||||||
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();
```
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\Database\Eloquent\Collection;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
|
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
|
||||||
|
use Toby\Eloquent\Models\User;
|
||||||
|
Why not to use Why not to use `map()`?
|
|||||||
|
|
||||||
class TimesheetExport implements WithMultipleSheets
|
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
|
public function sheets(): array
|
||||||
{
|
{
|
||||||
$sheets = [];
|
return $this->users
|
||||||
|
Why not to use Why not to use `map()`?
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()`?
Why not to use Why not to use `map()`?
|
|||||||
foreach ($this->users as $user) {
|
->toArray();
|
||||||
|
Why not to use Why not to use `map()`?
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()`?
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function forUsers(Collection $users): static
|
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;
|
use RegistersEventListeners;
|
||||||
|
|
||||||
protected const HOURS_PER_DAY = 8;
|
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(
|
public function __construct(
|
||||||
protected User $user,
|
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 = [
|
$row = [
|
||||||
Date::dateTimeToExcel($day),
|
Date::dateTimeToExcel($day),
|
||||||
$day->translatedFormat("l"),
|
$day->translatedFormat("l"),
|
||||||
$workedThisDay ? $this->toExcelTime(Carbon::createFromTime(8)) : null,
|
$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?
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,
|
$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?
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,
|
$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);
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use Maatwebsite\Excel\DefaultValueBinder;
|
||||||
|
I would import that too. I would import that too.
|
|||||||
use Maatwebsite\Excel\Excel;
|
use Maatwebsite\Excel\Excel;
|
||||||
|
|
||||||
return [
|
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,
|
"pdf" => Excel::DOMPDF,
|
||||||
],
|
],
|
||||||
"value_binder" => [
|
"value_binder" => [
|
||||||
"default" => Maatwebsite\Excel\DefaultValueBinder::class,
|
"default" => DefaultValueBinder::class,
|
||||||
|
I would import that too. I would import that too.
I would import that too. I would import that too.
|
|||||||
],
|
],
|
||||||
|
|
||||||
"cache" => [
|
"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>
|
||||||
<div>
|
<div>
|
||||||
<a
|
<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"
|
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
|
Pobierz plik excel
|
||||||
|
|||||||
I think we can simplify it:
I think we can simplify it: