mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-16 05:39:54 +05:00
Merge branch 'J0hnSteel-master'
This commit is contained in:
@@ -53,9 +53,14 @@ func (rit *RITiming) CronString() string {
|
||||
return rit.cronString
|
||||
}
|
||||
var sec, min, hour, monthday, month, weekday, year string
|
||||
if len(rit.StartTime) == 0 {
|
||||
switch rit.StartTime {
|
||||
case "":
|
||||
hour, min, sec = "*", "*", "*"
|
||||
} else {
|
||||
case utils.MetaEveryMinute:
|
||||
hour, min, sec = "*", "*", "0"
|
||||
case utils.MetaHourly:
|
||||
hour, min, sec = "*", "0", "0"
|
||||
default:
|
||||
hms := strings.Split(rit.StartTime, ":")
|
||||
if len(hms) == 3 {
|
||||
hour, min, sec = hms[0], hms[1], hms[2]
|
||||
|
||||
@@ -348,6 +348,23 @@ func TestRateIntervalCronEmpty(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestRITimingCronEveryX(t *testing.T) {
|
||||
rit := &RITiming{
|
||||
StartTime: utils.MetaEveryMinute,
|
||||
}
|
||||
eCronStr := "0 * * * * * *"
|
||||
if cronStr := rit.CronString(); cronStr != eCronStr {
|
||||
t.Errorf("Expecting: <%s>, received: <%s>", eCronStr, cronStr)
|
||||
}
|
||||
rit = &RITiming{
|
||||
StartTime: utils.MetaHourly,
|
||||
}
|
||||
eCronStr = "0 0 * * * * *"
|
||||
if cronStr := rit.CronString(); cronStr != eCronStr {
|
||||
t.Errorf("Expecting: <%s>, received: <%s>", eCronStr, cronStr)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRateIntervalCost(t *testing.T) {
|
||||
ri := &RateInterval{
|
||||
Rating: &RIRate{
|
||||
|
||||
@@ -85,6 +85,24 @@ func NewTpReader(db DataDB, lr LoadReader, tpid, timezone string) *TpReader {
|
||||
StartTime: utils.ASAP,
|
||||
EndTime: "",
|
||||
}
|
||||
tpr.timings[utils.MetaEveryMinute] = &utils.TPTiming{
|
||||
ID: utils.MetaEveryMinute,
|
||||
Years: utils.Years{},
|
||||
Months: utils.Months{},
|
||||
MonthDays: utils.MonthDays{},
|
||||
WeekDays: utils.WeekDays{},
|
||||
StartTime: utils.MetaEveryMinute,
|
||||
EndTime: "",
|
||||
}
|
||||
tpr.timings[utils.MetaHourly] = &utils.TPTiming{
|
||||
ID: utils.MetaHourly,
|
||||
Years: utils.Years{},
|
||||
Months: utils.Months{},
|
||||
MonthDays: utils.MonthDays{},
|
||||
WeekDays: utils.WeekDays{},
|
||||
StartTime: utils.MetaHourly,
|
||||
EndTime: "",
|
||||
}
|
||||
return tpr
|
||||
}
|
||||
|
||||
|
||||
@@ -370,4 +370,6 @@ const (
|
||||
MetaFileCSV = "*file_csv"
|
||||
MetaFileFWV = "*file_fwv"
|
||||
Accounts = "Accounts"
|
||||
MetaEveryMinute = "*every_minute"
|
||||
MetaHourly = "*hourly"
|
||||
)
|
||||
|
||||
@@ -102,5 +102,21 @@ func incrementalFormula(params map[string]interface{}) float64 {
|
||||
return units / DaysInYear(now.Year())
|
||||
}
|
||||
}
|
||||
if increment == "hour" {
|
||||
if interval == "day" {
|
||||
return units / 24
|
||||
}
|
||||
if interval == "month" {
|
||||
return units / ( DaysInMonth(now.Year(), now.Month()) * 24 )
|
||||
}
|
||||
if interval == "year" {
|
||||
return units / ( DaysInYear(now.Year()) * 24 )
|
||||
}
|
||||
}
|
||||
if increment == "minute" {
|
||||
if interval == "hour" {
|
||||
return units / 60
|
||||
}
|
||||
}
|
||||
return 0.0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user