Browse Source

定期プランの取得対応

master
sosuke.iwabuchi 2 years ago
parent
commit
b2e07d8772
6 changed files with 57 additions and 4 deletions
  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 View File

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

return $this;
} }
} }

+ 3
- 0
app/Kintone/Models/SeasonTicketContract.php View File

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


const FIELD_STUDENT_LICENSE_IMAGES = "学生証画像"; const FIELD_STUDENT_LICENSE_IMAGES = "学生証画像";
const FIELD_OTHER_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_START_DATE => FieldType::DATE,
self::FIELD_CONTRACT_END_DATE => FieldType::DATE, self::FIELD_CONTRACT_END_DATE => FieldType::DATE,
self::FIELD_CONTRACT_AMOUNT => FieldType::NUMBER, self::FIELD_CONTRACT_AMOUNT => FieldType::NUMBER,
self::FIELD_PLAN_NAME => FieldType::SINGLE_LINE_TEXT,
self::FIELD_STUDENT_LICENSE_IMAGES => FieldType::FILE, self::FIELD_STUDENT_LICENSE_IMAGES => FieldType::FILE,
self::FIELD_OTHER_LICENSE_IMAGES => FieldType::FILE, self::FIELD_OTHER_LICENSE_IMAGES => FieldType::FILE,
self::FIELD_STUDENT_LICENSE_IMAGES_UPLOAD_DATETIME => FieldType::DATETIME, self::FIELD_STUDENT_LICENSE_IMAGES_UPLOAD_DATETIME => FieldType::DATETIME,


+ 41
- 0
app/Kintone/Models/SeasonTicketContractPlan.php View File

@@ -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 View File

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


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


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


/**
* @var SeasonTicketContract $seasonTicketContract
*/
foreach ($seasonTicketContracts as $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; return $ret;


+ 3
- 0
app/Kintone/Repositories/SeasonTicketContractRepositoryData.php View File

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


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


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


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


+ 1
- 0
config/kintone.php View File

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


Loading…
Cancel
Save