moved weight from rates to ratetimings

This commit is contained in:
Radu Ioan Fericean
2012-07-10 17:59:36 +03:00
parent c8fb3f33f4
commit 8b7bdc1db9
8 changed files with 101 additions and 100 deletions

View File

@@ -36,7 +36,7 @@ var (
destinationsFn = flag.String("destinations", "Destinations.csv", "Destinations file")
ratesFn = flag.String("rates", "Rates.csv", "Rates file")
timingsFn = flag.String("timings", "Timings.csv", "Timings file")
ratestimingsFn = flag.String("ratestimings", "RatesTimings.csv", "Rates timings file")
ratetimingsFn = flag.String("ratetimings", "RateTimings.csv", "Rates timings file")
ratingprofilesFn = flag.String("ratingprofiles", "RatingProfiles.csv", "Rating profiles file")
actionsFn = flag.String("actions", "Actions.csv", "Actions file")
actiontimingsFn = flag.String("actiontimings", "ActionTimings.csv", "Actions timings file")
@@ -88,7 +88,7 @@ func main() {
loadDestinations()
loadRates()
loadTimings()
loadRatesTimings()
loadRateTimings()
loadRatingProfiles()
loadActions()
loadActionTimings()

View File

@@ -27,11 +27,11 @@ import (
)
type Rate struct {
DestinationsTag string
ConnectFee, Price, BillingUnit, Weight float64
DestinationsTag string
ConnectFee, Price, BillingUnit float64
}
func NewRate(destinationsTag, connectFee, price, billingUnit, weight string) (r *Rate, err error) {
func NewRate(destinationsTag, connectFee, price, billingUnit string) (r *Rate, err error) {
cf, err := strconv.ParseFloat(connectFee, 64)
if err != nil {
log.Printf("Error parsing connect fee from: %v", connectFee)
@@ -47,17 +47,11 @@ func NewRate(destinationsTag, connectFee, price, billingUnit, weight string) (r
log.Printf("Error parsing billing unit from: %v", billingUnit)
return
}
w, err := strconv.ParseFloat(weight, 64)
if err != nil {
log.Printf("Error parsing weight from: %v", weight)
return
}
r = &Rate{
DestinationsTag: destinationsTag,
ConnectFee: cf,
Price: p,
BillingUnit: bu,
Weight: w,
}
return
}
@@ -85,12 +79,19 @@ func NewTiming(timeingInfo ...string) (rt *Timing) {
type RateTiming struct {
RatesTag string
Weight float64
timing *Timing
}
func NewRateTiming(ratesTag string, timing *Timing) (rt *RateTiming) {
func NewRateTiming(ratesTag string, timing *Timing, weight string) (rt *RateTiming) {
w, err := strconv.ParseFloat(weight, 64)
if err != nil {
log.Printf("Error parsing weight unit from: %v", weight)
return
}
rt = &RateTiming{
RatesTag: ratesTag,
Weight: w,
timing: timing,
}
return
@@ -102,10 +103,10 @@ func (rt *RateTiming) GetInterval(r *Rate) (i *timespans.Interval) {
MonthDays: rt.timing.MonthDays,
WeekDays: rt.timing.WeekDays,
StartTime: rt.timing.StartTime,
Weight: rt.Weight,
ConnectFee: r.ConnectFee,
Price: r.Price,
BillingUnit: r.BillingUnit,
Weight: r.Weight,
}
return
}

View File

@@ -83,7 +83,7 @@ func loadRates() {
// skip header line
continue
}
r, err := NewRate(record[1], record[2], record[3], record[4], record[5])
r, err := NewRate(record[1], record[2], record[3], record[4])
if err != nil {
continue
}
@@ -113,8 +113,8 @@ func loadTimings() {
}
}
func loadRatesTimings() {
fp, err := os.Open(*ratestimingsFn)
func loadRateTimings() {
fp, err := os.Open(*ratetimingsFn)
if err != nil {
log.Printf("Could not open rates timings file: %v", err)
return
@@ -136,8 +136,7 @@ func loadRatesTimings() {
continue
}
for _, t := range ts {
rt := NewRateTiming(record[1], t)
//ratesTimings[tag] = append(ratesTimings[tag], rt)
rt := NewRateTiming(record[1], t, record[3])
rs, exists := rates[record[1]]
if !exists {
log.Printf("Could not rate for tag %v", record[2])