Browse Source

利用実績に郵送依頼件数を追加

develop
sosuke.iwabuchi 2 years ago
parent
commit
74ed03862b
5 changed files with 77 additions and 10 deletions
  1. +72
    -10
      app/Console/Commands/SummaryUse.php
  2. +1
    -0
      app/Models/UseByKeySummary.php
  3. +2
    -0
      app/Repositories/Custom/HelloTechno/UseSummaryRepository.php
  4. +1
    -0
      database/migrations/2023_06_07_144200_create_use_summaries_table.php
  5. +1
    -0
      database/migrations/2023_06_08_092700_create_use_by_key_summaries_table.php

+ 72
- 10
app/Console/Commands/SummaryUse.php View File

@@ -19,7 +19,7 @@ use LogicException;
class SummaryUse extends BaseCommand class SummaryUse extends BaseCommand
{ {


const COMMAND = "summary:use {--contractId=} {--yyyymm=}";
const COMMAND = "summary:use {--contractId=} {--yyyymm=} {--current}";


/** /**
* The name and signature of the console command. * The name and signature of the console command.
@@ -111,10 +111,18 @@ class SummaryUse extends BaseCommand


// デフォルト判定 // デフォルト判定
if ($yyyyMM === null) { if ($yyyyMM === null) {
// デフォルトは先月とする
$this->targetDate = DateUtil::now()->addMonth(-1)->setDay(1)->setTime(0, 0);
$this->targetYYYYMM = $this->targetDate->format('Ym');
return;

if ($this->option('current')) {
// Currentの場合は当月を対象とする
$this->targetDate = DateUtil::now()->setDay(1)->setTime(0, 0);
$this->targetYYYYMM = $this->targetDate->format('Ym');
return;
} else {
// デフォルトは先月とする
$this->targetDate = DateUtil::now()->addMonth(-1)->setDay(1)->setTime(0, 0);
$this->targetYYYYMM = $this->targetDate->format('Ym');
return;
}
} }


// フォーマットチェック // フォーマットチェック
@@ -146,6 +154,12 @@ class SummaryUse extends BaseCommand
$model->is_fixed = true; $model->is_fixed = true;
} }



// 初期設定
$model->receipt_order_count = 0;
$model->mail_order_count = 0;
$model->sms_send_count = 0;
$model->sms_send_cost = 0;
return $model; return $model;
} }


@@ -175,8 +189,17 @@ class SummaryUse extends BaseCommand
->where(ReceiptIssuingOrder::COL_NAME_ORDER_DATETIME, ">=", $from) ->where(ReceiptIssuingOrder::COL_NAME_ORDER_DATETIME, ">=", $from)
->where(ReceiptIssuingOrder::COL_NAME_ORDER_DATETIME, "<", $to); ->where(ReceiptIssuingOrder::COL_NAME_ORDER_DATETIME, "<", $to);


$targetMailOrders = ReceiptIssuingOrder::getBuilder()
->where(ReceiptIssuingOrder::COL_NAME_CONTRACT_ID, $model->contract_id)
->whereNotNull(ReceiptIssuingOrder::COL_NAME_STATUS_ORDER_MAIL_DATETIME)
->where(ReceiptIssuingOrder::COL_NAME_STATUS_ORDER_MAIL_DATETIME, ">=", $from)
->where(ReceiptIssuingOrder::COL_NAME_STATUS_ORDER_MAIL_DATETIME, "<", $to);

// 領収証発行依頼件数の取得 // 領収証発行依頼件数の取得
$receiptIssuingOrders = DB::table($targetOrders, 'target_orders')
$receiptIssuingOrders = ReceiptIssuingOrder::getBuilder()
->where(ReceiptIssuingOrder::COL_NAME_CONTRACT_ID, $model->contract_id)
->where(ReceiptIssuingOrder::COL_NAME_ORDER_DATETIME, ">=", $from)
->where(ReceiptIssuingOrder::COL_NAME_ORDER_DATETIME, "<", $to)
->groupBy( ->groupBy(
ReceiptIssuingOrder::COL_NAME_CONTRACT_ID, ReceiptIssuingOrder::COL_NAME_CONTRACT_ID,
ReceiptIssuingOrder::COL_NAME_SUMMARY_KEY1, ReceiptIssuingOrder::COL_NAME_SUMMARY_KEY1,
@@ -189,7 +212,6 @@ class SummaryUse extends BaseCommand
DB::raw(sprintf("count(*) as count")), DB::raw(sprintf("count(*) as count")),
]) ])
->get(); ->get();
$model->receipt_order_count = 0;
foreach ($receiptIssuingOrders as $ele) { foreach ($receiptIssuingOrders as $ele) {


$key1 = data_get($ele, ReceiptIssuingOrder::COL_NAME_SUMMARY_KEY1); $key1 = data_get($ele, ReceiptIssuingOrder::COL_NAME_SUMMARY_KEY1);
@@ -207,6 +229,41 @@ class SummaryUse extends BaseCommand
$summaryByKeys->put($key, $summaryByKey); $summaryByKeys->put($key, $summaryByKey);
} }


// 郵送依頼件数の取得
$mailOrders = ReceiptIssuingOrder::getBuilder()
->where(ReceiptIssuingOrder::COL_NAME_CONTRACT_ID, $model->contract_id)
->whereNotNull(ReceiptIssuingOrder::COL_NAME_STATUS_ORDER_MAIL_DATETIME)
->where(ReceiptIssuingOrder::COL_NAME_STATUS_ORDER_MAIL_DATETIME, ">=", $from)
->where(ReceiptIssuingOrder::COL_NAME_STATUS_ORDER_MAIL_DATETIME, "<", $to)
->groupBy(
ReceiptIssuingOrder::COL_NAME_CONTRACT_ID,
ReceiptIssuingOrder::COL_NAME_SUMMARY_KEY1,
ReceiptIssuingOrder::COL_NAME_SUMMARY_KEY2,
)
->select([
ReceiptIssuingOrder::COL_NAME_CONTRACT_ID,
ReceiptIssuingOrder::COL_NAME_SUMMARY_KEY1,
ReceiptIssuingOrder::COL_NAME_SUMMARY_KEY2,
DB::raw(sprintf("count(*) as count")),
])
->get();
foreach ($mailOrders as $ele) {

$key1 = data_get($ele, ReceiptIssuingOrder::COL_NAME_SUMMARY_KEY1);
$key2 = data_get($ele, ReceiptIssuingOrder::COL_NAME_SUMMARY_KEY2);
$count = data_get($ele, 'count');

$model->mail_order_count += $count;

$key = $makeKey($key1, $key2);

$summaryByKey = $this->getUseByKeyModel($model, $key1, $key2);
$summaryByKey->mail_order_count += $count;

$summaryByKeys->put($key, $summaryByKey);
}


// SMS送信実績の取得 // SMS送信実績の取得
$SMSs = SMSSendOrder::getBuilder() $SMSs = SMSSendOrder::getBuilder()
->where(SMSSendOrder::COL_NAME_CONTRACT_ID, $model->contract_id) ->where(SMSSendOrder::COL_NAME_CONTRACT_ID, $model->contract_id)
@@ -228,8 +285,6 @@ class SummaryUse extends BaseCommand
]) ])
->get(); ->get();


$model->sms_send_count = 0;
$model->sms_send_cost = 0;
foreach ($SMSs as $ele) { foreach ($SMSs as $ele) {
$key1 = data_get($ele, SMSSendOrder::COL_NAME_SUMMARY_KEY1); $key1 = data_get($ele, SMSSendOrder::COL_NAME_SUMMARY_KEY1);
$key2 = data_get($ele, SMSSendOrder::COL_NAME_SUMMARY_KEY2); $key2 = data_get($ele, SMSSendOrder::COL_NAME_SUMMARY_KEY2);
@@ -275,9 +330,10 @@ class SummaryUse extends BaseCommand


$this->outputInfo( $this->outputInfo(
sprintf( sprintf(
"集計完了:%s 領収証発行依頼:%d件 SMS送信件数:%d件 SMSコスト:%d円",
"集計完了:%s 領収証発行依頼:%d件 郵送依頼:%d件 SMS送信件数:%d件 SMSコスト:%d円",
$contract->name, $contract->name,
$model->receipt_order_count, $model->receipt_order_count,
$model->mail_order_count,
$model->sms_send_count, $model->sms_send_count,
$model->sms_send_cost, $model->sms_send_cost,
) )
@@ -340,6 +396,12 @@ class SummaryUse extends BaseCommand
$summary->is_fixed = true; $summary->is_fixed = true;
} }



// 初期設定
$summary->receipt_order_count = 0;
$summary->mail_order_count = 0;
$summary->sms_send_count = 0;
$summary->sms_send_cost = 0;
return $summary; return $summary;
} }
} }

+ 1
- 0
app/Models/UseByKeySummary.php View File

@@ -12,6 +12,7 @@ class UseByKeySummary extends AppModel
const COL_NAME_SUMMARY_KEY1 = "summary_key1"; const COL_NAME_SUMMARY_KEY1 = "summary_key1";
const COL_NAME_SUMMARY_KEY2 = "summary_key2"; const COL_NAME_SUMMARY_KEY2 = "summary_key2";
const COL_NAME_RECEIPT_ORDER_COUNT = 'receipt_order_count'; const COL_NAME_RECEIPT_ORDER_COUNT = 'receipt_order_count';
const COL_NAME_MAIL_ORDER_COUNT = 'mail_order_count';
const COL_NAME_SMS_SEND_COUNT = 'sms_send_count'; const COL_NAME_SMS_SEND_COUNT = 'sms_send_count';
const COL_NAME_SMS_SEND_COST = 'sms_send_cost'; const COL_NAME_SMS_SEND_COST = 'sms_send_cost';
const COL_NAME_IS_FIXED = 'is_fixed'; const COL_NAME_IS_FIXED = 'is_fixed';


+ 2
- 0
app/Repositories/Custom/HelloTechno/UseSummaryRepository.php View File

@@ -96,6 +96,7 @@ class UseSummaryRepository extends BaseRepository
$this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SUMMARY_KEY1]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SUMMARY_KEY1]),
$this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SUMMARY_KEY2]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SUMMARY_KEY2]),
$this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_RECEIPT_ORDER_COUNT]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_RECEIPT_ORDER_COUNT]),
$this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_MAIL_ORDER_COUNT]),
$this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SMS_SEND_COUNT]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SMS_SEND_COUNT]),
$this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_IS_FIXED]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_IS_FIXED]),
$this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_UPDATED_AT]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_UPDATED_AT]),
@@ -116,6 +117,7 @@ class UseSummaryRepository extends BaseRepository
$this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SUMMARY_KEY2]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SUMMARY_KEY2]),
$this->makeColumnNameForSelect([$name, HtCustomParkingName::COL_NAME_PARKING_NAME]), $this->makeColumnNameForSelect([$name, HtCustomParkingName::COL_NAME_PARKING_NAME]),
$this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_RECEIPT_ORDER_COUNT]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_RECEIPT_ORDER_COUNT]),
$this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_MAIL_ORDER_COUNT]),
$this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SMS_SEND_COUNT]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SMS_SEND_COUNT]),
]; ];
return $columns; return $columns;


+ 1
- 0
database/migrations/2023_06_07_144200_create_use_summaries_table.php View File

@@ -36,6 +36,7 @@ return new class extends Migration


$table->string("summary_yyyymm")->comment("集計年月"); $table->string("summary_yyyymm")->comment("集計年月");
$table->unsignedInteger("receipt_order_count")->default(0)->comment("領収証発行依頼件数"); $table->unsignedInteger("receipt_order_count")->default(0)->comment("領収証発行依頼件数");
$table->unsignedInteger("mail_order_count")->default(0)->comment("郵送依頼件数");
$table->unsignedInteger("sms_send_count")->default(0)->comment("SMS送信件数"); $table->unsignedInteger("sms_send_count")->default(0)->comment("SMS送信件数");
$table->unsignedInteger("sms_send_cost")->default(0)->comment("SMS送信コスト"); $table->unsignedInteger("sms_send_cost")->default(0)->comment("SMS送信コスト");
$table->boolean('is_fixed')->default(false)->comment('確定済み'); $table->boolean('is_fixed')->default(false)->comment('確定済み');


+ 1
- 0
database/migrations/2023_06_08_092700_create_use_by_key_summaries_table.php View File

@@ -39,6 +39,7 @@ return new class extends Migration
$table->string("summary_key2")->comment("集計キー2")->nullable(); $table->string("summary_key2")->comment("集計キー2")->nullable();


$table->unsignedInteger("receipt_order_count")->default(0)->comment("領収証発行依頼件数"); $table->unsignedInteger("receipt_order_count")->default(0)->comment("領収証発行依頼件数");
$table->unsignedInteger("mail_order_count")->default(0)->comment("郵送依頼件数");
$table->unsignedInteger("sms_send_count")->default(0)->comment("SMS送信件数"); $table->unsignedInteger("sms_send_count")->default(0)->comment("SMS送信件数");
$table->unsignedInteger("sms_send_cost")->default(0)->comment("SMS送信コスト"); $table->unsignedInteger("sms_send_cost")->default(0)->comment("SMS送信コスト");
$table->boolean('is_fixed')->default(false)->comment('確定済み'); $table->boolean('is_fixed')->default(false)->comment('確定済み');


Loading…
Cancel
Save