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) {
|
if (null !== $membership->subactivity) {
|
||||||
$subactivity = Subactivity::where('name', $membership->subactivity)->first();
|
$subactivity = Subactivity::remote()->where('name', $membership->subactivity)->first();
|
||||||
|
|
||||||
if (!$subactivity) {
|
if (!$subactivity) {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -25,4 +25,14 @@ trait HasNamiField
|
||||||
{
|
{
|
||||||
return $query->whereNull('nami_id');
|
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, [
|
app(MembershipFake::class)->shows(1001, [
|
||||||
'id' => 1077,
|
'id' => 1077,
|
||||||
'gruppierung' => 'Gruppe',
|
|
||||||
'gruppierungId' => 1005,
|
'gruppierungId' => 1005,
|
||||||
'taetigkeit' => 'ReferentIn',
|
|
||||||
'taetigkeitId' => 33,
|
'taetigkeitId' => 33,
|
||||||
'untergliederung' => 'Pfadfinder',
|
|
||||||
'untergliederungId' => 55,
|
'untergliederungId' => 55,
|
||||||
'aktivVon' => '2021-08-22 00:00:00',
|
'aktivVon' => '2021-08-22 00:00:00',
|
||||||
'aktivBis' => '',
|
'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
|
public function testUpdateExistingMembership(): void
|
||||||
{
|
{
|
||||||
$member = Member::factory()
|
$member = Member::factory()
|
||||||
|
|
Loading…
Reference in New Issue