Переглянути джерело

定期プランの取得対応

master
sosuke.iwabuchi 2 роки тому
джерело
коміт
b2e07d8772
6 змінених файлів з 57 додано та 4 видалено
  1. +2
    -0
      app/Kintone/KintoneRecordQuery.php
  2. +3
    -0
      app/Kintone/Models/SeasonTicketContract.php
  3. +41
    -0
      app/Kintone/Models/SeasonTicketContractPlan.php
  4. +7
    -4
      app/Kintone/Repositories/SeasonTicketContractRepository.php
  5. +3
    -0
      app/Kintone/Repositories/SeasonTicketContractRepositoryData.php
  6. +1
    -0
      config/kintone.php

+ 2
- 0
app/Kintone/KintoneRecordQuery.php Переглянути файл

@@ -174,5 +174,7 @@ class KintoneRecordQuery
));
return $this;
}

return $this;
}
}

+ 3
- 0
app/Kintone/Models/SeasonTicketContract.php Переглянути файл

@@ -9,6 +9,7 @@ use LogicException;
* @property string customerCode
* @property string seasonTicketSeqNo
* @property string parkingName
* @property string planName
* @property string vehicleNo
* @property string registerNo
*/
@@ -25,6 +26,7 @@ class SeasonTicketContract extends KintoneModel
const FIELD_CONTRACT_START_DATE = "契約日";
const FIELD_CONTRACT_END_DATE = "解約日";
const FIELD_CONTRACT_AMOUNT = "契約金額";
const FIELD_PLAN_NAME = "契約駐車場_0";

const FIELD_STUDENT_LICENSE_IMAGES = "学生証画像";
const FIELD_OTHER_LICENSE_IMAGES = "障がい者手帳画像";
@@ -44,6 +46,7 @@ class SeasonTicketContract extends KintoneModel
self::FIELD_CONTRACT_START_DATE => FieldType::DATE,
self::FIELD_CONTRACT_END_DATE => FieldType::DATE,
self::FIELD_CONTRACT_AMOUNT => FieldType::NUMBER,
self::FIELD_PLAN_NAME => FieldType::SINGLE_LINE_TEXT,
self::FIELD_STUDENT_LICENSE_IMAGES => FieldType::FILE,
self::FIELD_OTHER_LICENSE_IMAGES => FieldType::FILE,
self::FIELD_STUDENT_LICENSE_IMAGES_UPLOAD_DATETIME => FieldType::DATETIME,


+ 41
- 0
app/Kintone/Models/SeasonTicketContractPlan.php Переглянути файл

@@ -0,0 +1,41 @@
<?php

namespace App\Kintone\Models;


/**
* アプリ名 定期駐車場プランマスタ
* @property string planName
* @property string parkingName
* @property string[] sendItem
* @property string vehicleType
*/
class SeasonTicketContractPlan extends KintoneModel
{
const CONFIG_KEY = "KINTONE_APP_SEASON_TICKET_CONTRACT_PLAN";

const FIELD_PLAN_NAME = "key";
const FIELD_PARKING_NAME = "定期_駐車場名";
const FIELD_SEND_ITEM = "送付物";
const FIELD_VEHICLE_TYPE = "種別";

protected const FIELDS = [
...parent::FIELDS,
self::FIELD_PARKING_NAME => FieldType::SINGLE_LINE_TEXT,
self::FIELD_SEND_ITEM => FieldType::CHECK_BOX,
self::FIELD_VEHICLE_TYPE => FieldType::SINGLE_LINE_TEXT,
];

protected const FIELD_NAMES = [
...parent::FIELD_NAMES,
];

protected function toArrayCustom(): array
{
$item = $this->sendItem;
return [
'has_season_ticket' => in_array("定期券", $item),
'has_sticker' => in_array("シール", $item),
];
}
}

+ 7
- 4
app/Kintone/Repositories/SeasonTicketContractRepository.php Переглянути файл

@@ -4,6 +4,7 @@ namespace App\Kintone\Repositories;

use App\Kintone\Models\Parking;
use App\Kintone\Models\SeasonTicketContract;
use App\Kintone\Models\SeasonTicketContractPlan;
use Illuminate\Support\Collection;

class SeasonTicketContractRepository
@@ -21,13 +22,15 @@ class SeasonTicketContractRepository
->where(SeasonTicketContract::FIELD_CUSTOMER_CODE, $customerCode);
$seasonTicketContracts = SeasonTicketContract::getAccess()
->some($query);
$planAccess = SeasonTicketContractPlan::getAccess();

/**
* @var SeasonTicketContract $seasonTicketContract
*/
foreach ($seasonTicketContracts as $seasonTicketContract) {

$ret->put($seasonTicketContract->getRecordId(), new SeasonTicketContractRepositoryData($seasonTicketContract));

$query = SeasonTicketContractPlan::getQuery()->where(SeasonTicketContractPlan::FIELD_PLAN_NAME, $seasonTicketContract->planName);
$plan = $planAccess->first($query);

$ret->put($seasonTicketContract->getRecordId(), new SeasonTicketContractRepositoryData($seasonTicketContract, $plan));
}

return $ret;


+ 3
- 0
app/Kintone/Repositories/SeasonTicketContractRepositoryData.php Переглянути файл

@@ -3,11 +3,13 @@
namespace App\Kintone\Repositories;

use App\Kintone\Models\SeasonTicketContract;
use App\Kintone\Models\SeasonTicketContractPlan;

class SeasonTicketContractRepositoryData
{
public function __construct(
public SeasonTicketContract $seasonTicketContract,
public SeasonTicketContractPlan $plan,
) {
}

@@ -15,6 +17,7 @@ class SeasonTicketContractRepositoryData
{
return [
...$this->seasonTicketContract->toArray(),
...$this->plan->toArray(),
'season_ticekt_contract_record_no' => $this->seasonTicketContract->getRecordId(),
];
}


+ 1
- 0
config/kintone.php Переглянути файл

@@ -30,6 +30,7 @@ return [
...App\Kintone\Models\Bank::setConfig(),
...App\Kintone\Models\Parking::setConfig(),
...App\Kintone\Models\SeasonTicketContract::setConfig(),
...App\Kintone\Models\SeasonTicketContractPlan::setConfig(),
...App\Kintone\Models\SeasonTicketContractEntry::setConfig(),
...App\Kintone\Models\PaymentPlan::setConfig(),
...App\Kintone\Models\GeneralApplication::setConfig(),


Завантаження…
Відмінити
Зберегти