Merge branch 'hotfix/1.36.2'

This commit is contained in:
2025-08-11 13:59:07 +02:00
2 changed files with 14 additions and 16 deletions

View File

@@ -213,7 +213,7 @@ export const updateOrAddBill = withUser(async (user:AuthenticatedUser, locationI
if (addToSubsequentMonths && billYear && billMonth) {
// Get the current location to find its name
const currentLocation = await dbClient.collection<BillingLocation>("lokacije")
.findOne({ _id: locationId, userId }, { projection: { bills: 0 } });
.findOne({ _id: locationId, userId }, { projection: { name: 1 } });
if (currentLocation) {
// Find all subsequent months that have the same location name
@@ -228,7 +228,7 @@ export const updateOrAddBill = withUser(async (user:AuthenticatedUser, locationI
"yearMonth.month": { $gt: billMonth }
}
]
}, { projection: { bills: 0 } })
}, { projection: { _id: 1 } })
.toArray();
// For each subsequent location, check if bill with same name already exists
@@ -239,11 +239,8 @@ export const updateOrAddBill = withUser(async (user:AuthenticatedUser, locationI
_id: location._id,
"bills.name": billName
}, {
projection: {
"bills.$": 1,
"bills.attachment": 0,
"bills.barcodeImage": 0
}
// We only need to know if a matching bill exists; avoid conflicting projections
projection: { _id: 1 }
});
// Only add if bill with same name doesn't already exist
@@ -371,8 +368,9 @@ export const deleteBillById = withUser(async (user:AuthenticatedUser, locationID
const location = await dbClient.collection<BillingLocation>("lokacije")
.findOne({ _id: locationID, userId }, {
projection: {
"bills.attachment.fileContentsBase64": 0,
"bills.barcodeImage": 0
"name": 1,
"bills._id": 1,
"bills.name": 1
}
});
@@ -393,7 +391,7 @@ export const deleteBillById = withUser(async (user:AuthenticatedUser, locationID
}
],
"bills.name": bill.name
}, { projection: { bills: 0 } })
}, { projection: { _id: 1 } })
.toArray();
// Delete the bill from all subsequent locations (by name)

View File

@@ -27,8 +27,8 @@ const FormSchema = (t:IntlTemplateFn) => z.object({
_id: z.string(),
locationName: z.coerce.string().min(1, t("location-name-required")),
locationNotes: z.string(),
addToSubsequentMonths: z.boolean().optional(),
updateScope: z.enum(["current", "subsequent", "all"]).optional(),
addToSubsequentMonths: z.boolean().optional().nullable(),
updateScope: z.enum(["current", "subsequent", "all"]).optional().nullable(),
})
// dont include the _id field in the response
.omit({ _id: true });
@@ -369,7 +369,7 @@ export const deleteLocationById = withUser(async (user:AuthenticatedUser, locati
if (deleteInSubsequentMonths) {
// Get the location name first to find all locations with the same name
const location = await dbClient.collection<BillingLocation>("lokacije")
.findOne({ _id: locationID, userId }, { projection: { bills: 0 } });
.findOne({ _id: locationID, userId }, { projection: { name: 1 } });
if (location) {
// Delete all locations with the same name in current and subsequent months