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) { export async function getBookingByUUID(uuid: string) {
await connect() await connect()
return Booking.findOne({ uuid }) return Booking.findOne({ uuid })
//return booking.populate('bill').populate('booker').execPopulate()
} }
export async function getBookings() { export async function getBookings() {
@@ -116,3 +115,12 @@ export async function patchBill(bookingUUID: string, billData: BillDocument) {
return bill.toJSON() 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, MILAGE_RATES,
getMilageRateValue, getMilageRateValue,
} from '../../../db/enums' } from '../../../db/enums'
import { getBookingByUUID } from '../../../db/index' import { getBookingByUUID, getMilageMax } from '../../../db/index'
import { dateFormatFrontend } from '../../../helpers/date' import { dateFormatFrontend } from '../../../helpers/date'
const milageRateOptions = Object.values(MILAGE_RATES).map((rate) => { const milageRateOptions = Object.values(MILAGE_RATES).map((rate) => {
@@ -44,10 +44,13 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
res.end() res.end()
return { props: {} } return { props: {} }
} }
const milageMax = await getMilageMax()
// TODO: hack, not sure why _id is not serilizable // TODO: hack, not sure why _id is not serilizable
const bookingJSON = JSON.parse(JSON.stringify(booking.toJSON())) const bookingJSON = JSON.parse(JSON.stringify(booking.toJSON()))
return { return {
props: { booking: bookingJSON }, props: { booking: bookingJSON, milageMax },
} }
} }
@@ -116,11 +119,15 @@ async function saveBill(
export default function BillPage({ export default function BillPage({
booking: bookingProp, booking: bookingProp,
milageMax,
}: { }: {
booking: BookingDocument booking: BookingDocument
milageMax: number
}) { }) {
const [booking, setBooking] = useState(bookingProp) 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 [milageEnd, setMilageEnd] = useState(booking.bill?.milageEnd)
const [rate, setRate] = useState( const [rate, setRate] = useState(
booking.bill?.rate || MILAGE_RATES.EXTERN_LTE_200 booking.bill?.rate || MILAGE_RATES.EXTERN_LTE_200