Beispiel #1
0
 public 客房出租Form(Guid kfID)
 {
     InitializeComponent();
     uC客房详细1.tbKfName.ReadOnly = true;//客房名字不许更改
     uC客房详细1.tbKfName.StateCommon.Content.Color1 = Color.Red;
     this.kf = context.客房.FirstOrDefault(m => m.ID == kfID);
 }
Beispiel #2
0
        public void 客房出租_Click(object sender, EventArgs e)
        {
            //出租
            if (treeView1.SelectedNode != null && treeView1.SelectedNode.Tag is 客房)
            {
                客房 kf = treeView1.SelectedNode.Tag as 客房;
                if (!string.IsNullOrEmpty(kf.租户))
                {
                    return;
                }

                using (客房出租Form rent = new 客房出租Form(kf.ID))
                {
                    DialogResult result = rent.ShowDialog(this);
                    if (result == DialogResult.OK)
                    {
                        if (KryptonMessageBox.Show("客房已成功出租,是否立即进行首期收租?", "首期收租询问", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            using (客房收租Form collectRent = new 客房收租Form(kf.ID))
                            {
                                collectRent.ShowDialog(this);
                            }
                        }
                    }
                }
            }
        }
Beispiel #3
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            客房租金明细BindingSource.EndEdit();

            //string check = collectRent.CheckRules();
            //if (!string.IsNullOrEmpty(check))
            //{
            //    KryptonMessageBox.Show(check, "数据校验失败");
            //    return;
            //}

            //此时加入新的【客房出租历史记录】对象
            context.客房出租历史记录.AddObject(history);
            //客房删除租户等相关信息,转为‘未出租’状态
            kf.移除租户信息();

            string msg;

            if (Helper.saveData(context, collectRent, out msg))
            {
                KryptonMessageBox.Show(msg, "成功退租");
                if (this.Owner is Main)
                {
                    (this.Owner as Main).RefreshAndLocateTree(kf);//刷新TreeView,并定位到kf节点。
                }
                Close();
            }
            else
            {
                KryptonMessageBox.Show(msg, "失败");
                context.客房出租历史记录.DeleteObject(history);//失败移除
                //恢复kf的租户信息
                kf = context.客房.FirstOrDefault(m => m.ID == kf.ID);
            }
        }
Beispiel #4
0
        private void kfForm_Load(object sender, EventArgs e)
        {
            Text = string.Format("{0}客房", isNew? "新增":"编辑");
            源房BindingSource.DataSource = 源房.GetYF(context).Execute(MergeOption.AppendOnly);

            if (isNew)                           //新增
            {
                BtnOkAndContinue.Visible = true; //保存并继续按钮可见
                kf                  = new 客房();
                kf.源房ID             = this.yfID;
                cmbYF.SelectedValue = this.yfID;
                context.客房.AddObject(kf);//此操作后可实现外键同步
            }
            else//编辑
            {
                cmbYF.SelectedValue = kf.源房ID;

                //如果存在交租记录,那么不允许编辑水电气始码
                if (kf.客房租金明细.Count > 0)
                {
                    uC客房详细1.tbKF水始码.Enabled = false;
                    uC客房详细1.tbKF电始码.Enabled = false;
                    uC客房详细1.tbKF气始码.Enabled = false;
                }
            }
            uC客房详细1.客房BindingSource.DataSource = kf;
        }
 private void kryptonDataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
 {
     if (e.ColumnIndex == 0)//首列
     {
         客房 k = e.Value as 客房;
         e.Value = string.Format("[{0}] - {1}", k.源房.房名, k.命名);
     }
 }
Beispiel #6
0
 private 客房出租历史记录 history = new 客房出租历史记录();//构造一个新的【客房出租历史记录】对象,并赋值
 public 客房续租Form(Guid kfID)
 {
     InitializeComponent();
     uC客房详细1.tbKfName.ReadOnly = true;//客房名字不许更改
     uC客房详细1.tbKfName.StateCommon.Content.Color1 = Color.Red;
     uC客房详细1.toolTip1.SetToolTip(uC客房详细1.tbKfName, "客房名字不允许更改");
     uC客房详细1.tbKF水始码.Enabled = false;//续租时水电气始码不许更改
     uC客房详细1.tbKF电始码.Enabled = false;
     uC客房详细1.tbKF气始码.Enabled = false;
     this.kf = context.客房.FirstOrDefault(m => m.ID == kfID);
 }
