This commit is contained in:
Lizandro Guarnizo
2026-01-06 15:35:59 -05:00
commit a768146f65
602 changed files with 42505 additions and 0 deletions
+67
View File
@@ -0,0 +1,67 @@
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Models\Setting;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Hash;
use App\Hashing\PBKDF2Hasher;
use App\Services\EAN13Service;
use App\Models\Compra;
use App\Models\DetalleCompra;
use App\Observers\CompraObserver;
use App\Observers\ProductoObserver;
use App\Observers\ProductVariantObserver;
use App\Observers\DetalleCompraObserver;
use App\Models\Producto;
use App\Models\ProductVariant;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
$this->app->singleton(EAN13Service::class, function ($app) {
return new EAN13Service();
});
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
app()->setLocale('es');
Compra::observe(CompraObserver::class);
Producto::observe(ProductoObserver::class);
ProductVariant::observe(ProductVariantObserver::class);
DetalleCompra::observe(DetalleCompraObserver::class);
// Usar el hasher personalizado para todo el sistema
Hash::extend('custom', function () {
return new PBKDF2Hasher();
});
if (Schema::hasTable('settings')) {
try {
$setting = Setting::first();
if ($setting) {
// Aquí se actualizan los valores de configuración de Filament
Config::set('filament.brand.logo', $setting->logo ? Storage::url($setting->logo) : null);
Config::set('filament.brand.colors.primary', $setting->primary_color ?? '#3498db');
Config::set('filament.brand.colors.secondary', $setting->secondary_color ?? '#2ecc71');
}
} catch (\Exception $e) {
Log::error('Error al cargar configuraciones de settings: ' . $e->getMessage());
}
}
}
}
@@ -0,0 +1,60 @@
<?php
namespace App\Providers\Filament;
use App\Filament\Resources\ReporteventasResource\Pages\ReporteVentas;
use Filament\Http\Middleware\Authenticate;
use Filament\Http\Middleware\AuthenticateSession;
use Filament\Http\Middleware\DisableBladeIconComponents;
use Filament\Http\Middleware\DispatchServingFilamentEvent;
use Filament\Pages;
use Filament\Panel;
use Filament\PanelProvider;
use Filament\Support\Colors\Color;
use Filament\Widgets;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
use Illuminate\Cookie\Middleware\EncryptCookies;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
use Illuminate\Routing\Middleware\SubstituteBindings;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\View\Middleware\ShareErrorsFromSession;
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->id('admin')
->path('admin')
->login()
->colors([
'primary' => Color::Amber,
])
->discoverResources(in: app_path('Filament/Resources'), for: 'App\\Filament\\Resources')
->discoverPages(in: app_path('Filament/Pages'), for: 'App\\Filament\\Pages')
->pages([
Pages\Dashboard::class,
ReporteVentas::class, // <--- registra aquí
])
->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\\Filament\\Widgets')
->widgets([
Widgets\AccountWidget::class,
// Widgets\FilamentInfoWidget::class,
])
->middleware([
EncryptCookies::class,
AddQueuedCookiesToResponse::class,
StartSession::class,
AuthenticateSession::class,
ShareErrorsFromSession::class,
VerifyCsrfToken::class,
SubstituteBindings::class,
DisableBladeIconComponents::class,
DispatchServingFilamentEvent::class,
])
->authMiddleware([
Authenticate::class,
]);
}
}