示例#1
0
        public CostModel GetModel(int Id)
        {
            CostModel model = new CostModel();
            // Get list city (level0)
            List <Entities.Place> lstCity = placeService.List(0);

            model.ListCity = placeService.ListPlaceItemByParent(0);
            model.ListCity.Insert(0, new Entities.Item()
            {
                Text = "--- Chọn thành phố ---", Id = -1
            });
            model.ListRegion = new List <Entities.Item>();

            // Get CostSetting
            if (Id > 0)
            {
                model.CostSetting = costService.GetById(Id);
            }

            // Get List district by city.
            if (model.CostSetting.CityId > 0)
            {
                model.ListDistrict = placeService.ListPlaceItemByParent(model.CostSetting.CityId);
                model.ListRegion   = regionService.ListItem(model.CostSetting.CityId);
            }
            else
            {
                model.ListDistrict = new List <Entities.Item>();
            }
            model.ListDistrict.Insert(0, new Entities.Item()
            {
                Text = "--- Chọn quận huyện ---", Id = -1
            });

            //
            if (model.CostSetting.DistrictId > 0)
            {
                model.ListWard   = placeService.ListPlaceItemByParent(model.CostSetting.DistrictId);
                model.ListRegion = regionService.ListItem(model.CostSetting.CityId, model.CostSetting.DistrictId);
            }
            else
            {
                model.ListWard = new List <Entities.Item>();
            }
            model.ListRegion.Insert(0, new Entities.Item()
            {
                Text = "--- Chọn vùng ---", Id = -1
            });
            model.ListWard.Insert(0, new Entities.Item()
            {
                Text = "--- Chọn xã phường ---", Id = -1
            });

            // Lấy thông tin loại nhà
            model.ListProductType = productService.ListProductType();
            model.ListProductType.Insert(0, new Entities.Item()
            {
                Text = AdminConfigs.TEXT_CHOOSE_HOUSE_TYPE, Id = -1
            });

            // Lấy thông tin các nhóm đối tượng
            RoleService roleService = new RoleService();

            model.ListRole = roleService.ListItem();
            model.ListRole.Insert(0, new Entities.Item()
            {
                Text = "--- Chọn quyền ---", Id = -1
            });

            // Lấy thông tin người dùng theo quyền.
            UserService          userService = new UserService();
            bool                 isAgency    = false;
            List <Entities.Item> lstUserTemp = new List <Entities.Item>();

            if (model.CostSetting.UserRole > 0)
            {
                lstUserTemp = userService.ListItemByRoleId(model.CostSetting.UserRole);
                isAgency    = roleService.CheckRoleAgency(model.CostSetting.UserRole);
            }
            else
            {
                lstUserTemp = new List <Entities.Item>();
            }

            // Nếu là dạng môi giới thì kiểm tra theo vùng.
            if (isAgency)
            {
                if (model.CostSetting.RegionId > 0)
                {
                    // Lấy môi giới theo vùng.
                    List <Entities.Item> lstTemp = userService.ListAgencyByRegion(model.CostSetting.RegionId, model.CostSetting.UserRole);
                    if (lstTemp.Count > 0)
                    {
                        lstUserTemp = lstUserTemp.Where(x => lstTemp.Any(y => y.Id == x.Id)).ToList();
                    }
                }
            }

            model.ListUser = lstUserTemp;

            // Lấy thông tin những người được chọn.
            if (!string.IsNullOrEmpty(model.CostSetting.UserIds))
            {
                string[] arrUser = model.CostSetting.UserIds.Split(',');
                foreach (var item in model.ListUser)
                {
                    if (arrUser.Contains(item.Id.ToString()))
                    {
                        item.Checked = true;
                    }
                }
            }

            // Lấy danh sách cost master.
            var listCostMaster = costService.ListCostMaster();

            model.ListCostMaster = listCostMaster;
            List <Entities.Cost> listCost = new List <Entities.Cost>();

            if (model.CostSetting.Id > 0)
            {
                listCost = costService.ListCost(model.CostSetting.Id);
            }
            else
            {
                foreach (Entities.Item costMaster in listCostMaster)
                {
                    listCost.Add(new Entities.Cost()
                    {
                        CostSettingId  = -1,
                        CostMasterId   = costMaster.Id,
                        CostMasterText = costMaster.Text,
                        IsApply        = true,
                        SortOrder      = (short)costMaster.Id,
                        MoneyCode1     = 0,
                        MoneyCode2     = 0,
                        MoneyCode3     = 0
                    });
                }
            }
            model.ListCost = listCost;

            // Lấy danh sách kiểu giao dịch.
            model.ListTransactionType = Helpers.DefaultData.ListTransactionType();
            model.ListTransactionType.Insert(0, new Entities.Item()
            {
                Id = 0, Text = "Chọn loại giao dịch"
            });

            return(model);
        }