Skip to content

Commit 3606664

Browse files
mountinyOSBotify
authored andcommitted
Merge pull request #48629 from ishpaul777/fix/gl-code-override-in-category-imoort
[CP Staging] [FIX] Categories - GL code data disappears after importing same file that does not have GL code (cherry picked from commit e0b72a1) (CP triggered by mountiny)
1 parent c9d3bc7 commit 3606664

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/pages/workspace/categories/ImportedCategoriesPage.tsx

+12-7
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ function ImportedCategoriesPage({route}: ImportedCategoriesPageProps) {
2828
const {containsHeader} = spreadsheet ?? {};
2929
const [isValidationEnabled, setIsValidationEnabled] = useState(false);
3030
const policyID = route.params.policyID;
31+
const [policyCategories] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${policyID}`);
3132
const policy = usePolicy(policyID);
3233
const columnNames = generateColumnNames(spreadsheet?.data?.length ?? 0);
3334

@@ -88,18 +89,22 @@ function ImportedCategoriesPage({route}: ImportedCategoriesPageProps) {
8889
const categoriesNames = spreadsheet?.data[categoriesNamesColumn].map((name) => name);
8990
const categoriesEnabled = categoriesEnabledColumn !== -1 ? spreadsheet?.data[categoriesEnabledColumn].map((enabled) => enabled) : [];
9091
const categoriesGLCode = categoriesGLCodeColumn !== -1 ? spreadsheet?.data[categoriesGLCodeColumn].map((glCode) => glCode) : [];
91-
const categories = categoriesNames?.slice(containsHeader ? 1 : 0).map((name, index) => ({
92-
name,
93-
enabled: categoriesEnabledColumn !== -1 ? categoriesEnabled?.[containsHeader ? index + 1 : index] === 'true' : true,
94-
// eslint-disable-next-line @typescript-eslint/naming-convention
95-
'GL Code': categoriesGLCodeColumn !== -1 ? categoriesGLCode?.[containsHeader ? index + 1 : index] ?? '' : '',
96-
}));
92+
const categories = categoriesNames?.slice(containsHeader ? 1 : 0).map((name, index) => {
93+
const categoryAlreadyExists = policyCategories?.[name];
94+
const existingGLCodeOrDefault = categoryAlreadyExists?.['GL Code'] ?? '';
95+
return {
96+
name,
97+
enabled: categoriesEnabledColumn !== -1 ? categoriesEnabled?.[containsHeader ? index + 1 : index] === 'true' : true,
98+
// eslint-disable-next-line @typescript-eslint/naming-convention
99+
'GL Code': categoriesGLCodeColumn !== -1 ? categoriesGLCode?.[containsHeader ? index + 1 : index] ?? '' : existingGLCodeOrDefault,
100+
};
101+
});
97102

98103
if (categories) {
99104
setIsImportingCategories(true);
100105
importPolicyCategories(policyID, categories);
101106
}
102-
}, [validate, spreadsheet, containsHeader, policyID]);
107+
}, [validate, spreadsheet, containsHeader, policyID, policyCategories]);
103108

104109
const spreadsheetColumns = spreadsheet?.data;
105110
if (!spreadsheetColumns) {

0 commit comments

Comments
 (0)