Beispiel #7
0
 public void 编辑客房_Click(object sender, EventArgs e)
 {
     //编辑客房
     if (treeView1.SelectedNode != null && treeView1.SelectedNode.Tag is 客房)
     {
         客房 kf = treeView1.SelectedNode.Tag as 客房;
         using (客房Form kF = new 客房Form(kf))
         {
             kF.ShowDialog(this);
         }
     }
 }
        private void kryptonDataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
        {
            客房出租历史记录 entity = 客房出租历史记录BindingSource.Current as 客房出租历史记录;
            客房       kf     = entity.客房;

            /*只允许删除“历史”客户的记录。因为[续租]后当前租户相关租房信息转到‘客房出租历史记录’表里,那么如果
             * 欲删除的记录是当前客户上次续租的合约记录的话,以后的退租操作无法正常进行(退租时要计算该客户整个
             * 签约期内的款项、押金等等,多退少补)。*/
            //1.


            //删除某条出租历史记录后,相关的【客房收租明细】信息也自动删除。
        }
Beispiel #9
0
        private void BtnOkAndContinue_Click(object sender, EventArgs e)
        {
            uC客房详细1.客房BindingSource.EndEdit();

            string check = kf.CheckRules();

            if (!string.IsNullOrEmpty(check))
            {
                KryptonMessageBox.Show(check, "数据校验失败");
                return;
            }

#if DEBUG
            System.Diagnostics.Debug.Assert(isNew);//只有新增状态才有此按钮
#endif

            string msg;
            if (Helper.saveData(context, kf, out msg))
            {
                KryptonMessageBox.Show(string.Format("成功新增客房[{0}]。您可以继续添加客房!", kf.命名), "成功新增客房");
                if (this.Owner is Main)
                {
                    (this.Owner as Main).RefreshAndLocateTree(kf);//刷新TreeView,并定位到kf节点。
                }
                客房 old = kf;
                kf = new 客房()
                {
                    面积   = old.面积,
                    含厨房  = old.含厨房,
                    含卫生间 = old.含卫生间,
                    源房ID = old.源房ID,
                    押金   = old.押金,
                    月租金  = old.月租金,
                    支付月数 = old.支付月数,
                    水始码  = old.水始码,
                    电始码  = old.电始码,
                    气始码  = old.气始码,
                    月宽带费 = old.月宽带费,
                    月物业费 = old.月物业费,
                    月厨房费 = old.月厨房费,
                    备注   = old.备注
                };
                context.客房.AddObject(kf);//此操作后可实现外键同步

                uC客房详细1.客房BindingSource.DataSource = kf;
            }
            else
            {
                KryptonMessageBox.Show(msg, "失败");
            }
        }
 private void BtnSelectKF_Click(object sender, EventArgs e)
 {
     using (客房选择Form form = new 客房选择Form(客房筛选.客房出租))
     {
         var result = form.ShowDialog(this);
         if (result == System.Windows.Forms.DialogResult.OK)
         {
             kf = form.selectedKF;
             uC客房详细1.客房BindingSource.DataSource = kf;
             kryptonHeader1.Values.Heading      = kf.源房.房名;
             kryptonHeader1.Values.Description  = kf.命名;
         }
     }
 }
 private void llbKF_LinkClicked(object sender, EventArgs e)
 {
     using (客房选择Form form = new 客房选择Form(context, 客房筛选.客房收租))
     {
         var result = form.ShowDialog(this);
         if (result == System.Windows.Forms.DialogResult.OK)
         {
             if (kf != form.selectedKF)
             {
                 kf = form.selectedKF;
                 ChangeKF(kf.ID);
             }
         }
     }
 }
        private void raBtn_CheckedChanged(object sender, EventArgs e)
        {
            llbKF.Enabled = raBtnOne.Checked;

            if (raBtnAll.Checked)
            {
                客房出租历史记录BindingSource.DataSource = 客房出租历史记录.GetKfHistoryDetails(context, null).Execute(MergeOption.AppendOnly);
                llbKF.Values.ExtraText           = "<请选择>";
                kf = null;
            }
            else if (raBtnOne.Checked)
            {
                客房出租历史记录BindingSource.DataSource = null;
            }
        }
        private void raBtn_CheckedChanged(object sender, EventArgs e)
        {
            llbKF.Enabled  = raBtnOne.Checked;
            BtnAdd.Visible = raBtnOne.Checked;

            if (raBtnAll.Checked)
            {
                客房租金明细BindingSource.DataSource = 客房租金明细.GetRentDetails(null).Execute(MergeOption.AppendOnly);
                llbKF.Values.ExtraText         = "<请选择>";
                kf = null;
            }
            else if (raBtnOne.Checked)
            {
                客房租金明细BindingSource.DataSource = null;
            }
        }
