Explorar el Código

支払状況対応

master
sosuke.iwabuchi hace 2 años
padre
commit
a974b2bfd8
Se han modificado 6 ficheros con 136 adiciones y 1 borrados
  1. +48
    -0
      app/Http/Controllers/Web/SeasonTicketContract/PaymentPlansController.php
  2. +18
    -0
      app/Http/Controllers/Web/SeasonTicketContract/PaymentPlansParam.php
  3. +6
    -1
      app/Kintone/Models/KintoneModel.php
  4. +62
    -0
      app/Kintone/Models/PaymentPlan.php
  5. +1
    -0
      config/kintone.php
  6. +1
    -0
      routes/api.php

+ 48
- 0
app/Http/Controllers/Web/SeasonTicketContract/PaymentPlansController.php Ver fichero

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

namespace App\Http\Controllers\Web\SeasonTicketContract;

use App\Http\Controllers\Web\WebController;
use App\Kintone\Models\PaymentPlan;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class PaymentPlansController extends WebController
{

public function name(): string
{
return "入金予定結果一覧取得";
}

public function description(): string
{
return "入金予定結果の一覧を取得する";
}


public function __construct(protected PaymentPlansParam $param)
{
parent::__construct();
$this->middleware('auth:sanctum');
}

protected function run(Request $request): JsonResponse
{
$user = Auth::user();

$query = PaymentPlan::getQuery()
->where(PaymentPlan::FIELD_SEASON_TICKET_CONTRACT_RECORD_NO, $this->param->seasonTicketContractRecordNo)
->orderByDesc(PaymentPlan::FIELD_PAYMENT_PLAN_DATE);

$list = PaymentPlan::getAccess()->some($query);

$result = [];
foreach ($list as $ele) {
$result[] = $ele->toArray();
}

return $this->successResponse($result);
}
}

+ 18
- 0
app/Http/Controllers/Web/SeasonTicketContract/PaymentPlansParam.php Ver fichero

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

namespace App\Http\Controllers\Web\SeasonTicketContract;

use App\Http\Controllers\Web\BaseParam;

/**
* @property string $seasonTicketContractRecordNo
*/
class PaymentPlansParam extends BaseParam
{
public function rules(): array
{
return [
'season_ticket_contract_record_no' => $this->str(),
];
}
}

+ 6
- 1
app/Kintone/Models/KintoneModel.php Ver fichero

@@ -332,11 +332,16 @@ abstract class KintoneModel

$ret[$columnName] = $value;
}
$ret = array_merge($ret, $this->toArrayCustom());

return $ret;
}

protected function toArrayCustom(): array
{
return [];
}


/**
* オーバーライドを期待


+ 62
- 0
app/Kintone/Models/PaymentPlan.php Ver fichero

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

namespace App\Kintone\Models;

/**
* アプリ名 入金予定・結果
*/
class PaymentPlan extends KintoneModel
{
const CONFIG_KEY = "KINTONE_APP_PAYMENT_PLAN";

const FIELD_SEASON_TICKET_CONTRACT_RECORD_NO = "contract_record_number";
const FIELD_PAYMENT_TYPE = "payment_type";
const FIELD_PAYMENT_METHOD = "payment_method";
const FIELD_TARGET_YEAR = "target_year";
const FIELD_TARGET_MONTH = "target_month";
const FIELD_TARGET_TERM_MONTH = "target_term_month";
const FIELD_PAYMENT_PLAN_DATE = "payment_plan_date";
const FIELD_PAYMENT_PLAN_AMOUNT = "payment_plan_amount";
const FIELD_APPROPRIATION_DATE = "appropriation_date";
const FIELD_APPROPRIATION_AMOUNT = "appropriation_amount";
const FIELD_REMAINING_AMOUNT = "remaining_amount";

protected const FIELDS = [
...parent::FIELDS,
self::FIELD_SEASON_TICKET_CONTRACT_RECORD_NO => FieldType::SINGLE_LINE_TEXT,
self::FIELD_PAYMENT_TYPE => FieldType::DROP_DOWN,
self::FIELD_PAYMENT_METHOD => FieldType::DROP_DOWN,
self::FIELD_TARGET_YEAR => FieldType::SINGLE_LINE_TEXT,
self::FIELD_TARGET_MONTH => FieldType::SINGLE_LINE_TEXT,
self::FIELD_TARGET_TERM_MONTH => FieldType::SINGLE_LINE_TEXT,
self::FIELD_PAYMENT_PLAN_DATE => FieldType::DATE,
self::FIELD_PAYMENT_PLAN_AMOUNT => FieldType::SINGLE_LINE_TEXT,
self::FIELD_APPROPRIATION_DATE => FieldType::DATE,
self::FIELD_APPROPRIATION_AMOUNT => FieldType::SINGLE_LINE_TEXT,
self::FIELD_REMAINING_AMOUNT => FieldType::SINGLE_LINE_TEXT,
];

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

self::FIELD_SEASON_TICKET_CONTRACT_RECORD_NO => 'season_ticekt_contract_record_no',
self::FIELD_PAYMENT_TYPE => 'payment_type',
self::FIELD_PAYMENT_METHOD => 'payment_method',
self::FIELD_PAYMENT_PLAN_DATE => 'payment_plan_date',
];

protected function toArrayCustom(): array
{

$paymentDate = $this->getDate(self::FIELD_APPROPRIATION_DATE);
$remainingAmount = $this->getNumber(self::FIELD_REMAINING_AMOUNT);

$paymentStatus = "未払い";
if (!!$paymentDate && $remainingAmount === 0) {
$paymentStatus = "支払済み";
}
return [
'payment_status' => $paymentStatus,
];
}
}

+ 1
- 0
config/kintone.php Ver fichero

@@ -29,6 +29,7 @@ return [
...App\Kintone\Models\Customer::setConfig(),
...App\Kintone\Models\ParkingRoom::setConfig(),
...App\Kintone\Models\SeasonTicketContract::setConfig(),
...App\Kintone\Models\PaymentPlan::setConfig(),
],

];

+ 1
- 0
routes/api.php Ver fichero

@@ -19,3 +19,4 @@ RouteHelper::get('/logout', App\Http\Controllers\Web\Auth\LogoutController::clas
RouteHelper::get('/me', App\Http\Controllers\Web\Auth\MeController::class);

RouteHelper::get('/season-ticket-contracts', App\Http\Controllers\Web\SeasonTicketContract\SeasonTicketContractsController::class);
RouteHelper::get('/season-ticket-contract/payment-plans', App\Http\Controllers\Web\SeasonTicketContract\PaymentPlansController::class);

Cargando…
Cancelar
Guardar