This commit is contained in:
salam committed 2026-07-04 18:15:17 +02:00
1 parent eb598ae0ce
commit 16c0aa24fe
14 files changed
+303 -170

No files matched your search

+91
View File
@@ -0,0 +1,91 @@
<?php
namespace App\Actions\Cloning;
use App\Models\ProjektAllgemeinflaechen;
use App\Models\Projekte;
use App\Models\ProjektInhaltsverzeichnis;
use App\Models\ProjektMerkmale;
use App\Models\ProjektMethode;
use App\Models\ProjektObjekte;
use App\Models\ProjektObjekteImDetail;
use App\Models\ProjektPlatzhalter;
use App\Models\ProjektUser;
use Illuminate\Support\Facades\Auth;
class CloneProjekt
{
public static function clone(Projekte $record)
{
/**
* projektes
* projekt_users
* projekt_allgemeinflaechens
* projekt_inhaltsverzeichnis
* projekt_merkmales
* projekt_methodes
* projekt_platzhalters
* projekt_objekte_im_details
* projekt_objektes
*/
$news_project = $record->replicate();
$news_project->cloned_from_id = $record->id;
$news_project->save();
ProjektUser::create(['user_id' => Auth::user()->id, 'projekte_id' => $news_project->id]);
$res = ProjektObjekte::where('projekte_id', $record->id)->get();
foreach ($res as $row) {
$new = $row->replicate();
$new->projekte_id = $news_project->id;
$new->projekte_cloned_from_id = $row->id;
$new->save();
$res2 = ProjektObjekteImDetail::where('projekte_id', $record->id)->where('projekt_objekte_id', $row->id)->get();
foreach ($res2 as $row2) {
$new2 = $row2->replicate();
$new2->projekte_id = $news_project->id;
$new2->projekt_objekte_id = $new->id;
$new2->projekte_objekte_cloned_from_id = $row2->id;
$new2->save();
}
}
$res = ProjektAllgemeinflaechen::where('projekte_id', $record->id)->get();
foreach ($res as $row) {
$new = $row->replicate();
$new->projekte_id = $news_project->id;
$new->save();
}
$res = ProjektInhaltsverzeichnis::where('projekte_id', $record->id)->get();
foreach ($res as $row) {
$new = $row->replicate();
$new->projekte_id = $news_project->id;
$new->save();
}
$res = ProjektPlatzhalter::where('projekte_id', $record->id)->get();
foreach ($res as $row) {
$new = $row->replicate();
$new->projekte_id = $news_project->id;
$new->save();
}
$res = ProjektMerkmale::where('projekte_id', $record->id)->get();
foreach ($res as $row) {
$new = $row->replicate();
$new->projekte_id = $news_project->id;
$new->save();
}
$res = ProjektMethode::where('projekte_id', $record->id)->get();
foreach ($res as $row) {
$new = $row->replicate();
$new->projekte_id = $news_project->id;
$new->save();
}
$res = ProjektPlatzhalter::where('projekte_id', $record->id)->get();
foreach ($res as $row) {
$new = $row->replicate();
$new->projekte_id = $news_project->id;
$new->save();
}
}
}
+100
View File
@@ -0,0 +1,100 @@
<?php
namespace App\Actions\Cloning;
use App\Models\ProjektAllgemeinflaechen;
use App\Models\Projekte;
use App\Models\ProjektInhaltsverzeichnis;
use App\Models\ProjektMerkmale;
use App\Models\ProjektMethode;
use App\Models\ProjektObjekte;
use App\Models\ProjektObjekteImDetail;
use App\Models\ProjektPlatzhalter;
class CloneValidation
{
public static function validate(Projekte $record)
{
/**
* projektes
* projekt_users
* projekt_allgemeinflaechens
* projekt_inhaltsverzeichnis
* projekt_merkmales
* projekt_methodes
* projekt_platzhalters
* projekt_objekte_im_details
* projekt_objektes
*/
$ORIGINAL = $record->cloned_from_id;
$GEKLONT = $record->id;
// $originals = ProjektObjekte::where('projekte_id', $ORIGINAL)->get();
// foreach ($originals as $original) {
// $check = ProjektObjekte::where('projekte_id', $GEKLONT)->where('top_nummer', $original->top_nummer)->first();
// if (! $check) {
// /**
// * Im original dazugekommen
// */
// $new = $original->replicate();
// $new->projekte_id = $GEKLONT;
// $new->save();
// $res2 = ProjektObjekteImDetail::where('projekte_id', $ORIGINAL)->where('projekt_objekte_id', $original->id)->get();
// foreach ($res2 as $row2) {
// $check = ProjektObjekteImDetail::where('projekte_id', $GEKLONT)->where('raumart', $row2->raumart)->first();
// if (! $check) {
// $new2 = $row2->replicate();
// $new2->projekte_id = $GEKLONT;
// $new2->projekt_objekte_id = $new->id;
// $new2->save();
// }
// }
// }
// }
// $res = ProjektAllgemeinflaechen::where('projekte_id', $original_id)->get();
// foreach ($res as $row) {
// $check = ProjektInhaltsverzeichnis::where('projekte_id', $original_id)->where('raumart', $original->raumart)->first();
// if (! $check) {
// $new = $row->replicate();
// $new->projekte_id = $record->id;
// $new->save();
// }
// }
// $res = ProjektInhaltsverzeichnis::where('projekte_id', $original_id)->get();
// foreach ($res as $row) {
// $check = ProjektInhaltsverzeichnis::where('projekte_id', $original_id)->where('top_nummer', $original->top_nummer)->first();
// if (! $check) {
// $new = $row->replicate();
// $new->projekte_id = $record->id;
// $new->save();
// }
// }
// $res = ProjektPlatzhalter::where('projekte_id', $record->id)->get();
// foreach ($res as $row) {
// $new = $row->replicate();
// $new->projekte_id = $record->id;
// $new->save();
// }
// $res = ProjektMerkmale::where('projekte_id', $record->id)->get();
// foreach ($res as $row) {
// $new = $row->replicate();
// $new->projekte_id = $record->id;
// $new->save();
// }
// $res = ProjektMethode::where('projekte_id', $record->id)->get();
// foreach ($res as $row) {
// $new = $row->replicate();
// $new->projekte_id = $record->id;
// $new->save();
// }
// $res = ProjektPlatzhalter::where('projekte_id', $record->id)->get();
// foreach ($res as $row) {
// $new = $row->replicate();
// $new->projekte_id = $record->id;
// $new->save();
// }
}
}
@@ -2,6 +2,7 @@
namespace App\Filament\Resources\Projektes\Pages;
use App\Actions\Cloning\CloneValidation;
use App\Actions\Validation\GutachtenValidation;
use App\Filament\Resources\Projektes\ProjekteResource;
use App\Models\Konto;
@@ -138,8 +139,24 @@ class EditProjekte extends EditRecord
->icon('phosphor-download')
->color('info')
->button(),
/**
* ADMIN
*/
ActionGroup::make([
Action::make('relationen')
->label('Relationen überprüfen')
->modalIcon('phosphor-gear')
->modalDescription('Dieses Projekt wurde gekloned. Mit dieser Funktion können Fehler behoben und Änderungen vom originalen Projekt übernommen werden. Objekte ohne Verbindung werden gelöscht.')
->hidden(fn ($record): bool => ! $record->cloned_from_id)
->action(fn ($record) => CloneValidation::validate($record))
->icon('phosphor-gear'),
DeleteAction::make()->icon('heroicon-o-trash')
->modalDescription('Möchten Sie dieses Projekt wirklich löschen? Die Daten werden unwiderbringlich gelöscht, dieser Vorgang kann nicht rückgängig gemacht werden.'),
])->label('Admin')
->icon('phosphor-user-circle')
->button(),
];
}
@@ -2,6 +2,7 @@
namespace App\Filament\Resources\Projektes\Tables;
use App\Actions\Cloning\CloneProjekt;
use App\Enums\ProjektStatus;
use App\Models\Auftraggeber;
use App\Models\Gutachter;
@@ -16,9 +17,9 @@ use Filament\Tables\Enums\FiltersLayout;
use Filament\Tables\Filters\Filter;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\HtmlString;
use Illuminate\Database\Eloquent\Builder;
class ProjektesTable
{
@@ -28,17 +29,17 @@ class ProjektesTable
->columns([
TextColumn::make('id'),
ToggleColumn::make('meine')
->state(fn($record) => ProjektUser::where('user_id', auth()->user()->id)->where('projekte_id', $record->id)->count())
->state(fn ($record) => ProjektUser::where('user_id', auth()->user()->id)->where('projekte_id', $record->id)->count())
->beforeStateUpdated(function ($record, $state) {
if($state){
if ($state) {
ProjektUser::create(['user_id' => auth()->user()->id, 'projekte_id' => $record->id]);
}else{
} else {
ProjektUser::where('user_id', auth()->user()->id)->where('projekte_id', $record->id)->delete();
}
}),
TextColumn::make('interner_name')
->badge()
->tooltip(fn($record): HtmlString => new HtmlString($record->beschreibung))
->tooltip(fn ($record): HtmlString => new HtmlString($record->beschreibung))
->label('Interner Name')
->color(fn ($record): string => match ($record->status) {
'entwurf' => 'primary',
@@ -53,7 +54,6 @@ class ProjektesTable
->label('Offizieller Name'),
TextColumn::make('gutachter.company'),
TextColumn::make('auftraggeber.company'),
// TextColumn::make('ort'),
TextColumn::make('erstellung')->sortable(),
])
->striped()
@@ -63,7 +63,7 @@ class ProjektesTable
->filters([
Filter::make('meine')
->schema([
Toggle::make('meine')->label('Meine Projekte')
Toggle::make('meine')->label('Meine Projekte'),
])->query(function (Builder $query, array $data): Builder {
return $query->when(
$data['meine'],
@@ -101,7 +101,7 @@ class ProjektesTable
->recordActions([
EditAction::make()->iconButton(),
Action::make('dokument_klonen')
->action(fn(Projekte $record) => $record->duplicate())
->action(fn (Projekte $record) => CloneProjekt::clone($record))
->iconButton()
->icon('phosphor-copy')
->requiresConfirmation(),
+1
View File
@@ -10,6 +10,7 @@ class ProjektObjekte extends Model
{
protected $fillable = [
'projekte_id',
'projekte_cloned_from_id',
'orientierung_id',
'nicht_in_orientierung',
'top_nummer',
+1
View File
@@ -9,6 +9,7 @@ class ProjektObjekteImDetail extends Model
protected $fillable = [
'projekte_id',
'projekt_objekte_id',
'projekte_objekte_cloned_from_id',
'methode_id',
'top_nummer',
'geschoss',
+1 -12
View File
@@ -7,18 +7,6 @@ use Illuminate\Database\Eloquent\Model;
class Projekte extends Model
{
use \Bkwld\Cloner\Cloneable;
protected $cloneable_relations = [
'projekt_objekte',
'projekt_platzhalters',
'projekt_allgemeinflaechens',
'projekt_raeumealles',
'projekt_methodes',
'projekt_inhaltsverzeichnis',
'projekt_merkmale',
];
protected $primaryKey = 'id';
protected $fillable = [
@@ -26,6 +14,7 @@ class Projekte extends Model
'konto_id',
'auftraggeber_id',
'gutachter_id',
'cloned_from_id',
'interner_name',
'offizieller_name',
'ort',
-7
View File
@@ -56,13 +56,6 @@
0 => 'BezhanSalleh\\FilamentShield\\FilamentShieldServiceProvider',
),
),
'bkwld/cloner' =>
array (
'providers' =>
array (
0 => 'Bkwld\\Cloner\\ServiceProvider',
),
),
'blade-ui-kit/blade-heroicons' =>
array (
'providers' =>
+68 -70
View File
@@ -30,42 +30,41 @@
26 => 'Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider',
27 => 'BezhanSalleh\\PluginEssentials\\PluginEssentialsServiceProvider',
28 => 'BezhanSalleh\\FilamentShield\\FilamentShieldServiceProvider',
29 => 'Bkwld\\Cloner\\ServiceProvider',
30 => 'BladeUI\\Heroicons\\BladeHeroiconsServiceProvider',
31 => 'BladeUI\\Icons\\BladeIconsServiceProvider',
32 => 'Codeat3\\BladePhosphorIcons\\BladePhosphorIconsServiceProvider',
33 => 'Danielebarbaro\\LaravelVatEuValidator\\VatValidatorServiceProvider',
34 => 'Filament\\Actions\\ActionsServiceProvider',
35 => 'Filament\\FilamentServiceProvider',
36 => 'Filament\\Forms\\FormsServiceProvider',
37 => 'Filament\\Infolists\\InfolistsServiceProvider',
38 => 'Filament\\Notifications\\NotificationsServiceProvider',
39 => 'Filament\\QueryBuilder\\QueryBuilderServiceProvider',
40 => 'Filament\\Schemas\\SchemasServiceProvider',
41 => 'Filament\\Support\\SupportServiceProvider',
42 => 'Filament\\Tables\\TablesServiceProvider',
43 => 'Filament\\Widgets\\WidgetsServiceProvider',
44 => 'JaOcero\\RadioDeck\\RadioDeckServiceProvider',
45 => 'Kirschbaum\\PowerJoins\\PowerJoinsServiceProvider',
46 => 'Laravel\\Pail\\PailServiceProvider',
47 => 'Laravel\\Sail\\SailServiceProvider',
48 => 'Laravel\\Tinker\\TinkerServiceProvider',
49 => 'Livewire\\LivewireServiceProvider',
50 => 'MallardDuck\\LucideIcons\\BladeLucideIconsServiceProvider',
51 => 'Carbon\\Laravel\\ServiceProvider',
52 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
53 => 'Termwind\\Laravel\\TermwindServiceProvider',
54 => 'Pest\\Laravel\\PestServiceProvider',
55 => 'Propaganistas\\LaravelPhone\\PhoneServiceProvider',
56 => 'RyanChandler\\BladeCaptureDirective\\BladeCaptureDirectiveServiceProvider',
57 => 'Spatie\\LoginLink\\LoginLinkServiceProvider',
58 => 'Spatie\\Permission\\PermissionServiceProvider',
59 => 'Swis\\Filament\\Backgrounds\\FilamentBackgroundsServiceProvider',
60 => 'ToneGabes\\BetterOptions\\BetterOptionsServiceProvider',
61 => 'ToneGabes\\Filament\\Icons\\PhosphorIconsServiceProvider',
62 => 'Ysfkaya\\FilamentPhoneInput\\FilamentPhoneInputServiceProvider',
63 => 'App\\Providers\\AppServiceProvider',
64 => 'App\\Providers\\Filament\\AdminPanelProvider',
29 => 'BladeUI\\Heroicons\\BladeHeroiconsServiceProvider',
30 => 'BladeUI\\Icons\\BladeIconsServiceProvider',
31 => 'Codeat3\\BladePhosphorIcons\\BladePhosphorIconsServiceProvider',
32 => 'Danielebarbaro\\LaravelVatEuValidator\\VatValidatorServiceProvider',
33 => 'Filament\\Actions\\ActionsServiceProvider',
34 => 'Filament\\FilamentServiceProvider',
35 => 'Filament\\Forms\\FormsServiceProvider',
36 => 'Filament\\Infolists\\InfolistsServiceProvider',
37 => 'Filament\\Notifications\\NotificationsServiceProvider',
38 => 'Filament\\QueryBuilder\\QueryBuilderServiceProvider',
39 => 'Filament\\Schemas\\SchemasServiceProvider',
40 => 'Filament\\Support\\SupportServiceProvider',
41 => 'Filament\\Tables\\TablesServiceProvider',
42 => 'Filament\\Widgets\\WidgetsServiceProvider',
43 => 'JaOcero\\RadioDeck\\RadioDeckServiceProvider',
44 => 'Kirschbaum\\PowerJoins\\PowerJoinsServiceProvider',
45 => 'Laravel\\Pail\\PailServiceProvider',
46 => 'Laravel\\Sail\\SailServiceProvider',
47 => 'Laravel\\Tinker\\TinkerServiceProvider',
48 => 'Livewire\\LivewireServiceProvider',
49 => 'MallardDuck\\LucideIcons\\BladeLucideIconsServiceProvider',
50 => 'Carbon\\Laravel\\ServiceProvider',
51 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
52 => 'Termwind\\Laravel\\TermwindServiceProvider',
53 => 'Pest\\Laravel\\PestServiceProvider',
54 => 'Propaganistas\\LaravelPhone\\PhoneServiceProvider',
55 => 'RyanChandler\\BladeCaptureDirective\\BladeCaptureDirectiveServiceProvider',
56 => 'Spatie\\LoginLink\\LoginLinkServiceProvider',
57 => 'Spatie\\Permission\\PermissionServiceProvider',
58 => 'Swis\\Filament\\Backgrounds\\FilamentBackgroundsServiceProvider',
59 => 'ToneGabes\\BetterOptions\\BetterOptionsServiceProvider',
60 => 'ToneGabes\\Filament\\Icons\\PhosphorIconsServiceProvider',
61 => 'Ysfkaya\\FilamentPhoneInput\\FilamentPhoneInputServiceProvider',
62 => 'App\\Providers\\AppServiceProvider',
63 => 'App\\Providers\\Filament\\AdminPanelProvider',
),
'eager' =>
array (
@@ -84,40 +83,39 @@
12 => 'Fruitcake\\LaravelDebugbar\\ServiceProvider',
13 => 'BezhanSalleh\\PluginEssentials\\PluginEssentialsServiceProvider',
14 => 'BezhanSalleh\\FilamentShield\\FilamentShieldServiceProvider',
15 => 'Bkwld\\Cloner\\ServiceProvider',
16 => 'BladeUI\\Heroicons\\BladeHeroiconsServiceProvider',
17 => 'BladeUI\\Icons\\BladeIconsServiceProvider',
18 => 'Codeat3\\BladePhosphorIcons\\BladePhosphorIconsServiceProvider',
19 => 'Danielebarbaro\\LaravelVatEuValidator\\VatValidatorServiceProvider',
20 => 'Filament\\Actions\\ActionsServiceProvider',
21 => 'Filament\\FilamentServiceProvider',
22 => 'Filament\\Forms\\FormsServiceProvider',
23 => 'Filament\\Infolists\\InfolistsServiceProvider',
24 => 'Filament\\Notifications\\NotificationsServiceProvider',
25 => 'Filament\\QueryBuilder\\QueryBuilderServiceProvider',
26 => 'Filament\\Schemas\\SchemasServiceProvider',
27 => 'Filament\\Support\\SupportServiceProvider',
28 => 'Filament\\Tables\\TablesServiceProvider',
29 => 'Filament\\Widgets\\WidgetsServiceProvider',
30 => 'JaOcero\\RadioDeck\\RadioDeckServiceProvider',
31 => 'Kirschbaum\\PowerJoins\\PowerJoinsServiceProvider',
32 => 'Laravel\\Pail\\PailServiceProvider',
33 => 'Livewire\\LivewireServiceProvider',
34 => 'MallardDuck\\LucideIcons\\BladeLucideIconsServiceProvider',
35 => 'Carbon\\Laravel\\ServiceProvider',
36 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
37 => 'Termwind\\Laravel\\TermwindServiceProvider',
38 => 'Pest\\Laravel\\PestServiceProvider',
39 => 'Propaganistas\\LaravelPhone\\PhoneServiceProvider',
40 => 'RyanChandler\\BladeCaptureDirective\\BladeCaptureDirectiveServiceProvider',
41 => 'Spatie\\LoginLink\\LoginLinkServiceProvider',
42 => 'Spatie\\Permission\\PermissionServiceProvider',
43 => 'Swis\\Filament\\Backgrounds\\FilamentBackgroundsServiceProvider',
44 => 'ToneGabes\\BetterOptions\\BetterOptionsServiceProvider',
45 => 'ToneGabes\\Filament\\Icons\\PhosphorIconsServiceProvider',
46 => 'Ysfkaya\\FilamentPhoneInput\\FilamentPhoneInputServiceProvider',
47 => 'App\\Providers\\AppServiceProvider',
48 => 'App\\Providers\\Filament\\AdminPanelProvider',
15 => 'BladeUI\\Heroicons\\BladeHeroiconsServiceProvider',
16 => 'BladeUI\\Icons\\BladeIconsServiceProvider',
17 => 'Codeat3\\BladePhosphorIcons\\BladePhosphorIconsServiceProvider',
18 => 'Danielebarbaro\\LaravelVatEuValidator\\VatValidatorServiceProvider',
19 => 'Filament\\Actions\\ActionsServiceProvider',
20 => 'Filament\\FilamentServiceProvider',
21 => 'Filament\\Forms\\FormsServiceProvider',
22 => 'Filament\\Infolists\\InfolistsServiceProvider',
23 => 'Filament\\Notifications\\NotificationsServiceProvider',
24 => 'Filament\\QueryBuilder\\QueryBuilderServiceProvider',
25 => 'Filament\\Schemas\\SchemasServiceProvider',
26 => 'Filament\\Support\\SupportServiceProvider',
27 => 'Filament\\Tables\\TablesServiceProvider',
28 => 'Filament\\Widgets\\WidgetsServiceProvider',
29 => 'JaOcero\\RadioDeck\\RadioDeckServiceProvider',
30 => 'Kirschbaum\\PowerJoins\\PowerJoinsServiceProvider',
31 => 'Laravel\\Pail\\PailServiceProvider',
32 => 'Livewire\\LivewireServiceProvider',
33 => 'MallardDuck\\LucideIcons\\BladeLucideIconsServiceProvider',
34 => 'Carbon\\Laravel\\ServiceProvider',
35 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
36 => 'Termwind\\Laravel\\TermwindServiceProvider',
37 => 'Pest\\Laravel\\PestServiceProvider',
38 => 'Propaganistas\\LaravelPhone\\PhoneServiceProvider',
39 => 'RyanChandler\\BladeCaptureDirective\\BladeCaptureDirectiveServiceProvider',
40 => 'Spatie\\LoginLink\\LoginLinkServiceProvider',
41 => 'Spatie\\Permission\\PermissionServiceProvider',
42 => 'Swis\\Filament\\Backgrounds\\FilamentBackgroundsServiceProvider',
43 => 'ToneGabes\\BetterOptions\\BetterOptionsServiceProvider',
44 => 'ToneGabes\\Filament\\Icons\\PhosphorIconsServiceProvider',
45 => 'Ysfkaya\\FilamentPhoneInput\\FilamentPhoneInputServiceProvider',
46 => 'App\\Providers\\AppServiceProvider',
47 => 'App\\Providers\\Filament\\AdminPanelProvider',
),
'deferred' =>
array (
-1
View File
@@ -13,7 +13,6 @@
"agencetwogether/hookshelper": "^0.0.2",
"awcodes/light-switch": "^2.0",
"bezhansalleh/filament-shield": "*",
"bkwld/cloner": "^3.15",
"codeat3/blade-phosphor-icons": "^2.3",
"danielebarbaro/laravel-vat-eu-validator": "^2.0",
"filament/filament": "^4.1",
Generated
+13 -72
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "21aa51411bd3f27a2c9a20f59258663c",
"content-hash": "79e067228741c162092a4bae8e49b147",
"packages": [
{
"name": "agencetwogether/hookshelper",
@@ -390,65 +390,6 @@
],
"time": "2026-03-22T08:31:44+00:00"
},
{
"name": "bkwld/cloner",
"version": "3.15.0",
"source": {
"type": "git",
"url": "https://github.com/BKWLD/cloner.git",
"reference": "eefeefd37818467d5d54d1343f4c81a9e1ca5733"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/BKWLD/cloner/zipball/eefeefd37818467d5d54d1343f4c81a9e1ca5733",
"reference": "eefeefd37818467d5d54d1343f4c81a9e1ca5733",
"shasum": ""
},
"require": {
"illuminate/support": "^5.5|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
"php": ">=7.1"
},
"require-dev": {
"bkwld/upchuck": "^2.6@dev",
"illuminate/database": "^5.5|^6.0|^10.0|^11.0|^12.0|^13.0",
"league/flysystem-vfs": "^1.0",
"mockery/mockery": "^1.2.3",
"phpunit/phpunit": "~6.0|~8.0|^9.5.10|^10.5",
"satooshi/php-coveralls": "^1.0"
},
"suggest": {
"bkwld/upchuck": "Required for replicating of files."
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Bkwld\\Cloner\\ServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Bkwld\\Cloner\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Robert Reinhard",
"email": "info@bkwld.com"
}
],
"description": "A trait for Laravel Eloquent models that lets you clone of a model and it's relationships, including files.",
"support": {
"issues": "https://github.com/BKWLD/cloner/issues",
"source": "https://github.com/BKWLD/cloner/tree/3.15.0"
},
"time": "2026-05-27T16:34:53+00:00"
},
{
"name": "blade-ui-kit/blade-heroicons",
"version": "2.7.0",
@@ -2157,16 +2098,16 @@
},
{
"name": "giggsey/libphonenumber-for-php-lite",
"version": "9.0.33",
"version": "9.0.34",
"source": {
"type": "git",
"url": "https://github.com/giggsey/libphonenumber-for-php-lite.git",
"reference": "38c09da75cebfd6f197b61e57b3a655db04163e6"
"reference": "a9f129a296b1e31f7f9b73fd81845415d302bee2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/giggsey/libphonenumber-for-php-lite/zipball/38c09da75cebfd6f197b61e57b3a655db04163e6",
"reference": "38c09da75cebfd6f197b61e57b3a655db04163e6",
"url": "https://api.github.com/repos/giggsey/libphonenumber-for-php-lite/zipball/a9f129a296b1e31f7f9b73fd81845415d302bee2",
"reference": "a9f129a296b1e31f7f9b73fd81845415d302bee2",
"shasum": ""
},
"require": {
@@ -2231,7 +2172,7 @@
"issues": "https://github.com/giggsey/libphonenumber-for-php-lite/issues",
"source": "https://github.com/giggsey/libphonenumber-for-php-lite"
},
"time": "2026-06-22T10:35:37+00:00"
"time": "2026-07-03T10:23:06+00:00"
},
{
"name": "graham-campbell/result-type",
@@ -11980,16 +11921,16 @@
},
{
"name": "php-debugbar/php-debugbar",
"version": "v3.7.6",
"version": "v3.8.0",
"source": {
"type": "git",
"url": "https://github.com/php-debugbar/php-debugbar.git",
"reference": "1690ee1728827f9deb4b60457fa387cf44672c56"
"reference": "18ced90d4b882ed449b2278fea8692f8f7d1c13c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/1690ee1728827f9deb4b60457fa387cf44672c56",
"reference": "1690ee1728827f9deb4b60457fa387cf44672c56",
"url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/18ced90d4b882ed449b2278fea8692f8f7d1c13c",
"reference": "18ced90d4b882ed449b2278fea8692f8f7d1c13c",
"shasum": ""
},
"require": {
@@ -12031,7 +11972,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.0-dev"
"dev-master": "3.8-dev"
}
},
"autoload": {
@@ -12066,7 +12007,7 @@
],
"support": {
"issues": "https://github.com/php-debugbar/php-debugbar/issues",
"source": "https://github.com/php-debugbar/php-debugbar/tree/v3.7.6"
"source": "https://github.com/php-debugbar/php-debugbar/tree/v3.8.0"
},
"funding": [
{
@@ -12078,7 +12019,7 @@
"type": "github"
}
],
"time": "2026-04-30T07:31:44+00:00"
"time": "2026-07-02T12:38:20+00:00"
},
{
"name": "php-debugbar/symfony-bridge",
@@ -16,6 +16,7 @@ return new class extends Migration
$table->foreignId('konto_id')->constrained();
$table->foreignId('auftraggeber_id')->constrained();
$table->foreignId('gutachter_id')->constrained();
$table->integer('cloned_from_id')->default(0);
$table->string('interner_name');
$table->string('offizieller_name')->nullable();
$table->string('ort')->nullable();
@@ -14,6 +14,7 @@ return new class extends Migration
Schema::create('projekt_objektes', function (Blueprint $table) {
$table->id();
$table->foreignId('projekte_id')->constrained()->cascadeOnDelete();
$table->integer('projekte_cloned_from_id')->default(0);
$table->integer('orientierung_id')->nullable()->default(0);
$table->boolean('nicht_in_orientierung')->default(0);
$table->string('top_nummer')->nullable();
@@ -14,6 +14,7 @@ return new class extends Migration
Schema::create('projekt_objekte_im_details', function (Blueprint $table) {
$table->id();
$table->foreignId('projekte_id')->constrained()->cascadeOnDelete();
$table->integer('projekte_objekte_cloned_from_id')->default(0);
$table->foreignId('projekt_objekte_id')->constrained()->cascadeOnDelete();
$table->foreignId('projekt_methode_id');
$table->string('geschoss')->nullable();