Skip to content

Commit

Permalink
Fix
Browse files Browse the repository at this point in the history
  • Loading branch information
bannzai committed Jan 15, 2025
1 parent 258b288 commit c4f62b8
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 8 deletions.
12 changes: 12 additions & 0 deletions lib/entity/pill_sheet.codegen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,11 @@ class PillSheet with _$PillSheet {
return 0;
}

// NOTE: [PillSheet:OLD_Calc_LastTakenPillNumber] 服用日が開始日より前の場合がある。服用日数を1つ目の1番目のピルシートに調整した時
if (lastTakenDate.isBefore(beginingDate)) {
return 0;
}

return pillNumberFor(targetDate: lastTakenDate);
}

Expand All @@ -141,6 +146,12 @@ class PillSheet with _$PillSheet {
if (lastTakenDate == null) {
return null;
}

// NOTE: [PillSheet:OLD_Calc_LastTakenPillNumber] 服用日が開始日より前の場合がある。服用日数を1つ目の1番目のピルシートに調整した時
if (lastTakenDate.isBefore(beginingDate)) {
return null;
}

return pillNumberFor(targetDate: lastTakenDate);
}

Expand Down Expand Up @@ -189,6 +200,7 @@ class PillSheet with _$PillSheet {
return dates[pillNumberInPillSheet - 1];
}

// NOTE: [PillSheet:OLD_Calc_LastTakenPillNumber] beginDate > targetDate(lastTakenDate) の場合がある。「本日の服用日」を編集して1番目を未服用にした場合
// pillNumberは0は不自然なので、1番を返す
int pillNumberFor({required DateTime targetDate}) {
return max(daysBetween(beginingDate.date(), targetDate) - summarizedRestDuration(restDurations: restDurations, upperDate: targetDate) + 1, 1);
Expand Down
5 changes: 5 additions & 0 deletions lib/entity/pill_sheet_group.codegen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,11 @@ extension PillSheetGroupDisplayDomain on PillSheetGroup {
required int pageIndex,
required int pillNumberInPillSheet,
}) {
if (pageIndex == 0 && pillNumberInPillSheet == 1) {
final result = pillNumbersForSequential.where((e) => e.pillSheet.groupIndex == pageIndex).toList()[pillNumberInPillSheet - 1].number;
debugPrint("result: $result");
return result;
}
return pillNumbersForSequential.where((e) => e.pillSheet.groupIndex == pageIndex).toList()[pillNumberInPillSheet - 1].number;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,10 @@ class PillNumber extends StatelessWidget {

abstract class PillSheetModifiedHistoryPillNumberOrDate {
static String hyphen() => '-';
static String taken({required int beforeLastTakenPillNumber, required int afterLastTakenPillNumber}) {
static String taken({required int? beforeLastTakenPillNumber, required int afterLastTakenPillNumber}) {
// beforePillSheetの最後に飲んだ番号+1から服用記録が始まる
final left = beforeLastTakenPillNumber + 1;
// nullの場合は服用記録を取り消したり、服用日を移動した際にありえる
final left = (beforeLastTakenPillNumber ?? 0) + 1;
// 1度飲みの時に本日分を服用した場合は1錠分の服用履歴を表示する
if (left == afterLastTakenPillNumber) {
return L.withNumber('$afterLastTakenPillNumber');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ class PillSheetModifiedHistoryTakenPillAction extends HookConsumerWidget {
return Container();
}

final beforeLastTakenPillNumber = beforePillSheetGroup.lastTakenPillSheetOrFirstPillSheet.lastTakenPillNumber;

final time = DateTimeFormatter.hourAndMinute(estimatedEventCausingDate);
return GestureDetector(
onTap: () {
Expand Down Expand Up @@ -84,12 +86,14 @@ class PillSheetModifiedHistoryTakenPillAction extends HookConsumerWidget {
day: Day(estimatedEventCausingDate: estimatedEventCausingDate),
pillNumbersOrHyphenOrDate: PillNumber(
pillNumber: PillSheetModifiedHistoryPillNumberOrDate.taken(
beforeLastTakenPillNumber: beforePillSheetGroup.pillNumberWithoutDate(
// 例えば履歴の表示の際にbeforePillSheetGroupとafterPillSheetGroupのpillSheetAppearanceModeが違う場合があるので、afterPillSheetGroup.pillSheetAppearanceModeを引数にする
pillSheetAppearanceMode: afterPillSheetGroup.pillSheetAppearanceMode,
pageIndex: beforePillSheetGroup.lastTakenPillSheetOrFirstPillSheet.groupIndex,
pillNumberInPillSheet: beforePillSheetGroup.lastTakenPillSheetOrFirstPillSheet.lastTakenPillNumber ?? 1,
),
beforeLastTakenPillNumber: beforeLastTakenPillNumber == null
? null
: beforePillSheetGroup.pillNumberWithoutDate(
// 例えば履歴の表示の際にbeforePillSheetGroupとafterPillSheetGroupのpillSheetAppearanceModeが違う場合があるので、afterPillSheetGroup.pillSheetAppearanceModeを引数にする
pillSheetAppearanceMode: afterPillSheetGroup.pillSheetAppearanceMode,
pageIndex: beforePillSheetGroup.lastTakenPillSheetOrFirstPillSheet.groupIndex,
pillNumberInPillSheet: beforeLastTakenPillNumber,
),
afterLastTakenPillNumber: afterPillSheetGroup.pillNumberWithoutDate(
pillSheetAppearanceMode: afterPillSheetGroup.pillSheetAppearanceMode,
pageIndex: afterPillSheetGroup.lastTakenPillSheetOrFirstPillSheet.groupIndex,
Expand Down

0 comments on commit c4f62b8

Please sign in to comment.