Beispiel #14
0
        public void 客房退租_Click(object sender, EventArgs e)
        {
            //客房退租
            if (treeView1.SelectedNode != null && treeView1.SelectedNode.Tag is 客房)
            {
                客房 kf = treeView1.SelectedNode.Tag as 客房;
                if (string.IsNullOrEmpty(kf.租户))//未租
                {
                    return;
                }

                using (客房退租Form tz = new 客房退租Form(kf.ID))
                {
                    tz.ShowDialog(this);
                }
            }
        }
        private void BtnAdd_Click(object sender, EventArgs e)
        {
            if (kf == null)
            {
                KryptonMessageBox.Show("请先选择欲收租的客房!");
                return;
            }

            using (客房收租Form sz = new 客房收租Form(kf))
            {
                sz.ShowDialog(this);
                kf = sz.kf;//也许用户在新增收租里有一次更改了kf,此时回传
            }

            //最后,不管有没有更新,刷新DataGridView
            ChangeKF();
        }
Beispiel #16
0
 private void BtnSelectKF_Click(object sender, EventArgs e)
 {
     using (客房选择Form form = new 客房选择Form(客房筛选.客房收租))
     {
         var result = form.ShowDialog(this);
         if (result == System.Windows.Forms.DialogResult.OK)
         {
             if (kf != form.selectedKF)
             {
                 Main.context.客房租金明细.DeleteObject(collectRent);
                 kf = form.selectedKF;
                 kryptonHeader1.Values.Heading     = kf.源房.房名;
                 kryptonHeader1.Values.Description = kf.命名;
                 BindingData();
             }
         }
     }
 }
Beispiel #17
0
        private void kfForm_Load(object sender, EventArgs e)
        {
            Text = string.Format("{0}客房", isNew? "新增":"编辑");
            源房BindingSource.DataSource = 源房.GetYF().Execute(MergeOption.AppendOnly);

            if (isNew)                           //新增
            {
                BtnOkAndContinue.Visible = true; //保存并继续按钮可见
                kf                  = new 客房();
                kf.源房ID             = this.yfID;
                cmbYF.SelectedValue = this.yfID;
                Main.context.客房.AddObject(kf);//此操作后可实现外键同步
            }
            else//编辑
            {
                cmbYF.SelectedValue = kf.源房ID;
            }
            uC客房详细1.客房BindingSource.DataSource = kf;
        }
Beispiel #18
0
        public void  除客房_Click(object sender, EventArgs e)
        {
            //删除客房
            if (treeView1.SelectedNode != null && treeView1.SelectedNode.Tag is 客房)
            {
                客房     kf     = treeView1.SelectedNode.Tag as 客房;
                string txt    = string.Format("确定要删除客房 [{0}] 吗?\r\n(将同时删除此客房下所有关联的信息)", kf.命名);
                var    result = KryptonMessageBox.Show(txt, "客房删除确认",
                                                       MessageBoxButtons.OKCancel, MessageBoxIcon.Warning,
                                                       MessageBoxDefaultButton.Button2);
                if (result == DialogResult.OK)
                {
                    context.DeleteObject(kf);
                    string msg;
                    if (Helper.saveData(context, kf, out msg))
                    {
                        //删除客房后,删除相关的提醒
                        var tx = context.提醒.Where(m => m.客房ID == kf.ID).ToList();
                        for (int i = tx.Count - 1; i >= 0; i--)
                        {
                            context.提醒.DeleteObject(tx[i]);
                        }
                        //删除源房后,删除相关日常损耗
                        var sh = context.日常损耗.Where(m => m.客房ID == kf.ID).ToList();
                        for (int i = sh.Count - 1; i >= 0; i--)
                        {
                            context.日常损耗.DeleteObject(sh[i]);
                        }

                        KryptonMessageBox.Show(msg, "成功删除客房");
                        RefreshAndLocateTree(null);
                        LoadOrRefreshUC(null);
                    }
                    else
                    {
                        KryptonMessageBox.Show(msg, "失败");
                        context.Refresh(System.Data.Objects.RefreshMode.StoreWins, kf);
                    }
                    //clearObjectManagement();
                }
            }
        }
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            e.Node.SelectedImageIndex = e.Node.ImageIndex;//不变更选定的树节点图标

            object entity = e.Node.Tag;

            if (entity is 客房)
            {
                BtnOK.Enabled = true;
                selectedKF    = entity as 客房;
                kryptonHeaderGroup1.ValuesSecondary.Heading = string.Format("当前选择:{0} - {1}",
                                                                            selectedKF.源房.房名, selectedKF.命名);
            }
            else
            {
                BtnOK.Enabled = false;
                selectedKF    = null;
                kryptonHeaderGroup1.ValuesSecondary.Heading = "当前选择:<无>";
            }
        }
