Exemplo n.º 1
0
        //删除选择的往来单位分类
        protected void Delete_Click(object sender, EventArgs e)
        {
            if (TV_CompanyClass.SelectedNode != null)
            {
                RadTreeNode currentNode       = TV_CompanyClass.SelectedNode;
                RadTreeNode parentCurrentNode = currentNode.ParentNode;
                Guid        companyClassId    = new Guid(currentNode.Value);
                if (companyClassId != Guid.Empty)
                {
                    try
                    {
                        if (_cost.CanDelete(companyClassId) == false)
                        {
                            RAM.Alert("该分类绑定有费用账户,无法删除");
                            return;
                        }

                        if (_cost.GetFireCompanyCount(companyClassId) <= 0)
                        {
                            if (_cost.GetChildCompanyClassCount(companyClassId) <= 0)
                            {
                                _cost.Delete(companyClassId);
                            }
                            else
                            {
                                RAM.Alert("该往来单位分类仍有下属分类,不允许删除!");
                                return;
                            }
                        }
                        else
                        {
                            RAM.Alert("该往来单位仍有单位使用,不允许删除!");
                            return;
                        }

                        UnselectAllNodes(TV_CompanyClass);

                        if (currentNode.Parent != null)
                        {
                            parentCurrentNode.Selected = true;
                            parentCurrentNode.Nodes.Remove(currentNode);
                            NonceCompanyClass = _cost.GetCompanyClass(new Guid(parentCurrentNode.Value));
                        }
                        else
                        {
                            if (currentNode.Index > 0)
                            {
                                currentNode.TreeView.Nodes[currentNode.Index - 1].Selected = true;
                                NonceCompanyClass = _cost.GetCompanyClass(new Guid(currentNode.TreeView.Nodes[currentNode.Index - 1].Value));
                            }
                            TV_CompanyClass.Nodes.Remove(currentNode);
                        }
                    }
                    catch (Exception exp)
                    {
                        RAM.Alert("往来单位分类删除失败!\n\n错误提示:" + exp.Message);
                    }
                }
                else
                {
                    RAM.Alert("根节点不允许删除!");
                }
            }
        }