mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-25 09:08:45 +05:00
Support for latest gorm
This commit is contained in:
@@ -375,7 +375,7 @@ func (self *CdrServer) rateCDR(cdr *CDR) ([]*CDR, error) {
|
||||
}
|
||||
return cdrsRated, nil
|
||||
}
|
||||
if err != nil && (err == gorm.RecordNotFound || err == mgov2.ErrNotFound) { //calculate CDR as for pseudoprepaid
|
||||
if err != nil && (err == gorm.ErrRecordNotFound || err == mgov2.ErrNotFound) { //calculate CDR as for pseudoprepaid
|
||||
utils.Logger.Warning(fmt.Sprintf("<Cdrs> WARNING: Could not find CallCostLog for cgrid: %s, source: %s, runid: %s, will recalculate", cdr.CGRID, utils.SESSION_MANAGER_SOURCE, cdr.RunID))
|
||||
qryCC, err = self.getCostFromRater(cdr)
|
||||
}
|
||||
|
||||
@@ -440,7 +440,7 @@ type TBLCDRs struct {
|
||||
ExtraInfo string
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
DeletedAt time.Time
|
||||
DeletedAt *time.Time
|
||||
}
|
||||
|
||||
func (t TBLCDRs) TableName() string {
|
||||
@@ -457,7 +457,7 @@ type TBLSMCosts struct {
|
||||
Usage float64
|
||||
CostDetails string
|
||||
CreatedAt time.Time
|
||||
DeletedAt time.Time
|
||||
DeletedAt *time.Time
|
||||
}
|
||||
|
||||
func (t TBLSMCosts) TableName() string {
|
||||
|
||||
@@ -34,7 +34,7 @@ import (
|
||||
|
||||
type SQLStorage struct {
|
||||
Db *sql.DB
|
||||
db gorm.DB
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
func (self *SQLStorage) Close() {
|
||||
@@ -675,8 +675,8 @@ func (self *SQLStorage) SetCDR(cdr *CDR, allowUpdate bool) error {
|
||||
return saved.Error
|
||||
}
|
||||
tx = self.db.Begin()
|
||||
updated := tx.Model(TBLCDRs{}).Where(&TBLCDRs{Cgrid: cdr.CGRID, RunID: cdr.RunID}).Updates(
|
||||
&TBLCDRs{
|
||||
updated := tx.Model(&TBLCDRs{}).Where(&TBLCDRs{Cgrid: cdr.CGRID, RunID: cdr.RunID, OriginID: cdr.OriginID}).Updates(
|
||||
TBLCDRs{
|
||||
OriginHost: cdr.OriginHost,
|
||||
Source: cdr.Source,
|
||||
OriginID: cdr.OriginID,
|
||||
@@ -718,9 +718,6 @@ func (self *SQLStorage) GetCDRs(qryFltr *utils.CDRsFilter, remove bool) ([]*CDR,
|
||||
q := self.db.Table(utils.TBL_CDRS).Select("*")
|
||||
if qryFltr.Unscoped {
|
||||
q = q.Unscoped()
|
||||
} else {
|
||||
// Query filter
|
||||
q = q.Where("(deleted_at IS NULL OR deleted_at <= '0001-01-02')") // Soft deletes
|
||||
}
|
||||
// Add filters, use in to replace the high number of ORs
|
||||
if len(qryFltr.CGRIDs) != 0 {
|
||||
@@ -957,12 +954,15 @@ func (self *SQLStorage) GetCDRs(qryFltr *utils.CDRsFilter, remove bool) ([]*CDR,
|
||||
q.Find(&results)
|
||||
|
||||
for _, result := range results {
|
||||
var extraFieldsMp map[string]string
|
||||
if err := json.Unmarshal([]byte(result.ExtraFields), &extraFieldsMp); err != nil {
|
||||
return nil, 0, fmt.Errorf("JSON unmarshal error for cgrid: %s, runid: %v, error: %s", result.Cgrid, result.RunID, err.Error())
|
||||
extraFieldsMp := make(map[string]string)
|
||||
if result.ExtraFields != "" {
|
||||
if err := json.Unmarshal([]byte(result.ExtraFields), &extraFieldsMp); err != nil {
|
||||
utils.Logger.Debug(fmt.Sprintf("Unmarshall json for result: %+v, error: %v", result.ExtraFields, err))
|
||||
return nil, 0, fmt.Errorf("JSON unmarshal error for cgrid: %s, runid: %v, error: %s", result.Cgrid, result.RunID, err.Error())
|
||||
}
|
||||
}
|
||||
var callCost CallCost
|
||||
if len(result.CostDetails) != 0 {
|
||||
if result.CostDetails != "" {
|
||||
if err := json.Unmarshal([]byte(result.CostDetails), &callCost); err != nil {
|
||||
return nil, 0, fmt.Errorf("JSON unmarshal callcost error for cgrid: %s, runid: %v, error: %s", result.Cgrid, result.RunID, err.Error())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user