ソースを参照

申込キャンセル対応

master
sosuke.iwabuchi 2年前
コミット
0f6dde90fb
5個のファイルの変更20行の追加6行の削除
  1. +9
    -1
      app/Email/Members/SelectionNotice.php
  2. +4
    -3
      app/Http/Controllers/Web/SeasonTicketContract/Entry/CancelController.php
  3. +1
    -1
      app/Http/Controllers/Web/SeasonTicketContract/Entry/EntryInfoController.php
  4. +1
    -0
      app/Kintone/Models/SeasonTicketContractEntry.php
  5. +5
    -1
      app/Logic/SeasonTicketContractEntryManager.php

+ 9
- 1
app/Email/Members/SelectionNotice.php ファイルの表示

@@ -4,6 +4,7 @@ namespace App\Email\Members;

use App\Kintone\Models\SeasonTicketContractEntry;
use App\Kintone\Models\SeasonTicketContractSelection;
use App\Logic\SeasonTicketContractEntryManager;
use App\Logic\SeasonTicketContractSelectionManager;

class SelectionNotice extends Members
@@ -29,6 +30,7 @@ class SelectionNotice extends Members
public function getMemberParams(): array
{
$manager = new SeasonTicketContractSelectionManager($this->selection);
$entryManager = new SeasonTicketContractEntryManager($this->entry);

return [
'customer_name' => $this->entry->customerName,
@@ -38,7 +40,13 @@ class SelectionNotice extends Members
'selection', 'entry',
$this->selection->getRecordId(),
$this->entry->getRecordId(),
$manager->getHash($this->entry->getRecordId())
$manager->getHash($this->entry->getRecordId()),
]),
'cancel_url' => $this->getAppUrl([
'season-ticket-contract',
'entry', 'cancel',
$this->entry->getRecordId(),
$entryManager->getHash()
]),
];
}


+ 4
- 3
app/Http/Controllers/Web/SeasonTicketContract/Entry/CancelController.php ファイルの表示

@@ -7,7 +7,7 @@ use App\Logic\SeasonTicketContractEntryManager;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class EntryInfoController extends WebController
class CancelController extends WebController
{
public function name(): string
{
@@ -34,8 +34,9 @@ class EntryInfoController extends WebController
return $this->failedResponse();
}

$entry = $manager->getEntry();
$manager->cancel()
->save();

return $this->successResponse($entry->toArray());
return $this->successResponse();
}
}

+ 1
- 1
app/Http/Controllers/Web/SeasonTicketContract/Entry/EntryInfoController.php ファイルの表示

@@ -7,7 +7,7 @@ use App\Logic\SeasonTicketContractEntryManager;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class CancelController extends WebController
class EntryInfoController extends WebController
{

public function name(): string


+ 1
- 0
app/Kintone/Models/SeasonTicketContractEntry.php ファイルの表示

@@ -57,6 +57,7 @@ class SeasonTicketContractEntry extends KintoneModel
protected const FIELDS = [
...parent::FIELDS,
self::FIELD_PARKING_NAME => FieldType::SINGLE_LINE_TEXT,
self::FIELD_STATUS => FieldType::DROP_DOWN,
self::FIELD_CUSTOMER_NAME => FieldType::SINGLE_LINE_TEXT,
self::FIELD_CUSTOMER_NAME_KANA => FieldType::SINGLE_LINE_TEXT,
self::FIELD_PHONE_NO => FieldType::SINGLE_LINE_TEXT,


+ 5
- 1
app/Logic/SeasonTicketContractEntryManager.php ファイルの表示

@@ -2,6 +2,7 @@

namespace App\Logic;

use App\Exceptions\GeneralErrorMessageException;
use App\Kintone\Models\DropDown\SeasonTicketContractEntry\Status;
use App\Kintone\Models\SeasonTicketContractEntry;

@@ -9,10 +10,13 @@ class SeasonTicketContractEntryManager
{
private SeasonTicketContractEntry $entry;

public function __construct(int|SeasonTicketContractEntry $recordNo = null)
public function __construct(int|SeasonTicketContractEntry $recordNo = null, bool $includeCancel = false)
{
if (is_int($recordNo)) {
$this->entry = SeasonTicketContractEntry::find($recordNo);
if (!$includeCancel && $this->entry->status === Status::CANCEL) {
throw new GeneralErrorMessageException("すでにキャンセル済みです");
}
return;
} else if ($recordNo instanceof SeasonTicketContractEntry) {
$this->entry = $recordNo;


読み込み中…
キャンセル
保存