mirror of
https://github.com/tomru/pfadi-bussle.git
synced 2026-03-03 06:27:11 +01:00
use fixed tarifs and add additional costs
This commit is contained in:
23
db/bill.ts
23
db/bill.ts
@@ -1,7 +1,8 @@
|
||||
import * as mongoose from 'mongoose'
|
||||
import { BILL_STATUS, MILAGE_RATES, getMilageRateValue } from './enums'
|
||||
import { BILL_STATUS, MILAGE_TARIFS } from './enums'
|
||||
import { getBillTotal } from '../helpers/bill'
|
||||
|
||||
export interface AdditionalCosts {
|
||||
export interface AdditionalCost {
|
||||
name: string
|
||||
value: number
|
||||
}
|
||||
@@ -12,9 +13,9 @@ export interface BillDocument
|
||||
milageStart: number
|
||||
milageEnd: number
|
||||
milage?: number
|
||||
rate: MILAGE_RATES
|
||||
tarif: MILAGE_TARIFS
|
||||
status: BILL_STATUS
|
||||
additionalCosts: AdditionalCosts[]
|
||||
additionalCosts: AdditionalCost[]
|
||||
}
|
||||
|
||||
export interface BillModel extends mongoose.Model<BillDocument> {}
|
||||
@@ -46,10 +47,10 @@ const BillSchema = new mongoose.Schema<BillDocument>(
|
||||
message: (props) => `${props.value} is smaller than milageStart!`,
|
||||
},
|
||||
},
|
||||
rate: {
|
||||
tarif: {
|
||||
type: String,
|
||||
enum: Object.values(MILAGE_RATES),
|
||||
default: MILAGE_RATES.EXTERN_LTE_200,
|
||||
enum: Object.values(MILAGE_TARIFS),
|
||||
default: MILAGE_TARIFS.EXTERN,
|
||||
required: true,
|
||||
},
|
||||
additionalCosts: [
|
||||
@@ -79,13 +80,7 @@ BillSchema.virtual('milage').get(function () {
|
||||
BillSchema.virtual('total').get(function () {
|
||||
const bill = this as BillDocument
|
||||
|
||||
const milageCosts =
|
||||
Math.round(bill.milage * getMilageRateValue(bill.rate) * 100) / 100
|
||||
const additionalCostSum = bill.additionalCosts
|
||||
.map(({ value }) => value)
|
||||
.reduce((acc, value) => acc + value, 0)
|
||||
|
||||
return milageCosts + additionalCostSum
|
||||
return getBillTotal(bill)
|
||||
})
|
||||
|
||||
export default <BillModel>mongoose.models.Bill ||
|
||||
|
||||
Reference in New Issue
Block a user