| import ( | import ( | ||||
| "encoding/json" | "encoding/json" | ||||
| "fmt" | "fmt" | ||||
| "net/url" | |||||
| "strings" | "strings" | ||||
| "time" | "time" | ||||
| ) | ) | ||||
| func crmGetMeeting(id string) (ret crmdMeeting, err error) { | func crmGetMeeting(id string) (ret crmdMeeting, err error) { | ||||
| entity, err := crmGetEntity("Meeting", id) | entity, err := crmGetEntity("Meeting", id) | ||||
| if err != nil { | |||||
| if err != nil && entity == nil { | |||||
| return | return | ||||
| } | } | ||||
| } | } | ||||
| func (m crmdMeeting) StartDate() string { | 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") | AEST, _ := time.LoadLocation("Australia/Sydney") | ||||
| return t.In(AEST).Format("02 January, 2006") | return t.In(AEST).Format("02 January, 2006") | ||||
| } | } | ||||
| func (m crmdMeeting) StartHour() string { | 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 { | 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) | |||||
| } | } |