/* eslint-disable @typescript-eslint/no-unnecessary-condition */ import { AbstractDto } from '../../../common/dto/abstract.dto'; import { DateField, NumberField, StringField, StringFieldOptional, } from '../../../decorators'; import { type ActivityRecordEntity } from '../activity-record.entity'; export class ActivityRecordDto extends AbstractDto { @DateField() date!: Date; @NumberField() hour!: number; @NumberField() rate!: number; @NumberField() quantity!: number; @StringFieldOptional() unit?: string; @NumberField() amount!: number; @StringFieldOptional() remark?: string; @StringField() employeeName!: string; @StringField() blockName!: string; @StringField() activityName!: string; @StringFieldOptional() incentiveName?: string; @StringField() activitySector!: string; @StringField() activityGroup!: string; constructor(activityRecord: ActivityRecordEntity) { super(activityRecord); this.date = activityRecord.date; this.hour = activityRecord.hour; this.rate = activityRecord.rate; this.quantity = activityRecord.quantity; this.unit = activityRecord.activityRecordSetting && activityRecord.activityRecordSetting.unit; this.amount = Math.round(activityRecord.amount * 100) / 100; this.remark = activityRecord.remark; this.employeeName = activityRecord.employee && activityRecord.employee.name; this.blockName = activityRecord.block && activityRecord.block.name; this.activityName = activityRecord.activityRecordSetting && activityRecord.activityRecordSetting.name; this.incentiveName = activityRecord.activityRecordSetting && activityRecord.activityRecordSetting.incentiveName; this.activitySector = activityRecord.activityRecordSetting?.sector && activityRecord.activityRecordSetting.sector.name; this.activityGroup = activityRecord.activityRecordSetting?.activityGroup && activityRecord.activityRecordSetting.activityGroup.name; } }