package production import ( "strings" "shylinux.com/x/ice" kit "shylinux.com/x/toolkits" "shylinux.com/x/operation/src/production/model" ) type Date struct { Tables order string `data:"9"` role string `data:"leader,worker"` discuss string `name:"discuss meet_type*:select issue_uid*:select meet_link* begin_time*:select@date" role:"leader"` } func (s Date) Inputs(m *ice.Message, arg ...string) { switch arg[0] { case model.ISSUE_UID: args := m.OptionSimple(model.STORY_UID) switch MeetType(kit.Int(m.Option(model.MEET_TYPE))) { case MeetTalk: args = append(args, model.STATUS, kit.Format(IssueCreate)) case MeetValue: args = append(args, model.STATUS, kit.Format(IssueSubmit)) case MeetCheck: s.Fields(m, model.ISSUE_UID, model.TITLE, model.USER_UID).Limit(m, 300) m.Cmdy(Design{}, s.Select, args, model.STATUS, IssueSubmit) m.RenameAppend(model.ISSUE_UID, arg[0]) m.DisplayInputKeyNameIconTitle() return case MeetPlan: args = append(args, model.STATUS, kit.Format(IssueCreate)) } s.InputsUID(m, arg, Issue{}, args...) default: s.Tables.Inputs(m, arg...) } } func (s Date) Discuss(m *ice.Message, arg ...string) { msg := m.Cmd(Issue{}, s.Select, model.UID, m.Option(model.ISSUE_UID), m.OptionSimple(model.STORY_UID)) m.Cmdy(Meet{}, s.Create, m.OptionSimple(model.ISSUE_UID), arg, model.FROM_USER_UID, m.Option(model.USER_UID), model.TO_USER_UID, msg.Append(model.USER_UID), msg.AppendSimple(model.TITLE), model.CONTENT, msg.Append(model.ISSUE_CONTENT)) } func (s Date) List(m *ice.Message, arg ...string) { s.Limit(m, 300) if msg := s.SelectJoinAuth(m.Cmd(story{}, s.Select, model.UID, arg[0])); msg.Append("auth_status") == "issued" { m.Cmdy(Meet{}, s.Select, msg.AppendSimple(model.COMPANY_UID)) } else { m.Cmdy(Meet{}, s.Select, model.STORY_UID, arg[0]) } s.SelectJoin(m, story{}, model.NAME, model.INFO) m.RenameAppend(model.TO_USER_UID, model.USER_UID) m.Action().Display("").DisplayCSS("") s.head(m) } func init() { ice.TeamCtxCmd(Date{}) } func (s Date) head(m *ice.Message, arg ...string) { s.SettingSelect(m) head := []string{} for i := -kit.Int(m.OptionDefault("date_begin", kit.Select(m.Option(DATE_BEGIN_DAYS), "0", m.IsMobileUA()))); i < kit.Int(m.OptionDefault("date_end", m.Option(DATE_END_DAYS))); i++ { head = append(head, strings.Split(m.Time(kit.Format("%dh", i*24)), " ")[0]) } list := []string{} for i := kit.Int(m.OptionDefault("date_start", m.Option(DATE_START_HOURS))) * 2; i < kit.Int(m.OptionDefault("date_stop", m.Option(DATE_STOP_HOURS)))*2; i++ { if i%2 == 0 { list = append(list, kit.Format("%2d:00", i/2)) } else { list = append(list, kit.Format("%2d:30", i/2)) } } m.Option("head", strings.Join(head, ",")) m.Option("list", strings.Join(list, ",")) }