@@ -25,16 +25,17 @@ import isLoadingOnyxValue from '@src/types/utils/isLoadingOnyxValue';
2525
2626/**
2727 * Parses a CSV cell value for receipt requirement columns.
28- * Mirrors the OD import logic: "default" → null, " required"/"always_required" → 0,
28+ * Mirrors the OD import logic: "required"/"always_required" → 0,
2929 * "not_required" → DISABLED_MAX_EXPENSE_VALUE, numeric string → number.
30+ * Returns undefined for unmapped columns, empty/default values, or invalid input.
3031 */
31- function parseCsvReceiptValue ( raw : string | undefined ) : number | null | undefined {
32+ function parseCsvReceiptValue ( raw : string | undefined ) : number | undefined {
3233 if ( raw === undefined ) {
3334 return undefined ;
3435 }
3536 const trimmed = raw . trim ( ) . toLowerCase ( ) ;
3637 if ( ! trimmed || trimmed === 'default' ) {
37- return null ;
38+ return undefined ;
3839 }
3940 if ( trimmed === 'required' || trimmed === 'always_required' ) {
4041 return 0 ;
@@ -145,23 +146,13 @@ function ImportedCategoriesPage({route}: ImportedCategoriesPageProps) {
145146 const parsedMaxAmountNoItemizedReceipt =
146147 categoriesMaxAmountNoItemizedReceiptColumn !== - 1 ? parseCsvReceiptValue ( categoriesMaxAmountNoItemizedReceipt ?. [ dataIndex ] ?. toString ( ) ) : undefined ;
147148
148- // Apply normalization: if itemized receipts required but receipts not required, force both to required
149- let normalizedMaxAmountNoReceipt = parsedMaxAmountNoReceipt ;
150- let normalizedMaxAmountNoItemizedReceipt = parsedMaxAmountNoItemizedReceipt ;
151- if ( normalizedMaxAmountNoReceipt === CONST . DISABLED_MAX_EXPENSE_VALUE && normalizedMaxAmountNoItemizedReceipt !== undefined ) {
152- normalizedMaxAmountNoItemizedReceipt = CONST . DISABLED_MAX_EXPENSE_VALUE ;
153- }
154- if ( normalizedMaxAmountNoItemizedReceipt === 0 && normalizedMaxAmountNoReceipt !== undefined ) {
155- normalizedMaxAmountNoReceipt = 0 ;
156- }
157-
158149 return {
159150 name,
160151 enabled : categoriesEnabledColumn !== - 1 ? [ 'true' , 'yes' ] . includes ( categoriesEnabled ?. [ dataIndex ] ?. toString ( ) . trim ( ) . toLowerCase ( ) ?? '' ) : true ,
161152 // eslint-disable-next-line @typescript-eslint/naming-convention
162153 'GL Code' : categoriesGLCodeColumn !== - 1 ? ( categoriesGLCode ?. [ dataIndex ] ?? '' ) : existingGLCodeOrDefault ,
163- ...( normalizedMaxAmountNoReceipt !== undefined && { maxAmountNoReceipt : normalizedMaxAmountNoReceipt } ) ,
164- ...( normalizedMaxAmountNoItemizedReceipt !== undefined && { maxAmountNoItemizedReceipt : normalizedMaxAmountNoItemizedReceipt } ) ,
154+ ...( parsedMaxAmountNoReceipt !== undefined && { maxAmountNoReceipt : parsedMaxAmountNoReceipt } ) ,
155+ ...( parsedMaxAmountNoItemizedReceipt !== undefined && { maxAmountNoItemizedReceipt : parsedMaxAmountNoItemizedReceipt } ) ,
165156 } ;
166157 } ) ;
167158
0 commit comments