Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=construction_erp
DB_USERNAME=root
DB_PASSWORD=

SESSION_DRIVER=database
SESSION_LIFETIME=120
Expand Down
23 changes: 20 additions & 3 deletions app/Enums/InvoiceStatusEnum.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,41 @@
namespace App\Enums;

use Filament\Support\Contracts\HasColor;
use Filament\Support\Contracts\HasDescription;
use Filament\Support\Contracts\HasIcon;
use Filament\Support\Contracts\HasLabel;
use Illuminate\Support\Str;

enum InvoiceStatusEnum: string implements HasLabel, HasColor, HasIcon
enum InvoiceStatusEnum: string implements HasLabel, HasColor, HasIcon, HasDescription
{
case DRAFT = 'draft';
case SENT = 'sent';
case UNPAID = 'unpaid';
case PARTIALLY_PAID = 'partially_paid';
case PAID = 'paid';
case CANCELED = 'canceled';

public function getLabel(): string
{
return ucwords(__($this->value));
return __(
Str::ucfirst(
Str::replace('_', ' ', $this->value)
)
);
}

public function getDescription(): ?string
{
return $this->getLabel();
}

public function getColor(): string
{
return match ($this) {
self::DRAFT => 'gray',
self::SENT => 'info',
self::UNPAID => 'warning',
self::PARTIALLY_PAID => 'warning',
self::PAID => 'success',
self::CANCELED => 'danger',
};
Expand All @@ -33,8 +48,10 @@ public function getIcon(): ?string
return match ($this) {
self::DRAFT => 'heroicon-o-document-duplicate',
self::SENT => 'heroicon-o-document',
self::UNPAID => 'heroicon-o-x-circle',
self::PARTIALLY_PAID => 'heroicon-o-clipboard-document-check',
self::PAID => 'heroicon-o-check',
self::CANCELED => 'heroicon-o-x-circle',
self::CANCELED => 'heroicon-o-exclamation-circle',
};
}

Expand Down
64 changes: 64 additions & 0 deletions app/Filament/App/Resources/BranchResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?php

namespace App\Filament\App\Resources;

use App\Filament\App\Resources\BranchResource\Pages;
use App\Filament\App\Resources\BranchResource\RelationManagers;
use App\Models\Branch;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;

class BranchResource extends Resource
{
protected static ?string $model = Branch::class;

protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';

public static function form(Form $form): Form
{
return $form
->schema([
//
]);
}

public static function table(Table $table): Table
{
return $table
->columns([
//
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}

public static function getRelations(): array
{
return [
//
];
}

public static function getPages(): array
{
return [
'index' => Pages\ListBranches::route('/'),
'create' => Pages\CreateBranch::route('/create'),
'edit' => Pages\EditBranch::route('/{record}/edit'),
];
}
}
12 changes: 12 additions & 0 deletions app/Filament/App/Resources/BranchResource/Pages/CreateBranch.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace App\Filament\App\Resources\BranchResource\Pages;

use App\Filament\App\Resources\BranchResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;

class CreateBranch extends CreateRecord
{
protected static string $resource = BranchResource::class;
}
19 changes: 19 additions & 0 deletions app/Filament/App/Resources/BranchResource/Pages/EditBranch.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace App\Filament\App\Resources\BranchResource\Pages;

use App\Filament\App\Resources\BranchResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;

class EditBranch extends EditRecord
{
protected static string $resource = BranchResource::class;

protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
19 changes: 19 additions & 0 deletions app/Filament/App/Resources/BranchResource/Pages/ListBranches.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace App\Filament\App\Resources\BranchResource\Pages;

use App\Filament\App\Resources\BranchResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;

class ListBranches extends ListRecords
{
protected static string $resource = BranchResource::class;

protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
64 changes: 64 additions & 0 deletions app/Filament/App/Resources/EquipmentResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?php

namespace App\Filament\App\Resources;

use App\Filament\App\Resources\EquipmentResource\Pages;
use App\Filament\App\Resources\EquipmentResource\RelationManagers;
use App\Models\Equipment;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;

class EquipmentResource extends Resource
{
protected static ?string $model = Equipment::class;

protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';

public static function form(Form $form): Form
{
return $form
->schema([
//
]);
}

public static function table(Table $table): Table
{
return $table
->columns([
//
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}

public static function getRelations(): array
{
return [
//
];
}

public static function getPages(): array
{
return [
'index' => Pages\ListEquipment::route('/'),
'create' => Pages\CreateEquipment::route('/create'),
'edit' => Pages\EditEquipment::route('/{record}/edit'),
];
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace App\Filament\App\Resources\EquipmentResource\Pages;

use App\Filament\App\Resources\EquipmentResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;

class CreateEquipment extends CreateRecord
{
protected static string $resource = EquipmentResource::class;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace App\Filament\App\Resources\EquipmentResource\Pages;

use App\Filament\App\Resources\EquipmentResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;

class EditEquipment extends EditRecord
{
protected static string $resource = EquipmentResource::class;

protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace App\Filament\App\Resources\EquipmentResource\Pages;

use App\Filament\App\Resources\EquipmentResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;

class ListEquipment extends ListRecords
{
protected static string $resource = EquipmentResource::class;

protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
6 changes: 3 additions & 3 deletions app/Filament/App/Resources/InvoiceResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@
use Filament\Support\Enums\FontWeight;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Illuminate\Support\Str;
use Symfony\Component\HttpFoundation\StreamedResponse;

class InvoiceResource extends Resource
Expand Down Expand Up @@ -89,6 +88,7 @@ public static function form(Form $form): Form
->required()
->columnSpan(2),
Forms\Components\TextInput::make('discount')
->translateLabel()
->numeric()
->live()
->afterStateUpdated(fn(Forms\Set $set, Forms\Get $get) => self::calcItemTotal($get, $set)),
Expand Down Expand Up @@ -350,6 +350,6 @@ public static function generatePdf(Invoice $invoice): StreamedResponse
return response()->streamDownload(function () use ($invoice) {
$pdf = (new InvoiceService())->generatePdf($invoice);
echo $pdf->stream();
}, 'invoice_' . $invoice->number . '.pdf');
}, Str::snake($invoice->client->name).'_invoice_' . $invoice->number . '.pdf');
}
}
Loading