Remove Silva from invoice mails
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
163d3cc18a
commit
a920954b45
|
|
@ -18,6 +18,7 @@ class InvoiceSettings extends LocalSettings implements Storeable
|
|||
public ?string $zip;
|
||||
public ?string $iban;
|
||||
public ?string $bic;
|
||||
public ?string $replyTo;
|
||||
public ?int $rememberWeeks;
|
||||
|
||||
public static function group(): string
|
||||
|
|
@ -43,6 +44,7 @@ class InvoiceSettings extends LocalSettings implements Storeable
|
|||
'iban' => $this->iban,
|
||||
'bic' => $this->bic,
|
||||
'rememberWeeks' => $this->rememberWeeks,
|
||||
'replyTo' => $this->replyTo,
|
||||
]
|
||||
];
|
||||
}
|
||||
|
|
@ -64,6 +66,7 @@ class InvoiceSettings extends LocalSettings implements Storeable
|
|||
'iban' => '',
|
||||
'bic' => '',
|
||||
'rememberWeeks' => '',
|
||||
'replyTo' => '',
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Invoice\Mails;
|
||||
|
||||
use App\Invoice\InvoiceSettings;
|
||||
use App\Invoice\Models\Invoice;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Mail\Mailable;
|
||||
|
|
@ -12,6 +13,8 @@ class BillMail extends Mailable
|
|||
use Queueable;
|
||||
use SerializesModels;
|
||||
|
||||
public InvoiceSettings $settings;
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*
|
||||
|
|
@ -19,6 +22,7 @@ class BillMail extends Mailable
|
|||
*/
|
||||
public function __construct(public Invoice $invoice, public string $filename)
|
||||
{
|
||||
$this->settings = app(InvoiceSettings::class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -30,7 +34,7 @@ class BillMail extends Mailable
|
|||
{
|
||||
return $this->markdown('mail.invoice.bill')
|
||||
->attach($this->filename)
|
||||
->replyTo('kasse@stamm-silva.de')
|
||||
->subject('Rechnung | DPSG Stamm Silva');
|
||||
->when($this->settings->replyTo, fn ($mail) => $mail->replyTo($this->settings->replyTo))
|
||||
->subject('Rechnung | '.$this->settings->from_long);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Invoice\Mails;
|
||||
|
||||
use App\Invoice\InvoiceSettings;
|
||||
use App\Invoice\Models\Invoice;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Mail\Mailable;
|
||||
|
|
@ -12,6 +13,8 @@ class RememberMail extends Mailable
|
|||
use Queueable;
|
||||
use SerializesModels;
|
||||
|
||||
public InvoiceSettings $settings;
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*
|
||||
|
|
@ -19,6 +22,7 @@ class RememberMail extends Mailable
|
|||
*/
|
||||
public function __construct(public Invoice $invoice, public string $filename)
|
||||
{
|
||||
$this->settings = app(InvoiceSettings::class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -30,7 +34,7 @@ class RememberMail extends Mailable
|
|||
{
|
||||
return $this->markdown('mail.invoice.remember')
|
||||
->attach($this->filename)
|
||||
->replyTo('kasse@stamm-silva.de')
|
||||
->subject('Zahlungserinnerung | DPSG Stamm Silva');
|
||||
->when($this->settings->replyTo, fn ($mail) => $mail->replyTo($this->settings->replyTo))
|
||||
->subject('Zahlungserinnerung | '.$this->settings->from_long);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
use Spatie\LaravelSettings\Migrations\SettingsMigration;
|
||||
|
||||
return new class extends SettingsMigration
|
||||
{
|
||||
public function up(): void
|
||||
{
|
||||
$this->migrator->add('bill.replyTo', '');
|
||||
}
|
||||
};
|
||||
|
|
@ -18,6 +18,7 @@
|
|||
<f-text id="iban" v-model="inner.iban" label="IBAN"></f-text>
|
||||
<f-text id="bic" v-model="inner.bic" label="BIC"></f-text>
|
||||
<f-text id="remember_weeks" v-model="inner.rememberWeeks" type="number" label="Erinnerung alle X Wochen versenden"></f-text>
|
||||
<f-text id="reply_to" v-model="inner.replyTo" label="Reply-To E-Mail-Adresse"></f-text>
|
||||
</form>
|
||||
</setting-layout>
|
||||
</page-layout>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
@component('mail::message')
|
||||
# {{ $invoice->greeting }},
|
||||
|
||||
Im Anhang findet ihr die aktuelle Rechnung des Stammes Silva für das laufende Jahr. Bitte begleicht diese bis zum angegebenen Datum.
|
||||
Im Anhang findet ihr die aktuelle Rechnung an {{$settings->from}} für das laufende Jahr. Bitte begleicht diese bis zum angegebenen Datum.
|
||||
|
||||
@component('mail::subcopy')
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
@component('mail::message')
|
||||
# {{ $invoice->greeting }},
|
||||
|
||||
Hiermit möchten wir euch an die noch ausstehenden Mitgliedsbeiträge des Stammes Silva für das laufende Jahr erinnern. Bitte begleicht diese bis zum angegebenen Datum.
|
||||
Hiermit möchten wir euch an die noch ausstehenden Mitgliedsbeiträge an {{$settings->from}} für das laufende Jahr erinnern. Bitte begleicht diese bis zum angegebenen Datum.
|
||||
|
||||
@component('mail::subcopy')
|
||||
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ class InvoiceSendActionTest extends TestCase
|
|||
Tex::spy();
|
||||
Storage::fake('temp');
|
||||
$this->withoutExceptionHandling()->login()->loginNami();
|
||||
app(InvoiceSettings::class)->fill(['from_long' => 'Stammname', 'replyTo' => 'reply@mail.com'])->save();
|
||||
$invoice = Invoice::factory()
|
||||
->to(ReceiverRequestFactory::new()->name('Familie Muster'))
|
||||
->has(InvoicePosition::factory()->withMember(), 'positions')
|
||||
|
|
@ -57,7 +58,13 @@ class InvoiceSendActionTest extends TestCase
|
|||
|
||||
InvoiceSendAction::run();
|
||||
|
||||
Mail::assertSent(RememberMail::class, fn ($mail) => $mail->build() && $mail->hasTo('max@muster.de', 'Familie Muster') && Storage::disk('temp')->path('zahlungserinnerung-fur-familie-muster.pdf') === $mail->filename && Storage::disk('temp')->exists('zahlungserinnerung-fur-familie-muster.pdf'));
|
||||
Mail::assertSent(RememberMail::class, fn ($mail) => $mail->build()
|
||||
&& $mail->hasTo('max@muster.de', 'Familie Muster')
|
||||
&& $mail->hasSubject('Zahlungserinnerung | Stammname')
|
||||
&& Storage::disk('temp')->path('zahlungserinnerung-fur-familie-muster.pdf') === $mail->filename
|
||||
&& Storage::disk('temp')->exists('zahlungserinnerung-fur-familie-muster.pdf')
|
||||
&& $mail->hasReplyTo('reply@mail.com')
|
||||
);
|
||||
Tex::assertCompiled(RememberDocument::class, fn ($document) => 'Familie Muster' === $document->toName);
|
||||
$this->assertEquals(now()->format('Y-m-d'), $invoice->fresh()->last_remembered_at->format('Y-m-d'));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@ class SettingTest extends TestCase
|
|||
'zip' => '12345',
|
||||
'iban' => 'DE05',
|
||||
'bic' => 'SOLSDE',
|
||||
'rememberWeeks' => 6
|
||||
'rememberWeeks' => 6,
|
||||
'replyTo' => 'reply@example.com',
|
||||
])->save();
|
||||
|
||||
$this->get(route('setting.data', ['settingGroup' => 'bill']))
|
||||
|
|
@ -49,7 +50,8 @@ class SettingTest extends TestCase
|
|||
->assertInertiaPath('data.zip', '12345')
|
||||
->assertInertiaPath('data.iban', 'DE05')
|
||||
->assertInertiaPath('data.bic', 'SOLSDE')
|
||||
->assertInertiaPath('data.rememberWeeks', 6);
|
||||
->assertInertiaPath('data.rememberWeeks', 6)
|
||||
->assertInertiaPath('data.replyTo', 'reply@example.com');
|
||||
}
|
||||
|
||||
public function testItReturnsTabs(): void
|
||||
|
|
@ -78,7 +80,8 @@ class SettingTest extends TestCase
|
|||
'zip' => '12345',
|
||||
'iban' => 'DE05',
|
||||
'bic' => 'SOLSDE',
|
||||
'rememberWeeks' => 10
|
||||
'rememberWeeks' => 10,
|
||||
'replyTo' => 'reply@example.com2',
|
||||
]);
|
||||
|
||||
$response->assertRedirect('/setting/bill');
|
||||
|
|
@ -86,6 +89,7 @@ class SettingTest extends TestCase
|
|||
$this->assertEquals('DPSG Stamm Muster', $settings->from_long);
|
||||
$this->assertEquals('DE05', $settings->iban);
|
||||
$this->assertEquals('SOLSDE', $settings->bic);
|
||||
$this->assertEquals('reply@example.com2', $settings->replyTo);
|
||||
$this->assertEquals(10, $settings->rememberWeeks);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue