Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

114 rindas
4.5KB

  1. <?php
  2. namespace App\Kintone\Models;
  3. use App\Http\Controllers\Web\Receipt\ReceiptDownloadController;
  4. use App\Kintone\Models\PaymentPlan as ModelsPaymentPlan;
  5. use App\Kintone\Models\SubTable\Receipt\PaymentPlan;
  6. use App\Kintone\Models\SubTable\Receipt\ReceiptDetail;
  7. use App\Kintone\Models\SubTable\Receipt\TaxDetail;
  8. use App\Util\RouteHelper;
  9. use Illuminate\Support\Carbon;
  10. use Illuminate\Support\Collection;
  11. /**
  12. * アプリ名 領収証
  13. * @property string receiptNo
  14. * @property Carbon receiptDate
  15. * @property string invoiceNo
  16. * @property string receiptIssure
  17. * @property string receiptName
  18. * @property int customerCode
  19. * @property string customerName
  20. * @property string taxType
  21. * @property Collection<int, ReceiptDetail> receiptDetail
  22. * @property Collection<int, TaxDetail> taxDetail
  23. * @property string receiptCustomerName
  24. * @property int receiptTotalAmount
  25. * @property Collection<int, PaymentPlan> paymentPlans
  26. */
  27. class Receipt extends KintoneModel
  28. {
  29. const CONFIG_KEY = "KINTONE_APP_RECEIPT";
  30. const FIELD_RECEIPT_NO = "領収証番号";
  31. const FIELD_RECEIPT_DATE = "発行日";
  32. const FIELD_INVOICE_NO = "インボイス登録番号";
  33. const FIELD_RECEIPT_ISSURE = "発行事業者名";
  34. const FIELD_RECEIPT_NAME = "領収証名称";
  35. const FIELD_CUSTOMER_CODE = "顧客コード";
  36. const FIELD_CUSTOMER_NAME = "顧客名";
  37. const FIELD_TAX_TYPE = "税区分";
  38. const FIELD_RECEIPT_DETAIL = "テーブル_明細";
  39. const FIELD_RECEIPT_DETAIL_NAME = "明細_名称";
  40. const FIELD_RECEIPT_DETAIL_PARKING_NAME = "明細_駐車場名";
  41. const FIELD_RECEIPT_DETAIL_TARGET_MONTH = "明細_対象月";
  42. const FIELD_RECEIPT_DETAIL_MEMO = "明細_備考";
  43. const FIELD_RECEIPT_DETAIL_UNIT_PRICE = "明細_単価";
  44. const FIELD_RECEIPT_DETAIL_QUANTITY = "明細_数量";
  45. const FIELD_RECEIPT_DETAIL_AMOUNT = "明細_金額";
  46. const FIELD_RECEIPT_DETAIL_TAX_RATE = "明細_税率";
  47. const FIELD_TAX_DETAIL = "テーブル_内税明細";
  48. const FIELD_TAX_DETAIL_TAX_RATE = "内税明細_税率";
  49. const FIELD_TAX_DETAIL_TOTAL_AMOUNT = "内税明細_税込金額合計";
  50. const FIELD_TAX_DETAIL_TAX_AMOUNT = "内税明細_消費税_内税";
  51. const FIELD_RECEIPT_CUSTOMER_NAME = "宛名";
  52. const FIELD_RECEIPT_TOTAL_AMOUNT = "合計";
  53. const FIELD_PAYMENT_PLANS = "テーブル_入金実績";
  54. const FIELD_PAYMENT_PLANS_RECORD_NO = "入金実績_入金予定レコード番号";
  55. const FIELD_PAYMENT_PLANS_PAYMENT_PURPOSE = "入金実績_支払種別";
  56. const FIELD_PAYMENT_PLANS_DATE = "入金実績_入金日";
  57. const FIELD_PAYMENT_PLANS_AMOUNT = "入金実績_入金額";
  58. const FIELD_PAYMENT_PLANS_TARGET_YEAR = "入金実績支払対象_利用_年";
  59. const FIELD_PAYMENT_PLANS_TARGET_MONTH = "入金実績支払対象_利用_月";
  60. const FIELD_RECEIPT_PDF_FILE = "領収証PDF";
  61. protected const FIELDS = [
  62. ...parent::FIELDS,
  63. self::FIELD_RECEIPT_NO => FieldType::SINGLE_LINE_TEXT,
  64. self::FIELD_RECEIPT_DATE => FieldType::DATE,
  65. self::FIELD_INVOICE_NO => FieldType::SINGLE_LINE_TEXT,
  66. self::FIELD_RECEIPT_ISSURE => FieldType::MULTI_LINE_TEXT,
  67. self::FIELD_RECEIPT_NAME => FieldType::SINGLE_LINE_TEXT,
  68. self::FIELD_CUSTOMER_CODE => FieldType::NUMBER,
  69. self::FIELD_CUSTOMER_NAME => FieldType::SINGLE_LINE_TEXT,
  70. self::FIELD_TAX_TYPE => FieldType::DROP_DOWN,
  71. self::FIELD_RECEIPT_DETAIL => FieldType::SUBTABLE,
  72. self::FIELD_TAX_DETAIL => FieldType::SUBTABLE,
  73. self::FIELD_RECEIPT_CUSTOMER_NAME => FieldType::SINGLE_LINE_TEXT,
  74. self::FIELD_RECEIPT_TOTAL_AMOUNT => FieldType::NUMBER,
  75. self::FIELD_RECEIPT_PDF_FILE => FieldType::FILE,
  76. self::FIELD_PAYMENT_PLANS => FieldType::SUBTABLE,
  77. ];
  78. protected const FIELD_NAMES = [
  79. ...parent::FIELD_NAMES,
  80. self::FIELD_RECEIPT_DATE => 'receipt_date',
  81. self::FIELD_RECEIPT_NAME => 'receipt_name',
  82. self::FIELD_RECEIPT_TOTAL_AMOUNT => 'total_amount',
  83. ];
  84. protected const SUB_TABLES = [
  85. self::FIELD_RECEIPT_DETAIL => ReceiptDetail::class,
  86. self::FIELD_TAX_DETAIL => TaxDetail::class,
  87. self::FIELD_PAYMENT_PLANS => PaymentPlan::class,
  88. ];
  89. protected const RELATIONS = [
  90. Customer::class,
  91. ModelsPaymentPlan::class,
  92. ];
  93. protected function toArrayCustom(): array
  94. {
  95. return [
  96. 'pdf_url' => RouteHelper::getPath(ReceiptDownloadController::class, ['receipt_no' => $this->receiptNo, 'record_no' => $this->getRecordId()]),
  97. ];
  98. }
  99. }