Compare commits
	
		
			No commits in common. "fc2b3d6885c9576f436e84141c966874ff44cf40" and "5a48c983cd691ecee8d1df40533f066cee0ab0ba" have entirely different histories.
		
	
	
		
			fc2b3d6885
			...
			5a48c983cd
		
	
		| 
						 | 
					@ -8,7 +8,8 @@ RUN php artisan horizon:publish
 | 
				
			||||||
FROM node:20.15.0-slim AS node
 | 
					FROM node:20.15.0-slim AS node
 | 
				
			||||||
WORKDIR /app
 | 
					WORKDIR /app
 | 
				
			||||||
COPY . /app
 | 
					COPY . /app
 | 
				
			||||||
RUN npm install && npm run prod && npm run img && rm -R node_modules
 | 
					RUN cd packages/adrema-form && npm ci && npm run build && rm -R node_modules && cd ../../
 | 
				
			||||||
 | 
					RUN npm ci && npm run prod && npm run img && rm -R node_modules
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM nginx:1.21.6-alpine AS nginx
 | 
					FROM nginx:1.21.6-alpine AS nginx
 | 
				
			||||||
WORKDIR /app
 | 
					WORKDIR /app
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,8 @@ RUN composer install --ignore-platform-reqs --no-dev
 | 
				
			||||||
FROM node:20.15.0-slim AS node
 | 
					FROM node:20.15.0-slim AS node
 | 
				
			||||||
WORKDIR /app
 | 
					WORKDIR /app
 | 
				
			||||||
COPY . /app
 | 
					COPY . /app
 | 
				
			||||||
RUN npm install && npm run prod && npm run img && rm -R node_modules
 | 
					RUN cd packages/adrema-form && npm ci && npm run build && rm -R node_modules && cd ../../
 | 
				
			||||||
 | 
					RUN npm ci && npm run prod && npm run img && rm -R node_modules
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM zoomyboy/adrema-base:latest AS php
 | 
					FROM zoomyboy/adrema-base:latest AS php
 | 
				
			||||||
COPY --chown=www-data:www-data . /app
 | 
					COPY --chown=www-data:www-data . /app
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,5 @@
 | 
				
			||||||
