From c5cdd198ca57993e909e2a59813377e14145e046 Mon Sep 17 00:00:00 2001 From: Mykhailo Kravchenko Date: Thu, 30 Jan 2025 11:40:24 +0100 Subject: [PATCH 1/7] Refactor invoice report name generation to include the current date --- src/libs/ReportUtils.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 5e50f69e28fa..739147afb9ad 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -4914,7 +4914,6 @@ function buildOptimisticInvoiceReport( total: number, currency: string, ): OptimisticExpenseReport { - const formattedTotal = convertToDisplayString(total, currency); const invoiceReport = { reportID: generateReportID(), chatReportID, @@ -4924,7 +4923,7 @@ function buildOptimisticInvoiceReport( managerID: receiverAccountID, currency, // We don’t translate reportName because the server response is always in English - reportName: `${receiverName} owes ${formattedTotal}`, + reportName: `Invoice ${DateUtils.extractDate(new Date().toString())}`, stateNum: CONST.REPORT.STATE_NUM.SUBMITTED, statusNum: CONST.REPORT.STATUS_NUM.OPEN, total, From bf4bbfcd3425831a52dbb5b062510bdd349b493b Mon Sep 17 00:00:00 2001 From: Mykhailo Kravchenko Date: Thu, 30 Jan 2025 16:16:08 +0100 Subject: [PATCH 2/7] create isNewDotInvoice --- src/libs/ReportUtils.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 739147afb9ad..2a4bf7adf790 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -1043,6 +1043,10 @@ function isInvoiceReport(report: OnyxInputOrEntry | SearchReport): boole return report?.type === CONST.REPORT.TYPE.INVOICE; } +function isNewDotInvoice(report: OnyxEntry): boolean { + return isInvoiceRoom(getReport(report?.chatReportID)); +} + /** * Checks if a report is an Expense report. */ @@ -9144,6 +9148,7 @@ export { isInvoiceRoom, isInvoiceRoomWithID, isInvoiceReport, + isNewDotInvoice, isOpenInvoiceReport, getDefaultNotificationPreferenceForReport, canWriteInReport, From 0d4ff8e48ed6b50b4721daea9e6cec4f343b438d Mon Sep 17 00:00:00 2001 From: Mykhailo Kravchenko Date: Thu, 30 Jan 2025 16:30:01 +0100 Subject: [PATCH 3/7] update isNewDotInvoice function to accept invoiceRoomID as parameter --- src/libs/ReportUtils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 2a4bf7adf790..9e693492b0c3 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -1043,8 +1043,8 @@ function isInvoiceReport(report: OnyxInputOrEntry | SearchReport): boole return report?.type === CONST.REPORT.TYPE.INVOICE; } -function isNewDotInvoice(report: OnyxEntry): boolean { - return isInvoiceRoom(getReport(report?.chatReportID)); +function isNewDotInvoice(invoiceRoomID: string | undefined): boolean { + return isInvoiceRoom(getReport(invoiceRoomID)); } /** From edb48d87bd429a0e91abe7d0c6c4e3f76c350f71 Mon Sep 17 00:00:00 2001 From: Mykhailo Kravchenko Date: Thu, 30 Jan 2025 16:30:23 +0100 Subject: [PATCH 4/7] integrate isNewDotInvoice --- src/libs/ReportUtils.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 9e693492b0c3..b3aa2dceb052 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -4322,7 +4322,9 @@ function getReportName( } if (isInvoiceReport(report)) { - formattedName = report?.reportName ?? getMoneyRequestReportName(report, policy, invoiceReceiverPolicy); + const moneyRequestReportName = getMoneyRequestReportName(report, policy, invoiceReceiverPolicy); + const ODInvoiceName = report?.reportName ?? moneyRequestReportName; + formattedName = isNewDotInvoice(report?.chatReportID) ? moneyRequestReportName : ODInvoiceName; } if (isInvoiceRoom(report)) { @@ -4918,6 +4920,7 @@ function buildOptimisticInvoiceReport( total: number, currency: string, ): OptimisticExpenseReport { + const formattedTotal = convertToDisplayString(total, currency); const invoiceReport = { reportID: generateReportID(), chatReportID, @@ -4927,7 +4930,7 @@ function buildOptimisticInvoiceReport( managerID: receiverAccountID, currency, // We don’t translate reportName because the server response is always in English - reportName: `Invoice ${DateUtils.extractDate(new Date().toString())}`, + reportName: isNewDotInvoice(chatReportID) ? `${receiverName} owes ${formattedTotal}` : `Invoice ${DateUtils.extractDate(new Date().toString())}`, stateNum: CONST.REPORT.STATE_NUM.SUBMITTED, statusNum: CONST.REPORT.STATUS_NUM.OPEN, total, From fb1e21b54084e336492ecb61cabfe53297791477 Mon Sep 17 00:00:00 2001 From: Mykhailo Kravchenko Date: Thu, 30 Jan 2025 16:35:48 +0100 Subject: [PATCH 5/7] revert reportName of buildOptimisticInvoiceReport --- src/libs/ReportUtils.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index b3aa2dceb052..516071a7e578 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -4184,6 +4184,7 @@ function buildReportNameFromParticipantNames({report, personalDetails}: {report: return participantsWithoutCurrentUser.map((accountID) => getDisplayNameForParticipant(accountID, isMultipleParticipantReport, true, false, personalDetails)).join(', '); } +// #region - getReportName /** * Get the title for a report. */ @@ -4911,6 +4912,7 @@ function populateOptimisticReportFormula(formula: string, report: OptimisticExpe return result.trim().length ? result : formula; } +// #region - buildOptimisticInvoiceReport /** Builds an optimistic invoice report with a randomly generated reportID */ function buildOptimisticInvoiceReport( chatReportID: string, @@ -4930,7 +4932,7 @@ function buildOptimisticInvoiceReport( managerID: receiverAccountID, currency, // We don’t translate reportName because the server response is always in English - reportName: isNewDotInvoice(chatReportID) ? `${receiverName} owes ${formattedTotal}` : `Invoice ${DateUtils.extractDate(new Date().toString())}`, + reportName: `${receiverName} owes ${formattedTotal}`, stateNum: CONST.REPORT.STATE_NUM.SUBMITTED, statusNum: CONST.REPORT.STATUS_NUM.OPEN, total, From bc93838b0a8e6745ff735c16a1f42286aedab50f Mon Sep 17 00:00:00 2001 From: Mykhailo Kravchenko Date: Thu, 30 Jan 2025 16:36:32 +0100 Subject: [PATCH 6/7] clear --- src/libs/ReportUtils.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 516071a7e578..9dcdb40eeab7 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -4184,7 +4184,6 @@ function buildReportNameFromParticipantNames({report, personalDetails}: {report: return participantsWithoutCurrentUser.map((accountID) => getDisplayNameForParticipant(accountID, isMultipleParticipantReport, true, false, personalDetails)).join(', '); } -// #region - getReportName /** * Get the title for a report. */ @@ -4912,7 +4911,6 @@ function populateOptimisticReportFormula(formula: string, report: OptimisticExpe return result.trim().length ? result : formula; } -// #region - buildOptimisticInvoiceReport /** Builds an optimistic invoice report with a randomly generated reportID */ function buildOptimisticInvoiceReport( chatReportID: string, From df6d35116da6195d6e8cc8e1d186f8ff9d2bde22 Mon Sep 17 00:00:00 2001 From: Mykhailo Kravchenko Date: Wed, 5 Feb 2025 10:48:22 +0100 Subject: [PATCH 7/7] rename variable for clarity in report name formatting --- src/libs/ReportUtils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 6ea9151cf239..b03d9c8324d5 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -4496,8 +4496,8 @@ function getReportNameInternal({ if (isInvoiceReport(report)) { const moneyRequestReportName = getMoneyRequestReportName({report, policy, invoiceReceiverPolicy}); - const ODInvoiceName = report?.reportName ?? moneyRequestReportName; - formattedName = isNewDotInvoice(report?.chatReportID) ? moneyRequestReportName : ODInvoiceName; + const oldDotInvoiceName = report?.reportName ?? moneyRequestReportName; + formattedName = isNewDotInvoice(report?.chatReportID) ? moneyRequestReportName : oldDotInvoiceName; } if (isInvoiceRoom(report)) {