Beispiel #20
0
        public void 客房收租_Click(object sender, EventArgs e)
        {
            //客房收租
            if (treeView1.SelectedNode != null && treeView1.SelectedNode.Tag is 客房)
            {
                客房 kf = treeView1.SelectedNode.Tag as 客房;
                if (string.IsNullOrEmpty(kf.租户))//未租
                {
                    return;
                }
                if (kf.期止 < DateTime.Now)//已租,协议到期,请续租或退租
                {
                    KryptonMessageBox.Show("协议到期,请续租或退租。");
                    return;
                }

                using (客房收租Form collectRent = new 客房收租Form(kf.ID))
                {
                    collectRent.ShowDialog(this);
                }
            }
        }
        private void BtnDel_Click(object sender, EventArgs e)
        {
            客房出租历史记录 entity = 客房出租历史记录BindingSource.Current as 客房出租历史记录;

            if (entity == null)
            {
                return;
            }

            客房 tempKF = entity.客房;

            ////只允许删除“历史”客户的记录。因为[续租]后当前租户相关租房信息转到‘客房出租历史记录’表里,那么如果
            ////欲删除的记录是当前客户上次续租的合约记录的话,以后的退租操作无法正常进行(退租时要计算该客户整个
            ////签约期内的款项、押金等等,多退少补)。*/
            if (tempKF.租户 == entity.租户 && tempKF.身份证号 == entity.身份证号)
            {
                KryptonMessageBox.Show("此条【客房出租历史记录】相关信息涉及到当前租户,无法删除。\r\n(当前租户退租后,才能删除此租户相关的【客房出租历史记录】。)", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else//删除某条出租历史记录后,相关的【客房收租明细】信息也自动删除。
            {
                List <客房租金明细> willBeDeletedList = 客房出租历史记录.GetHistoryRentDetails(entity);
                int           num = willBeDeletedList.Count();
                string        msg = string.Format("删除此条记录,该记录包含的收租明细信息[{0}条]都将被删除!\r\n(详见上方操作说明)\r\n是否删除?", num);
                if (KryptonMessageBox.Show(msg, "删除确认", MessageBoxButtons.YesNo, MessageBoxIcon.Warning,
                                           MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes)
                {
                    //删除当前选中的‘客房出租历史记录’
                    客房出租历史记录BindingSource.RemoveCurrent();
                    //删除关联的‘客房收租明细’
                    foreach (var o in willBeDeletedList)
                    {
                        context.客房租金明细.DeleteObject(o);
                    }
                }
            }
        }
Beispiel #22
0
 public 客房Form(客房 kf)
 {
     InitializeComponent();
     isNew   = false;
     this.kf = kf;
 }
 public 客房出租Form(客房 kf)
 {
     InitializeComponent();
     this.kf = kf;
 }
 public 客房收租Form(Guid kfID)
 {
     InitializeComponent();
     this.kf     = context.客房.FirstOrDefault(m => m.ID == kfID);
     IsFirstLoad = true;
 }
Beispiel #25
0
 public 客房Form(客房 kf)
 {
     InitializeComponent();
     isNew   = false;
     this.kf = context.客房.FirstOrDefault(m => m.ID == kf.ID);
 }