38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
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
|
|
}
|