|
- <?php
-
- namespace App\Kintone\Models;
-
- use App\Http\Controllers\Web\Receipt\ReceiptDownloadController;
- use App\Kintone\Models\PaymentPlan as ModelsPaymentPlan;
- use App\Kintone\Models\SubTable\Receipt\PaymentPlan;
- use App\Kintone\Models\SubTable\Receipt\ReceiptDetail;
- use App\Kintone\Models\SubTable\Receipt\TaxDetail;
- use App\Util\RouteHelper;
- use Illuminate\Support\Carbon;
- use Illuminate\Support\Collection;
-
- /**
- * アプリ名 領収証
- * @property string receiptNo
- * @property Carbon receiptDate
- * @property string invoiceNo
- * @property string receiptIssure
- * @property string receiptName
- * @property int customerCode
- * @property string customerName
- * @property string taxType
- * @property Collection<int, ReceiptDetail> receiptDetail
- * @property Collection<int, TaxDetail> taxDetail
- * @property string receiptCustomerName
- * @property int receiptTotalAmount
- * @property Collection<int, PaymentPlan> paymentPlans
- * @property ?Carbon receiptPdfFileDownloadDatetime
- */
- class Receipt extends KintoneModel
- {
- const CONFIG_KEY = "KINTONE_APP_RECEIPT";
-
- const FIELD_RECEIPT_NO = "領収証番号";
- const FIELD_RECEIPT_DATE = "発行日";
- const FIELD_INVOICE_NO = "インボイス登録番号";
- const FIELD_RECEIPT_ISSURE = "発行事業者名";
- const FIELD_RECEIPT_NAME = "領収証名称";
- const FIELD_CUSTOMER_CODE = "顧客コード";
- const FIELD_CUSTOMER_NAME = "顧客名";
- const FIELD_TAX_TYPE = "税区分";
-
- const FIELD_RECEIPT_DETAIL = "テーブル_明細";
- const FIELD_RECEIPT_DETAIL_NAME = "明細_名称";
- const FIELD_RECEIPT_DETAIL_PARKING_NAME = "明細_駐車場名";
- const FIELD_RECEIPT_DETAIL_TARGET_MONTH = "明細_対象月";
- const FIELD_RECEIPT_DETAIL_MEMO = "明細_備考";
- const FIELD_RECEIPT_DETAIL_UNIT_PRICE = "明細_単価";
- const FIELD_RECEIPT_DETAIL_QUANTITY = "明細_数量";
- const FIELD_RECEIPT_DETAIL_AMOUNT = "明細_金額";
- const FIELD_RECEIPT_DETAIL_TAX_RATE = "明細_税率";
-
- const FIELD_TAX_DETAIL = "テーブル_内税明細";
- const FIELD_TAX_DETAIL_TAX_RATE = "内税明細_税率";
- const FIELD_TAX_DETAIL_TOTAL_AMOUNT = "内税明細_税込金額合計";
- const FIELD_TAX_DETAIL_TAX_AMOUNT = "内税明細_消費税_内税";
-
- const FIELD_RECEIPT_CUSTOMER_NAME = "宛名";
- const FIELD_RECEIPT_TOTAL_AMOUNT = "合計";
-
- const FIELD_PAYMENT_PLANS = "テーブル_入金実績";
- const FIELD_PAYMENT_PLANS_RECORD_NO = "入金実績_入金予定レコード番号";
- const FIELD_PAYMENT_PLANS_PAYMENT_PURPOSE = "入金実績_支払種別";
- const FIELD_PAYMENT_PLANS_DATE = "入金実績_入金日";
- const FIELD_PAYMENT_PLANS_AMOUNT = "入金実績_入金額";
- const FIELD_PAYMENT_PLANS_TARGET_YEAR = "入金実績支払対象_利用_年";
- const FIELD_PAYMENT_PLANS_TARGET_MONTH = "入金実績支払対象_利用_月";
-
- const FIELD_RECEIPT_PDF_FILE = "領収証PDF";
- const FIELD_RECEIPT_PDF_FILE_DOWNLOAD_DATETIME = "初回領収証ダウンロード日時";
-
- protected const FIELDS = [
- ...parent::FIELDS,
- self::FIELD_RECEIPT_NO => FieldType::SINGLE_LINE_TEXT,
- self::FIELD_RECEIPT_DATE => FieldType::DATE,
- self::FIELD_INVOICE_NO => FieldType::SINGLE_LINE_TEXT,
- self::FIELD_RECEIPT_ISSURE => FieldType::MULTI_LINE_TEXT,
- self::FIELD_RECEIPT_NAME => FieldType::SINGLE_LINE_TEXT,
- self::FIELD_CUSTOMER_CODE => FieldType::NUMBER,
- self::FIELD_CUSTOMER_NAME => FieldType::SINGLE_LINE_TEXT,
- self::FIELD_TAX_TYPE => FieldType::DROP_DOWN,
- self::FIELD_RECEIPT_DETAIL => FieldType::SUBTABLE,
- self::FIELD_TAX_DETAIL => FieldType::SUBTABLE,
- self::FIELD_RECEIPT_CUSTOMER_NAME => FieldType::SINGLE_LINE_TEXT,
- self::FIELD_RECEIPT_TOTAL_AMOUNT => FieldType::NUMBER,
- self::FIELD_RECEIPT_PDF_FILE => FieldType::FILE,
- self::FIELD_RECEIPT_PDF_FILE_DOWNLOAD_DATETIME => FieldType::DATETIME,
- self::FIELD_PAYMENT_PLANS => FieldType::SUBTABLE,
- ];
-
- protected const FIELD_NAMES = [
- ...parent::FIELD_NAMES,
- self::FIELD_RECEIPT_DATE => 'receipt_date',
- self::FIELD_RECEIPT_NAME => 'receipt_name',
- self::FIELD_RECEIPT_TOTAL_AMOUNT => 'total_amount',
- ];
-
- protected const SUB_TABLES = [
- self::FIELD_RECEIPT_DETAIL => ReceiptDetail::class,
- self::FIELD_TAX_DETAIL => TaxDetail::class,
- self::FIELD_PAYMENT_PLANS => PaymentPlan::class,
- ];
-
- protected const RELATIONS = [
- Customer::class,
- ModelsPaymentPlan::class,
- ];
-
- protected function toArrayCustom(): array
- {
- return [
- 'pdf_url' => RouteHelper::getPath(ReceiptDownloadController::class, ['receipt_no' => $this->receiptNo, 'record_no' => $this->getRecordId()]),
- ];
- }
- }
|