package calculate import ( "electricity_bill_calc/model" "electricity_bill_calc/model/calculate" "electricity_bill_calc/repository" "time" ) func MetersParkCalculate(report model.ReportIndex, periodStart time.Time, periodEnd time.Time, meterDetail []*model.MeterDetail, summary calculate.Summary) ([]calculate.Meter, error) { parkMeterReadings, err := repository.CalculateRepository.GetMeterReadings(report.Id, model.METER_INSTALLATION_PARK) if err != nil { return nil, err } lastTermParkMeterReadings, err := repository.CalculateRepository.GetLastPeriodReadings(report.Id, model.METER_INSTALLATION_PARK) if err != nil { return nil, err } parkMeterReadings = append(parkMeterReadings, lastTermParkMeterReadings...) var parkMetersReports []calculate.Meter for _, meter := range meterDetail { if meter.MeterType == model.METER_INSTALLATION_PARK { parkMetersReport, err := determinePublicMeterConsumptions(meter.Code, periodStart, periodEnd, parkMeterReadings, *meter, summary) if err != nil { return nil, err } parkMetersReports = append(parkMetersReports, parkMetersReport) } } return parkMetersReports, nil }