default to max milage found for a new bill

This commit is contained in:
Thomas Ruoff
2020-10-08 00:35:21 +02:00
parent 48c9fc9301
commit a0cf63dcdc
2 changed files with 19 additions and 4 deletions

View File

@@ -28,7 +28,6 @@ export async function getBookedDays() {
export async function getBookingByUUID(uuid: string) {
await connect()
return Booking.findOne({ uuid })
//return booking.populate('bill').populate('booker').execPopulate()
}
export async function getBookings() {
@@ -116,3 +115,12 @@ export async function patchBill(bookingUUID: string, billData: BillDocument) {
return bill.toJSON()
}
export async function getMilageMax(): Promise<number> {
const billMaxMilageEnd = await Bill.findOne({})
.sort('-milageEnd')
.select('milageEnd')
.exec()
return billMaxMilageEnd?.milageEnd
}

View File

@@ -11,7 +11,7 @@ import {
MILAGE_RATES,
getMilageRateValue,
} from '../../../db/enums'
import { getBookingByUUID } from '../../../db/index'
import { getBookingByUUID, getMilageMax } from '../../../db/index'
import { dateFormatFrontend } from '../../../helpers/date'
const milageRateOptions = Object.values(MILAGE_RATES).map((rate) => {
@@ -44,10 +44,13 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
res.end()
return { props: {} }
}
const milageMax = await getMilageMax()
// TODO: hack, not sure why _id is not serilizable
const bookingJSON = JSON.parse(JSON.stringify(booking.toJSON()))
return {
props: { booking: bookingJSON },
props: { booking: bookingJSON, milageMax },
}
}
@@ -116,11 +119,15 @@ async function saveBill(
export default function BillPage({
booking: bookingProp,
milageMax,
}: {
booking: BookingDocument
milageMax: number
}) {
const [booking, setBooking] = useState(bookingProp)
const [milageStart, setMilageStart] = useState(booking.bill?.milageStart)
const [milageStart, setMilageStart] = useState(
booking.bill?.milageStart || milageMax
)
const [milageEnd, setMilageEnd] = useState(booking.bill?.milageEnd)
const [rate, setRate] = useState(
booking.bill?.rate || MILAGE_RATES.EXTERN_LTE_200