# Letzte Änderungen
 | 
					# Letzte Änderungen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 1.12.11
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-   Fix: Bank Account mit abrufen wenn Mitglied editiert wird
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### 1.12.7
 | 
					### 1.12.7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-   Fix: Synchronisation von allen Mitgliedern bei Mail-Verteilern - nicht nur den ersten 20
 | 
					-   Fix: Synchronisation von allen Mitgliedern bei Mail-Verteilern - nicht nur den ersten 20
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,7 +51,7 @@ class MemberController extends Controller
 | 
				
			||||||
        session()->put('title', "Mitglied {$member->firstname} {$member->lastname} bearbeiten");
 | 
					        session()->put('title', "Mitglied {$member->firstname} {$member->lastname} bearbeiten");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return Inertia::render('member/VForm', [
 | 
					        return Inertia::render('member/VForm', [
 | 
				
			||||||
            'data' => new MemberResource($member->load('bankAccount')),
 | 
					            'data' => new MemberResource($member),
 | 
				
			||||||
            'mode' => 'edit',
 | 
					            'mode' => 'edit',
 | 
				
			||||||
            'conflict' => '1' === $request->query('conflict', '0'),
 | 
					            'conflict' => '1' === $request->query('conflict', '0'),
 | 
				
			||||||
            'meta' => MemberResource::meta(),
 | 
					            'meta' => MemberResource::meta(),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -84,24 +84,20 @@ class MemberRequest extends FormRequest
 | 
				
			||||||
            'salutation' => '',
 | 
					            'salutation' => '',
 | 
				
			||||||
            'comment' => '',
 | 
					            'comment' => '',
 | 
				
			||||||
            'keepdata' => 'boolean',
 | 
					            'keepdata' => 'boolean',
 | 
				
			||||||
            'bank_account' => 'array',
 | 
					            'bank_account' => 'array|exclude',
 | 
				
			||||||
            'bank_account.iban' => 'nullable|string|max:255',
 | 
					            'bank_account.iban' => 'nullable|string|max:255',
 | 
				
			||||||
            'bank_account.bic' => 'nullable|string|max:255',
 | 
					            'bank_account.bic' => 'nullable|string|max:255',
 | 
				
			||||||
            'bank_account.blz' => 'nullable|string|max:255',
 | 
					 | 
				
			||||||
            'bank_account.bank_name' => 'nullable|string|max:255',
 | 
					 | 
				
			||||||
            'bank_account.person' => 'nullable|string|max:255',
 | 
					 | 
				
			||||||
            'bank_account.account_number' => 'nullable|string|max:255',
 | 
					 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function persistCreate(NamiSettings $settings): void
 | 
					    public function persistCreate(NamiSettings $settings): void
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $member = new Member([
 | 
					        $member = new Member([
 | 
				
			||||||
            ...$this->dataToInsert(),
 | 
					            ...$this->validated(),
 | 
				
			||||||
            'group_id' => Group::where('nami_id', $settings->default_group_id)->firstOrFail()->id,
 | 
					            'group_id' => Group::where('nami_id', $settings->default_group_id)->firstOrFail()->id,
 | 
				
			||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
        $member->updatePhoneNumbers()->save();
 | 
					        $member->updatePhoneNumbers()->save();
 | 
				
			||||||
        $member->bankAccount->update($this->validated('bank_account'));
 | 
					        $member->bankAccount->update($this->input('bank_account'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($this->input('has_nami')) {
 | 
					        if ($this->input('has_nami')) {
 | 
				
			||||||
            $this->storeFreshMemberInNami($member);
 | 
					            $this->storeFreshMemberInNami($member);
 | 
				
			||||||
| 
						 | 
					@ -120,12 +116,12 @@ class MemberRequest extends FormRequest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function persistUpdate(Member $member): void
 | 
					    public function persistUpdate(Member $member): void
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $member->fill($this->dataToInsert())->updatePhoneNumbers();
 | 
					        $member->fill($this->validated())->updatePhoneNumbers();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $namiSync = $member->isDirty(Member::$namiFields);
 | 
					        $namiSync = $member->isDirty(Member::$namiFields);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $member->save();
 | 
					        $member->save();
 | 
				
			||||||
        $member->bankAccount->update($this->validated('bank_account'));
 | 
					        $member->bankAccount->update($this->input('bank_account'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($this->input('has_nami') && null === $member->nami_id) {
 | 
					        if ($this->input('has_nami') && null === $member->nami_id) {
 | 
				
			||||||
            $this->storeFreshMemberInNami($member);
 | 
					            $this->storeFreshMemberInNami($member);
 | 
				
			||||||
| 
						 | 
					@ -168,12 +164,4 @@ class MemberRequest extends FormRequest
 | 
				
			||||||
        $when = fn () => true === $request->input('has_nami') && ($member === null || !$member->has_nami);
 | 
					        $when = fn () => true === $request->input('has_nami') && ($member === null || !$member->has_nami);
 | 
				
			||||||
        $validator->sometimes($attribute, $rules, $when);
 | 
					        $validator->sometimes($attribute, $rules, $when);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * @return array<string, mixed>
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    protected function dataToInsert(): array
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return $this->safe()->except('bank_account');
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,7 +11,6 @@ use App\Invoice\BillKind;
 | 
				
			||||||
use App\Invoice\Resources\InvoicePositionResource;
 | 
					use App\Invoice\Resources\InvoicePositionResource;
 | 
				
			||||||
use App\Lib\HasMeta;
 | 
					use App\Lib\HasMeta;
 | 
				
			||||||
use App\Member\Data\NestedGroup;
 | 
					use App\Member\Data\NestedGroup;
 | 
				
			||||||
use App\Member\Resources\BankAccountResource;
 | 
					 | 
				
			||||||
use App\Member\Resources\NationalityResource;
 | 
					use App\Member\Resources\NationalityResource;
 | 
				
			||||||
use App\Member\Resources\RegionResource;
 | 
					use App\Member\Resources\RegionResource;
 | 
				
			||||||
use App\Membership\MembershipResource;
 | 
					use App\Membership\MembershipResource;
 | 
				
			||||||
| 
						 | 
					@ -108,7 +107,6 @@ class MemberResource extends JsonResource
 | 
				
			||||||
            'lon' => $this->lon,
 | 
					            'lon' => $this->lon,
 | 
				
			||||||
            'group_name' => $this->group->name,
 | 
					            'group_name' => $this->group->name,
 | 
				
			||||||
            'keepdata' => $this->keepdata,
 | 
					            'keepdata' => $this->keepdata,
 | 
				
			||||||
            'bank_account' => new BankAccountResource($this->whenLoaded('bankAccount')),
 | 
					 | 
				
			||||||
            'links' => [
 | 
					            'links' => [
 | 
				
			||||||
                'membership_index' => route('member.membership.index', ['member' => $this->getModel()]),
 | 
					                'membership_index' => route('member.membership.index', ['member' => $this->getModel()]),
 | 
				
			||||||
                'invoiceposition_index' => route('member.invoice-position.index', ['member' => $this->getModel()]),
 | 
					                'invoiceposition_index' => route('member.invoice-position.index', ['member' => $this->getModel()]),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,31 +0,0 @@
 | 
				
			||||||
<?php
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace App\Member\Resources;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use App\Member\BankAccount;
 | 
					 | 
				
			||||||
use Illuminate\Http\Resources\Json\JsonResource;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * @mixin BankAccount
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
class BankAccountResource extends JsonResource
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Transform the resource into an array.
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @param \Illuminate\Http\Request $request
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @return array<string, int|string>
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public function toArray($request)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return [
 | 
					 | 
				
			||||||
            'iban' => $this->iban,
 | 
					 | 
				
			||||||
            'bic' => $this->bic,
 | 
					 | 
				
			||||||
            'blz' => $this->blz,
 | 
					 | 
				
			||||||
            'bank_name' => $this->bank_name,
 | 
					 | 
				
			||||||
            'person' => $this->person,
 | 
					 | 
				
			||||||
            'account_number' => $this->account_number,
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
						 | 
					@ -18,13 +18,11 @@
 | 
				
			||||||
        <div v-else class="grow">
 | 
					        <div v-else class="grow">
 | 
				
			||||||
            <table class="custom-table custom-table-light custom-table-sm text-sm grow">
 | 
					            <table class="custom-table custom-table-light custom-table-sm text-sm grow">
 | 
				
			||||||
                <thead>
 | 
					                <thead>
 | 
				
			||||||
                    <tr>
 | 
					 | 
				
			||||||
                    <th>Baustein</th>
 | 
					                    <th>Baustein</th>
 | 
				
			||||||
                    <th>Veranstaltung</th>
 | 
					                    <th>Veranstaltung</th>
 | 
				
			||||||
                    <th>Veranstalter</th>
 | 
					                    <th>Veranstalter</th>
 | 
				
			||||||
                    <th>Datum</th>
 | 
					                    <th>Datum</th>
 | 
				
			||||||
                    <th></th>
 | 
					                    <th></th>
 | 
				
			||||||
                    </tr>
 | 
					 | 
				
			||||||
                </thead>
 | 
					                </thead>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                <tr v-for="(course, index) in data" :key="index">
 | 
					                <tr v-for="(course, index) in data" :key="index">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,7 +4,6 @@ namespace Tests\Feature\Member;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use App\Activity;
 | 
					use App\Activity;
 | 
				
			||||||
use App\Country;
 | 
					use App\Country;
 | 
				
			||||||
use App\Member\BankAccount;
 | 
					 | 
				
			||||||
use App\Member\Member;
 | 
					use App\Member\Member;
 | 
				
			||||||
use App\Subactivity;
 | 
					use App\Subactivity;
 | 
				
			||||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
 | 
					use Illuminate\Foundation\Testing\DatabaseTransactions;
 | 
				
			||||||
| 
						 | 
					@ -89,30 +88,4 @@ class EditTest extends TestCase
 | 
				
			||||||
            'bill_kind' => 'E-Mail',
 | 
					            'bill_kind' => 'E-Mail',
 | 
				
			||||||
        ], $response, 'data');
 | 
					        ], $response, 'data');
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function testItDisplaysBankAccount(): void
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        $this->withoutExceptionHandling()->login()->loginNami();
 | 
					 | 
				
			||||||
        $member = Member::factory()
 | 
					 | 
				
			||||||
            ->defaults()
 | 
					 | 
				
			||||||
            ->emailBillKind()
 | 
					 | 
				
			||||||
            ->withBankAccount(BankAccount::factory()->inNami(30)->state([
 | 
					 | 
				
			||||||
                'bank_name' => 'Stadt',
 | 
					 | 
				
			||||||
                'bic' => 'SOLSDE33',
 | 
					 | 
				
			||||||
                'iban' => 'DE50',
 | 
					 | 
				
			||||||
                'blz' => 'ssss',
 | 
					 | 
				
			||||||
                'person' => 'Pill',
 | 
					 | 
				
			||||||
                'account_number' => 'ddf',
 | 
					 | 
				
			||||||
            ]))
 | 
					 | 
				
			||||||
            ->create();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $response = $this->get(route('member.edit', ['member' => $member]));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $this->assertInertiaHas('Stadt', $response, 'data.bank_account.bank_name');
 | 
					 | 
				
			||||||
        $this->assertInertiaHas('SOLSDE33', $response, 'data.bank_account.bic');
 | 
					 | 
				
			||||||
        $this->assertInertiaHas('DE50', $response, 'data.bank_account.iban');
 | 
					 | 
				
			||||||
        $this->assertInertiaHas('ssss', $response, 'data.bank_account.blz');
 | 
					 | 
				
			||||||
        $this->assertInertiaHas('Pill', $response, 'data.bank_account.person');
 | 
					 | 
				
			||||||
        $this->assertInertiaHas('ddf', $response, 'data.bank_account.account_number');
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue