소스 검색

各種申請系 整備

master
sosuke.iwabuchi 2 년 전
부모
커밋
97b556e9fb
16개의 변경된 파일424개의 추가작업 그리고 78개의 파일을 삭제
  1. +25
    -0
      app/Http/Controllers/Web/SeasonTicketContract/StickerReOrderController.php
  2. +6
    -1
      app/Http/Controllers/Web/SeasonTicketContract/StickerReOrderParams.php
  3. +30
    -0
      app/Kintone/KintoneAccessStore.php
  4. +5
    -0
      app/Kintone/Models/Customer.php
  5. +32
    -23
      app/Kintone/Models/GeneralApplication.php
  6. +71
    -17
      app/Kintone/Models/KintoneModel.php
  7. +7
    -1
      app/Kintone/Models/Parking.php
  8. +32
    -0
      app/Kintone/Models/ParkingCertificateApplication.php
  9. +1
    -0
      app/Kintone/Models/SeasonTicketContract.php
  10. +24
    -0
      app/Kintone/Models/SeasonTicketReOrderApplication.php
  11. +22
    -0
      app/Kintone/Models/StickerReOrderApplication.php
  12. +28
    -0
      app/Kintone/Models/TerminateApplication.php
  13. +36
    -0
      app/Kintone/Models/UserInfoUpdateApplication.php
  14. +30
    -0
      app/Kintone/Models/VehicleInfoUpdateApplication.php
  15. +72
    -36
      app/Logic/GeneralApplicationManager.php
  16. +3
    -0
      app/Providers/AppServiceProvider.php

+ 25
- 0
app/Http/Controllers/Web/SeasonTicketContract/StickerReOrderController.php 파일 보기

@@ -3,6 +3,12 @@
namespace App\Http\Controllers\Web\SeasonTicketContract;

use App\Http\Controllers\Web\WebController;
use App\Kintone\Models\Customer;
use App\Kintone\Models\Parking;
use App\Kintone\Models\SeasonTicketContract;
use App\Kintone\Models\SeasonTicketReOrderApplication;
use App\Kintone\Models\StickerReOrderApplication;
use App\Logic\GeneralApplicationManager;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

@@ -28,6 +34,25 @@ class StickerReOrderController extends WebController

protected function run(Request $request): JsonResponse
{
$param = $this->param;

$parking = Parking::findByParkingName($param->parkingName);
$customer = Customer::getSelf();
$seasonTicketContract = SeasonTicketContract::find($param->seasonTicketContractRecordNo);

$application = new StickerReOrderApplication();
$manager = new GeneralApplicationManager($application);
$manager
->setCustomer($customer)
->setSeasonTicketContract($seasonTicketContract)
->setParking($parking)
->makeApplication();

$application->reason = $param->reason;
$application->memo = $param->memo;

$application->save();

return $this->successResponse();
}
}

+ 6
- 1
app/Http/Controllers/Web/SeasonTicketContract/StickerReOrderParams.php 파일 보기

@@ -3,10 +3,12 @@
namespace App\Http\Controllers\Web\SeasonTicketContract;

use App\Http\Controllers\Web\BaseParam;
use App\Kintone\Models\GeneralApplication;

/**
* @property string $seasonTicketContractRecordNo
* @property string $parkingName
* @property string $reason
* @property string $memo
*/
class StickerReOrderParams extends BaseParam
{
@@ -14,6 +16,9 @@ class StickerReOrderParams extends BaseParam
{
return [
'season_ticket_contract_record_no' => $this->str(),
'parking_name' => $this->str(),
'reason' => $this->str(),
'memo' => $this->str(true),
];
}
}

+ 30
- 0
app/Kintone/KintoneAccessStore.php 파일 보기

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

namespace App\Kintone;

use App\Features\InstanceAble;
use LogicException;

class KintoneAccessStore
{
use InstanceAble;

private array $store = [];

public function set(string $modelName, KintoneAccess $access)
{
$this->store[$modelName] = $access;
}
public function has(string $modelName): bool
{
return data_get($this->store, $modelName) !== null;
}
public function get(string $modelName): KintoneAccess
{
$accesss = data_get($this->store, $modelName);
if ($accesss === null) {
throw new LogicException(sprintf("KintoneAccessStore 未登録 %s", $modelName));
}
return $accesss;
}
}

+ 5
- 0
app/Kintone/Models/Customer.php 파일 보기

@@ -6,6 +6,11 @@ use Illuminate\Support\Facades\Auth;

/**
* アプリ名 顧客マスタ
* @property string $customerCode
* @property string $customerName
* @property string $customerNameKana
* @property string $email
* @property string $phone_number
*/
class Customer extends KintoneModel
{


+ 32
- 23
app/Kintone/Models/GeneralApplication.php 파일 보기

@@ -2,43 +2,52 @@

namespace App\Kintone\Models;

use App\Kintone\KintoneAccess;
use Illuminate\Support\Carbon;

/**
* アプリ名 各種申請
* @property string $applicationType
* @property Carbon $applicationDatetime
* @property string $status
* @property string $applicationNo
* @property string $customerCode
* @property string seasonTicketContractRecordNo
* @property string parkingName
*/
class GeneralApplication extends KintoneModel
abstract class GeneralApplication extends KintoneModel
{
const CONFIG_KEY = "KINTONE_APP_GENERAL_APPLICATION";

const FIELD_APPLICATION_TYPE = "申込内容";
const FIELD_APPLICATIONJ_STATUS = "status";
const FIELD_SEASON_TICKET_CONTRACT_RECORD_NO = "契約番号";
const FIELD_CUSTOMER_NAME = "氏名";
const FIELD_CUSTOMER_NAME_KANA = "フリガナ";
const FIELD_CUSTOMER_EMAIL = "メールアドレス";
const FIELD_CUSTOMER_PHONE_NUMBER = "電話番号";
const FIELD_TERMINATE_DATE = "解約希望日";
const FIELD_VEHICLE_NO = "変更後車両番号";
const FIELD_REGISTER_NO = "変更後防犯登録番号";
const FIELD_MEMO = "備考";
const FIELD_APPLICATION_DATETIME = "受付日時";
const BASE_MODEL = GeneralApplication::class;

const FIELD_APPLICATION_TYPE = "申請種別";
const FIELD_APPLICATION_DATETIME = "申請日時";

const FIELD_STATUS = "状況";
const FIELD_APPLICATION_NO = "申請番号";
const FIELD_CUSTOMER_CODE = "顧客コード";
const FIELD_SEASON_TICKET_CONTRACT_RECORD_NO = "契約情報";
const FIELD_PARKING_NAME = "駐車場名";

protected const FIELDS = [
...parent::FIELDS,
self::FIELD_APPLICATION_TYPE => FieldType::DROP_DOWN,
self::FIELD_APPLICATIONJ_STATUS => FieldType::DROP_DOWN,
self::FIELD_SEASON_TICKET_CONTRACT_RECORD_NO => FieldType::SINGLE_LINE_TEXT,
self::FIELD_CUSTOMER_NAME => FieldType::SINGLE_LINE_TEXT,
self::FIELD_CUSTOMER_NAME_KANA => FieldType::SINGLE_LINE_TEXT,
self::FIELD_CUSTOMER_EMAIL => FieldType::SINGLE_LINE_TEXT,
self::FIELD_CUSTOMER_PHONE_NUMBER => FieldType::SINGLE_LINE_TEXT,
self::FIELD_TERMINATE_DATE => FieldType::DATE,
self::FIELD_VEHICLE_NO => FieldType::SINGLE_LINE_TEXT,
self::FIELD_REGISTER_NO => FieldType::SINGLE_LINE_TEXT,
self::FIELD_MEMO => FieldType::MULTI_LINE_TEXT,
self::FIELD_APPLICATION_DATETIME => FieldType::DATETIME,
self::FIELD_STATUS => FieldType::DROP_DOWN,
self::FIELD_APPLICATION_NO => FieldType::SINGLE_LINE_TEXT,
self::FIELD_CUSTOMER_CODE => FieldType::SINGLE_LINE_TEXT,
self::FIELD_SEASON_TICKET_CONTRACT_RECORD_NO => FieldType::SINGLE_LINE_TEXT,
self::FIELD_PARKING_NAME => FieldType::SINGLE_LINE_TEXT,
];

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

protected const RELATIONS = [
SeasonTicketContract::class,
Parking::class,
Customer::class,
];
}

+ 71
- 17
app/Kintone/Models/KintoneModel.php 파일 보기

@@ -6,10 +6,12 @@ use App\Exceptions\AppCommonException;
use App\Exceptions\ConfigException;
use App\Kintone\File;
use App\Kintone\KintoneAccess;
use App\Kintone\KintoneAccessStore;
use App\Kintone\KintoneRecordQuery;
use App\Util\DateUtil;
use Illuminate\Support\Arr;
use Illuminate\Support\Carbon;
use Illuminate\Support\Str;
use LogicException;
use stdClass;

@@ -17,6 +19,8 @@ abstract class KintoneModel
{
const CONFIG_KEY = "";

const BASE_MODEL = null;

static public function configKey(): string
{
if (!static::CONFIG_KEY) {
@@ -51,8 +55,21 @@ abstract class KintoneModel
*/
static public function getAccess(): KintoneAccess
{
$access = new KintoneAccess(static::class);
$target = static::BASE_MODEL ?? static::class;

$store = KintoneAccessStore::instance();
if ($store->has($target)) {
return $store->get($target);
}

$access = new KintoneAccess($target);
$access->setFields(array_keys(static::FIELDS));

foreach (static::RELATIONS as $relation) {
$access->addAppToken($relation);
}

$store->set($target, $access);
return $access;
}

@@ -61,8 +78,26 @@ abstract class KintoneModel
*/
static public function getQuery(): KintoneRecordQuery
{
return new KintoneRecordQuery(static::class);
$target = static::BASE_MODEL ?? static::class;
return new KintoneRecordQuery($target);
}

public static function find(string $recordId)
{
return static::getAccess()->find($recordId);
}

public static function getDropDownOptions(string $fieldCode): array
{
$ret = [];
$properties = static::getAccess()->getAppFormFields();
$options = Arr::get($properties, sprintf("%s.options", $fieldCode));
$ret = Arr::pluck(Arr::sort($options, function ($option) {
return data_get($option, "index");
}), "label");
return $ret;
}

protected ?string $recordId = null;

protected ?int $revision = null;
@@ -78,6 +113,8 @@ abstract class KintoneModel

protected const FIELD_NAMES = [];

protected const RELATIONS = [];

private array $changed = [];

public function __construct()
@@ -85,6 +122,27 @@ abstract class KintoneModel
$this->data = new stdClass();
}

public function __get($name)
{
$field = "FIELD_" . Str::of($name)->snake()->upper()->toString();
$constantPath = sprintf("%s::%s", static::class, $field);
if (defined($constantPath)) {
return $this->get(constant($constantPath));
} else {
throw new LogicException(sprintf("未定義のメンバアクセス %s %s", static::class, $field));
}
}
public function __set($name, $value)
{
$field = "FIELD_" . Str::of($name)->snake()->upper()->toString();
$constantPath = sprintf("%s::%s", static::class, $field);
if (defined($constantPath)) {
return $this->set(constant($constantPath), $value);
} else {
throw new LogicException(sprintf("未定義のメンバアクセス %s %s", static::class, $field));
}
}

public function set(string $fieldCode, $value)
{
$field = Arr::get(static::FIELDS, $fieldCode);
@@ -197,21 +255,7 @@ abstract class KintoneModel
return $ret;
}

public static function getDropDownOptions(string $fieldCode): array
{
$ret = [];
$properties = static::getAccess()->getAppFormFields();
$options = Arr::get($properties, sprintf("%s.options", $fieldCode));
$ret = Arr::pluck(Arr::sort($options, function ($option) {
return data_get($option, "index");
}), "label");
// foreach ($options as $option) {
// $index = data_get($option, "index");
// $label = data_get($option, "label");
// $ret[$index] = $label;
// }
return $ret;
}


/**
* 変更前データを現在データで上書きする
@@ -308,6 +352,16 @@ abstract class KintoneModel
return $this->createdAt;
}

public function save()
{
$access = static::getAccess();
if ($this->recordId === null) {
$access->create($this);
} else {
$access->update($this);
}
}

public function toArray($column = ['*']): array
{
if ($this->recordId === null) {


app/Kintone/Models/Paking.php → app/Kintone/Models/Parking.php 파일 보기

@@ -4,8 +4,9 @@ namespace App\Kintone\Models;

/**
* アプリ名 駐車場マスタ
* @property string $parkingName
*/
class Paking extends KintoneModel
class Parking extends KintoneModel
{
const CONFIG_KEY = "KINTONE_APP_PARKING";

@@ -20,4 +21,9 @@ class Paking extends KintoneModel
...parent::FIELD_NAMES,
self::FIELD_PARKING_NAME => 'parking_name',
];

static function findByParkingName(string $parkingName)
{
return static::getAccess()->first(static::getQuery()->where(static::FIELD_PARKING_NAME, $parkingName));
}
}

+ 32
- 0
app/Kintone/Models/ParkingCertificateApplication.php 파일 보기

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

namespace App\Kintone\Models;

/**
* アプリ名 各種申請 [駐車証明発行申請]
*/
class ParkingCertificateApplication extends GeneralApplication
{
const FIELD_PAYMENT_METHOD = "車庫証明発行申請_支払方法";
const FIELD_VEHICLE_NO = "車庫証明発行申請_車両番号";
const FIELD_CHASSIS_NO = "車庫証明発行申請_車体番号";
const FIELD_MAIL_NAME = "車庫証明発行申請_宛名";
const FIELD_MAIL_ZIP_CODE = "車庫証明発行申請_郵便番号";
const FIELD_MAIL_ADDRESS = "車庫証明発行申請_住所";
const FIELD_MEMO = "車庫証明発行申請_備考";

protected const FIELDS = [
...parent::FIELDS,
self::FIELD_PAYMENT_METHOD => FieldType::DROP_DOWN,
self::FIELD_VEHICLE_NO => FieldType::SINGLE_LINE_TEXT,
self::FIELD_CHASSIS_NO => FieldType::SINGLE_LINE_TEXT,
self::FIELD_MAIL_NAME => FieldType::SINGLE_LINE_TEXT,
self::FIELD_MAIL_ZIP_CODE => FieldType::SINGLE_LINE_TEXT,
self::FIELD_MAIL_ADDRESS => FieldType::SINGLE_LINE_TEXT,
self::FIELD_MEMO => FieldType::MULTI_LINE_TEXT,
];

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

+ 1
- 0
app/Kintone/Models/SeasonTicketContract.php 파일 보기

@@ -6,6 +6,7 @@ use LogicException;

/**
* アプリ名 車室情報管理
* @property string seasonTicketSeqNo
*/
class SeasonTicketContract extends KintoneModel
{


+ 24
- 0
app/Kintone/Models/SeasonTicketReOrderApplication.php 파일 보기

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

namespace App\Kintone\Models;

/**
* アプリ名 各種申請 [定期券再発行申請]
* @property string $reason
* @property string $memo
*/
class SeasonTicketReOrderApplication extends GeneralApplication
{
const FIELD_REASON = "定期券再発行申請_再発行理由";
const FIELD_MEMO = "定期券再発行申請_備考";

protected const FIELDS = [
...parent::FIELDS,
self::FIELD_REASON => FieldType::MULTI_LINE_TEXT,
self::FIELD_MEMO => FieldType::MULTI_LINE_TEXT,
];

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

+ 22
- 0
app/Kintone/Models/StickerReOrderApplication.php 파일 보기

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

namespace App\Kintone\Models;

/**
* アプリ名 各種申請 [シール再発行申請]
*/
class StickerReOrderApplication extends GeneralApplication
{
const FIELD_REASON = "シール再発行申請_再発行理由";
const FIELD_MEMO = "シール再発行申請_備考";

protected const FIELDS = [
...parent::FIELDS,
self::FIELD_REASON => FieldType::MULTI_LINE_TEXT,
self::FIELD_MEMO => FieldType::MULTI_LINE_TEXT,
];

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

+ 28
- 0
app/Kintone/Models/TerminateApplication.php 파일 보기

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

namespace App\Kintone\Models;

/**
* アプリ名 各種申請 [解約申請]
*/
class TerminateApplication extends GeneralApplication
{
const FIELD_TERMINATE_DATE = "解約申請_解約希望日";
const FIELD_REASON = "解約申請_解約理由";
const FIELD_REASON_DETAIL = "解約申請_解約理由_詳細";
const FIELD_OPINION = "解約申請_意見";
const FIELD_MEMO = "解約申請_備考";

protected const FIELDS = [
...parent::FIELDS,
self::FIELD_TERMINATE_DATE => FieldType::DATETIME,
self::FIELD_REASON => FieldType::CHECK_BOX,
self::FIELD_REASON_DETAIL => FieldType::MULTI_LINE_TEXT,
self::FIELD_OPINION => FieldType::MULTI_LINE_TEXT,
self::FIELD_MEMO => FieldType::MULTI_LINE_TEXT,
];

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

+ 36
- 0
app/Kintone/Models/UserInfoUpdateApplication.php 파일 보기

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

namespace App\Kintone\Models;

/**
* アプリ名 各種申請 [利用者情報変更申請]
*/
class UserInfoUpdateApplication extends GeneralApplication
{
const FIELD_NAME_BEFORE = "利用者情報変更申請_変更前_氏名";
const FIELD_NAME_AFTER = "利用者情報変更申請_変更後_氏名";
const FIELD_ZIP_CODE_BEFORE = "利用者情報変更申請_変更前_郵便番号";
const FIELD_ZIP_CODE_AFTER = "利用者情報変更申請_変更後_郵便番号";
const FIELD_ADDRESS_BEFORE = "利用者情報変更申請_変更前_住所";
const FIELD_ADDRESS_AFTER = "利用者情報変更申請_変更後_住所";
const FIELD_PHONE_NO_BEFORE = "利用者情報変更申請_変更前_電話番号";
const FIELD_PHONE_NO_AFTER = "利用者情報変更申請_変更後_電話番号";
const FIELD_MEMO = "利用者情報変更申請_備考";

protected const FIELDS = [
...parent::FIELDS,
self::FIELD_NAME_BEFORE => FieldType::SINGLE_LINE_TEXT,
self::FIELD_NAME_BEFORE => FieldType::SINGLE_LINE_TEXT,
self::FIELD_ZIP_CODE_BEFORE => FieldType::SINGLE_LINE_TEXT,
self::FIELD_ZIP_CODE_AFTER => FieldType::SINGLE_LINE_TEXT,
self::FIELD_ADDRESS_BEFORE => FieldType::SINGLE_LINE_TEXT,
self::FIELD_ADDRESS_AFTER => FieldType::SINGLE_LINE_TEXT,
self::FIELD_PHONE_NO_BEFORE => FieldType::SINGLE_LINE_TEXT,
self::FIELD_PHONE_NO_AFTER => FieldType::SINGLE_LINE_TEXT,
self::FIELD_MEMO => FieldType::MULTI_LINE_TEXT,
];

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

+ 30
- 0
app/Kintone/Models/VehicleInfoUpdateApplication.php 파일 보기

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

namespace App\Kintone\Models;

/**
* アプリ名 各種申請 [車両番号・防犯番号変更申請]
*/
class VehicleInfoUpdateApplication extends GeneralApplication
{
const FIELD_CHANGE_DATE = "車両番号_防犯番号変更申請_変更日";
const FIELD_VEHICLE_NO_BEFORE = "車両番号_防犯番号変更申請_変更前_車両番号";
const FIELD_VEHICLE_NO_AFTER = "車両番号_防犯番号変更申請_変更後_車両番号";
const FIELD_REGISTER_NO_BEFORE = "車両番号_防犯番号変更申請_変更前_防犯登録番号";
const FIELD_REGISTER_NO_AFTER = "車両番号_防犯番号変更申請_変更後_防犯登録番号";
const FIELD_MEMO = "車両番号_防犯番号変更申請_備考";

protected const FIELDS = [
...parent::FIELDS,
self::FIELD_CHANGE_DATE => FieldType::DATE,
self::FIELD_VEHICLE_NO_BEFORE => FieldType::SINGLE_LINE_TEXT,
self::FIELD_VEHICLE_NO_AFTER => FieldType::SINGLE_LINE_TEXT,
self::FIELD_REGISTER_NO_BEFORE => FieldType::SINGLE_LINE_TEXT,
self::FIELD_REGISTER_NO_AFTER => FieldType::SINGLE_LINE_TEXT,
self::FIELD_MEMO => FieldType::MULTI_LINE_TEXT,
];

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

+ 72
- 36
app/Logic/GeneralApplicationManager.php 파일 보기

@@ -2,80 +2,116 @@

namespace App\Logic;

use App\Features\InstanceAble;
use App\Kintone\Models\Customer;
use App\Kintone\Models\GeneralApplication;
use App\Kintone\Models\Parking;
use App\Kintone\Models\ParkingCertificateApplication;
use App\Kintone\Models\SeasonTicketContract;
use App\Kintone\Models\SeasonTicketReOrderApplication;
use App\Kintone\Models\StickerReOrderApplication;
use App\Kintone\Models\TerminateApplication;
use App\Kintone\Models\UserInfoUpdateApplication;
use App\Kintone\Models\VehicleInfoUpdateApplication;
use App\Util\DateUtil;
use Illuminate\Support\Carbon;
use LogicException;

/**
* @template T of GeneralApplication
*/
class GeneralApplicationManager
{
private ?Customer $customer = null;

use InstanceAble;
private ?SeasonTicketContract $seasonTicketContract = null;

private Customer|null $customer = null;
private ?Parking $parking = null;


/**
* @param T $model
*/
public function __construct(private GeneralApplication $model)
{
if ($model instanceof TerminateApplication) {
$this->setType("解約申請");
return;
}
if ($model instanceof ParkingCertificateApplication) {
$this->setType("車庫証明発行申請");
return;
}
if ($model instanceof StickerReOrderApplication) {
$this->setType("シール再発行申請");
return;
}
if ($model instanceof SeasonTicketReOrderApplication) {
$this->setType("定期券再発行申請");
return;
}
if ($model instanceof VehicleInfoUpdateApplication) {
$this->setType("車両番号・防犯登録番号変更");
return;
}
if ($model instanceof UserInfoUpdateApplication) {
$this->setType("利用者情報変更");
return;
}
if ($model instanceof UserInfoUpdateApplication) {
$this->setType("振替頻度変更");
return;
}
}

public function setCustomer(Customer $customer): static
{

$this->customer = $customer;
return $this;
}

public function forTerminate(array $attr): static
public function setSeasonTicketContract(SeasonTicketContract $seasonTicketContract): static
{
$terminateDate = data_get($attr, GeneralApplication::FIELD_TERMINATE_DATE);
if (!($terminateDate instanceof Carbon)) throw new LogicException("解約予定日不正");
$this->model->set(GeneralApplication::FIELD_TERMINATE_DATE, $terminateDate);

return $this->setType("解約申請")
->setMemo($attr);
$this->seasonTicketContract = $seasonTicketContract;
return $this;
}

public function forParkingCertificate(array $attr = []): static
public function setParking(Parking $parking): static
{
return $this->setType("車庫証明発行申請")
->setMemo($attr);
$this->parking = $parking;
return $this;
}

public function register()
/**
* @return T
*/
public function makeApplication()
{
$this->model->applicationDatetime = DateUtil::now();
$this->model->status = "新規登録";
$this->model->applicationNo = $this->getApplicationNo();

if ($this->customer === null) {
throw new LogicException("顧客NULL");
throw new LogicException("顧客未設定のため失敗");
}

if (!$this->model->getStr(GeneralApplication::FIELD_APPLICATION_TYPE)) {
throw new LogicException("申請タイプ未設定");
$this->model->customerCode = $this->customer->customerCode;

if ($this->seasonTicketContract !== null) {
$this->model->seasonTicketContractRecordNo = $this->seasonTicketContract->seasonTicketSeqNo;
}

$this->model->set(GeneralApplication::FIELD_APPLICATION_DATETIME, DateUtil::now());
$this->model->set(GeneralApplication::FIELD_APPLICATIONJ_STATUS, "申込");
$this->model->set(GeneralApplication::FIELD_CUSTOMER_EMAIL, $this->customer->get(Customer::FIELD_EMAIL));
$this->model->set(GeneralApplication::FIELD_CUSTOMER_NAME, $this->customer->get(Customer::FIELD_CUSTOMER_NAME));
$this->model->set(GeneralApplication::FIELD_CUSTOMER_NAME_KANA, $this->customer->get(Customer::FIELD_CUSTOMER_NAME_KANA));
$this->model->set(GeneralApplication::FIELD_CUSTOMER_PHONE_NUMBER, $this->customer->get(Customer::FIELD_PHONE_NUMBER));
if ($this->parking !== null) {
$this->model->parkingName = $this->parking->parkingName;
}

$access = $this->model->getAccess();
$access->create($this->model);
return $this->model;
}

private function setType(string $type): static
{
$this->model->set(GeneralApplication::FIELD_APPLICATION_TYPE, $type);
$this->model->applicationType = $type;
return $this;
}

private function setMemo(array $attr): static
private function getApplicationNo(): string
{
$memo = data_get($attr, GeneralApplication::FIELD_MEMO);
if ($memo) {
$this->model->set(GeneralApplication::FIELD_MEMO, $memo);
}
return $this;
return sprintf("%s-%06d", DateUtil::now()->format('Ymd'), rand(1, 999999));
}
}

+ 3
- 0
app/Providers/AppServiceProvider.php 파일 보기

@@ -44,5 +44,8 @@ class AppServiceProvider extends ServiceProvider

// DB関連
$this->app->singleton(\App\Util\DBUtil::class);

// KINTONE関連
$this->app->singleton(\App\Kintone\KintoneAccessStore::class);
}
}

Loading…
취소
저장