| @@ -3,6 +3,7 @@ package main | |||
| import ( | |||
| "encoding/json" | |||
| "fmt" | |||
| "net/url" | |||
| "strings" | |||
| "time" | |||
| ) | |||
| @@ -111,7 +112,7 @@ func (m crmdMeeting) CoverCacheURL() string { | |||
| func crmGetMeeting(id string) (ret crmdMeeting, err error) { | |||
| entity, err := crmGetEntity("Meeting", id) | |||
| if err != nil { | |||
| if err != nil && entity == nil { | |||
| return | |||
| } | |||
| @@ -120,19 +121,67 @@ func crmGetMeeting(id string) (ret crmdMeeting, err error) { | |||
| } | |||
| func (m crmdMeeting) StartDate() string { | |||
| t, _ := time.Parse(getCrmTimeLayout(), m.DateStart) | |||
| t := time.Now().Add(time.Duration(240) * time.Hour) //10days later | |||
| if m.DateStart != "" { | |||
| t, _ = time.Parse(getCrmTimeLayout(), m.DateStart) | |||
| } | |||
| AEST, _ := time.LoadLocation("Australia/Sydney") | |||
| return t.In(AEST).Format("02 January, 2006") | |||
| } | |||
| func (m crmdMeeting) StartHour() string { | |||
| AEST, _ := time.LoadLocation("Australia/Sydney") | |||
| t, _ := time.Parse(getCrmTimeLayout(), m.DateStart) | |||
| return t.In(AEST).Format("15:04") | |||
| if m.DateStart != "" { | |||
| AEST, _ := time.LoadLocation("Australia/Sydney") | |||
| t, _ := time.Parse(getCrmTimeLayout(), m.DateStart) | |||
| return t.In(AEST).Format("15:04") | |||
| } | |||
| return "10:30" | |||
| } | |||
| func (m crmdMeeting) DurationHour() string { | |||
| hour := m.Duration / 3600 | |||
| minute := (m.Duration % 3600) / 60 | |||
| return fmt.Sprintf("%02d:%02d", hour, minute) | |||
| if m.Duration > 20 { | |||
| hour := m.Duration / 3600 | |||
| minute := (m.Duration % 3600) / 60 | |||
| return fmt.Sprintf("%02d:%02d", hour, minute) | |||
| } | |||
| return "01:30" | |||
| } | |||
| func (m crmdMeeting) getEditMeetingURL(leadID string) string { | |||
| u, _ := url.Parse(GlobalPath.ThisSiteURL + "spa/redirect") | |||
| q := u.Query() | |||
| q.Add("url", GlobalPath.ThisSiteURL+"spa/editmeeting") | |||
| if leadID != "" { | |||
| q.Add("lid", leadID) | |||
| } | |||
| q.Add("meetingid", m.ID) | |||
| u.RawQuery = q.Encode() | |||
| return buildSignatureAppend2Url(u.String(), IntraAPIConfig.CRMSecrete) | |||
| } | |||
| //meeting status is "submitted" | |||
| func (m *crmdMeeting) getMeetingByLead(leadID string) { | |||
| filters := []crmdSearchFilter{ | |||
| {"parentId", "equals", leadID}, | |||
| {"parentType", "equals", "Lead"}, | |||
| {"status", "equals", "submitted"}, | |||
| } | |||
| cs, err := crmSearchEntity("Meeting", filters) | |||
| if err != nil && cs.Total < 1 { | |||
| return | |||
| } | |||
| total, list, err := cs.toEntityList("Meeting") | |||
| if total < 1 || err != nil || list == nil { | |||
| return | |||
| } | |||
| meetings := list.([]crmdMeeting) | |||
| // log.Println(meetings) | |||
| // log.Println(len(meetings)) | |||
| *m = meetings[0] | |||
| // log.Println(*m) | |||
| // log.Println(m.ID) | |||
| } | |||