Fixed: Dont assign local subactivities when pulling
This commit is contained in:
parent
ffd67feb6a
commit
73fb79cd1a
|
@ -57,7 +57,7 @@ class InsertMembershipsAction
|
|||
}
|
||||
|
||||
if (null !== $membership->subactivity) {
|
||||
$subactivity = Subactivity::where('name', $membership->subactivity)->first();
|
||||
$subactivity = Subactivity::remote()->where('name', $membership->subactivity)->first();
|
||||
|
||||
if (!$subactivity) {
|
||||
return null;
|
||||
|
|
|
@ -25,4 +25,14 @@ trait HasNamiField
|
|||
{
|
||||
return $query->whereNull('nami_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Builder<self> $query
|
||||
*
|
||||
* @return Builder<self>
|
||||
*/
|
||||
public static function scopeRemote(Builder $query): Builder
|
||||
{
|
||||
return $query->whereNotNull('nami_id');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -112,11 +112,8 @@ class PullMembershipsActionTest extends TestCase
|
|||
]);
|
||||
app(MembershipFake::class)->shows(1001, [
|
||||
'id' => 1077,
|
||||
'gruppierung' => 'Gruppe',
|
||||
'gruppierungId' => 1005,
|
||||
'taetigkeit' => 'ReferentIn',
|
||||
'taetigkeitId' => 33,
|
||||
'untergliederung' => 'Pfadfinder',
|
||||
'untergliederungId' => 55,
|
||||
'aktivVon' => '2021-08-22 00:00:00',
|
||||
'aktivBis' => '',
|
||||
|
@ -141,6 +138,36 @@ class PullMembershipsActionTest extends TestCase
|
|||
]);
|
||||
}
|
||||
|
||||
public function testIgnoreLocalSubactivities(): void
|
||||
{
|
||||
$member = Member::factory()->defaults()->for(Group::factory()->inNami(90))->inNami(1001)->create();
|
||||
$group = Group::factory()->inNami(1005)->name('Gruppe')->create();
|
||||
$activity = Activity::factory()->name('ReferentIn')->inNami(33)->create();
|
||||
$subactivity = Subactivity::factory()->name('sub')->create();
|
||||
$actualSubactivity = Subactivity::factory()->name('sub')->inNami(55)->create();
|
||||
app(MembershipFake::class)->fetches(1001, [
|
||||
[
|
||||
'id' => 1077,
|
||||
'entries_taetigkeit' => 'ReferentIn (33)',
|
||||
'entries_gruppierung' => 'Gruppe',
|
||||
'entries_untergliederung' => 'sub',
|
||||
],
|
||||
])->shows(1001, [
|
||||
'id' => 1077,
|
||||
'gruppierungId' => 1005,
|
||||
'taetigkeitId' => 33,
|
||||
'untergliederungId' => 55,
|
||||
]);
|
||||
app(ActivityFake::class)->fetches(1005, [['descriptor' => 'ReferentIn2', 'id' => 33]]);
|
||||
app(SubactivityFake::class)->fetches(33, [['descriptor' => 'Pfadfinder2', 'id' => 55]]);
|
||||
|
||||
app(PullMembershipsAction::class)->handle($member);
|
||||
|
||||
$this->assertDatabaseHas('memberships', [
|
||||
'subactivity_id' => $actualSubactivity->id,
|
||||
]);
|
||||
}
|
||||
|
||||
public function testUpdateExistingMembership(): void
|
||||
{
|
||||
$member = Member::factory()
|
||||
|
|
Loading…
Reference in New Issue