示例#1
0
        public bookRoomDetailModel detail(bookRoomModel value)
        {
            bookRoomDetailModel result = new bookRoomDetailModel();

            try
            {
                using (var context = new StandardCanEntities())
                {
                    if (String.IsNullOrEmpty(value.user_id))
                    {
                        throw new Exception("Unauthorized Access");
                    }
                    var userId    = JwtHelper.GetUserIdFromToken(value.user_id);
                    var userGroup = JwtHelper.GetUserGroupFromToken(value.user_id);
                    if (String.IsNullOrEmpty(userId))
                    {
                        throw new Exception("Unauthorized Access");
                    }

                    if (userGroup == "1" || userGroup == "2" || userGroup == "4")
                    {
                        result.button.reject     = false;
                        result.button.approve    = false;
                        result.button.cancel     = true;
                        result.button.save_draft = true;
                        result.button.save_send  = true;
                    }
                    else if (userGroup == "3")
                    {
                        result.button.reject      = true;
                        result.button.approve     = true;
                        result.button.cancel      = true;
                        result.button.save_revise = true;
                        result.button.save_draft  = true;
                        result.button.save_send   = false;
                    }

                    string sql = "select		convert(nvarchar(5), mrm_id) code ";
                    sql += " , mrm_code [text] ";
                    sql += " from MAS_ROOM ";
                    sql += " where MRM_STATUS=1";
                    sql += " order by mrm_name ";
                    result.room_list = context.Database.SqlQuery <dropdown>(sql).ToList();

                    if (string.IsNullOrEmpty(value.id))
                    {
                        sql  = "select   convert(nvarchar(3), MHW_ID) id ";
                        sql += "        , MHW_NAME text ";
                        sql += ", convert(bit, 0) opt ";
                        sql += " from   MAS_HARDWARE ";
                        sql += " where  MHW_STATUS = 1";
                        result.device_list = context.Database.SqlQuery <checkbox_list>(sql).ToList();

                        result.button.reject      = false;
                        result.button.cancel      = false;
                        result.button.save_revise = false;
                    }
                    else
                    {
                        sql  = "select   convert(nvarchar(3), a.MHW_ID) id ";
                        sql += "        , MHW_NAME text ";
                        sql += ", convert(bit, case when b.MHW_ID is null then 0 else 1 end ) opt ";
                        sql += " from   MAS_HARDWARE a left join BOOK_ROOM_DEVICE b on a.MHW_ID=b.MHW_ID and b.BR_ID= " + value.id;
                        sql += " where  MHW_STATUS = 1";
                        result.device_list = context.Database.SqlQuery <checkbox_list>(sql).ToList();

                        result.emp_list = context.sp_bookroom_emp(value.id).ToList();

                        var h = context.BOOK_ROOM.Where(p => p.BR_ID.ToString().Equals(value.id)).FirstOrDefault();
                        if (h != null)
                        {
                            var mas_room = context.MAS_ROOM.SingleOrDefault(a => a.MRM_ID == h.MRM_ID);
                            result.id           = h.BR_ID.ToString();
                            result.room_name    = mas_room != null ? mas_room.MRM_NAME : "";
                            result.topic        = h.br_topic ?? "";
                            result.date         = h.br_date == null ? "" : Convert.ToDateTime(h.br_date).ToString("dd/MM/yyyy");
                            result.start_time   = h.br_start_time ?? "";
                            result.stop_time    = h.br_stop_time ?? "";
                            result.person_total = h.br_person_total == null ? "" : h.br_person_total.ToString();
                            result.room_id      = h.MRM_ID == null ? "" : h.MRM_ID.ToString();
                            result.remark       = h.br_remark ?? "";
                            result.br_status    = h.br_status.ToString();

                            if (h.br_request_by != null)
                            {
                                result.br_request = h.br_request_by.ToString();
                                var emp_request = context.EMP_PROFILE.SingleOrDefault(a => a.emp_code == h.br_request_by.ToString());
                                if (emp_request != null)
                                {
                                    result.br_request_name = emp_request.emp_fname + " " + emp_request.emp_lname;
                                }
                            }

                            if (h.br_status == 1)
                            {
                                result.read_only          = true;
                                result.button.reject      = false;
                                result.button.approve     = false;
                                result.button.save_revise = false;
                                result.button.cancel      = false;
                                result.button.save_draft  = false;
                                result.button.save_send   = false;
                                if (userGroup == "3")
                                {
                                    result.button.reject      = true;
                                    result.button.approve     = true;
                                    result.button.save_draft  = true;
                                    result.button.cancel      = false;
                                    result.button.save_revise = false;
                                    result.button.save_send   = false;
                                    result.read_only          = false;
                                }

                                if (h.br_create_by.ToString() == userId)
                                {
                                    result.read_only         = false;
                                    result.button.save_draft = true;
                                    if (userGroup != "3")
                                    {
                                        result.button.cancel    = true;
                                        result.button.save_send = true;
                                    }
                                }
                            }
                            else if (h.br_status == 2)
                            {
                                result.button.cancel     = false;
                                result.button.save_draft = false;
                                result.button.save_send  = false;
                                if (userGroup == "3")
                                {
                                    result.button.save_revise = true;
                                }
                                else
                                {
                                    result.button.save_revise = false;
                                }
                                if (h.br_create_by.ToString() == userId)
                                {
                                    result.button.cancel = true;
                                }
                                result.read_only = true;
                            }
                            else if (h.br_status == 0 || h.br_status == 3 || h.br_status == 4 || h.br_status == 5)
                            {
                                result.button.reject     = false;
                                result.button.approve    = false;
                                result.button.cancel     = false;
                                result.button.save_draft = false;
                                result.button.save_send  = false;
                                if (userGroup == "3")
                                {
                                    result.button.save_revise = true;
                                }
                                else
                                {
                                    result.button.save_revise = false;
                                }
                                result.read_only = true;
                                if (h.br_status == 3)
                                {
                                    result.button.gen_qrCode = true;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return(result);
        }