private void btnOK_Click(object sender, EventArgs e) { uC客房详细1.客房BindingSource.EndEdit(); //特殊校验: 必须有租户,且租户姓名、身份证号必须和以前一致。 if (kf.租户 != history.租户 || kf.身份证号 != history.身份证号) { KryptonMessageBox.Show("【续租】时,租户姓名、身份证号必须和之前协议相同。", "数据校验失败"); return; } //协议时间必须连续 if (kf.期始.Value.Date != history.期止.AddDays(1).Date) { KryptonMessageBox.Show(string.Format("【续租】时,协议时间必须和之前协议时间连续。\r\n(上次协议期止时间为{0})", history.期止.ToShortDateString()), "数据校验失败"); return; } string check = kf.CheckRules(); if (!string.IsNullOrEmpty(check)) { KryptonMessageBox.Show(check, "数据校验失败"); return; } //此时加入新的【客房出租历史记录】对象 context.客房出租历史记录.AddObject(history); string msg; if (Helper.saveData(context, kf, out msg)) { KryptonMessageBox.Show(msg, "成功续租客房"); if (this.Owner is Main) { (this.Owner as Main).RefreshAndLocateTree(kf);//刷新TreeView,并定位到kf节点。 } Close(); } else { KryptonMessageBox.Show(msg, "失败"); } }
private void btnOK_Click(object sender, EventArgs e) { uC客房详细1.客房BindingSource.EndEdit(); //特殊校验: 必须有租户 if (string.IsNullOrEmpty(kf.租户)) { KryptonMessageBox.Show("请填写租户姓名!", "数据校验失败"); return; } string check = kf.CheckRules(); if (!string.IsNullOrEmpty(check)) { KryptonMessageBox.Show(check, "数据校验失败"); return; } if (Main.context.ObjectStateManager.GetObjectStateEntry(kf).State == EntityState.Unchanged) { Close(); //如果编辑状态下,未做任何修改,则直接退出 } else { string msg; if (Helper.saveData(kf, out msg)) { DialogResult = DialogResult.OK;//传出成功标志,主界面会提示是否马上进行首期收租。 KryptonMessageBox.Show(msg, "成功出租客房"); if (this.Owner is Main) { (this.Owner as Main).RefreshAndLocateTree(kf);//刷新TreeView,并定位到kf节点。 } Close(); } else { KryptonMessageBox.Show(msg, "失败"); } } }
private void btnOK_Click(object sender, EventArgs e) { uC客房详细1.客房BindingSource.EndEdit(); string check = kf.CheckRules(); if (!string.IsNullOrEmpty(check)) { KryptonMessageBox.Show(check, "数据校验失败"); return; } if (isNew)//新增 { string msg; if (Helper.saveData(context, kf, out msg)) { KryptonMessageBox.Show(msg, "成功新增客房"); if (this.Owner is Main) { (this.Owner as Main).RefreshAndLocateTree(kf);//刷新TreeView,并定位到kf节点。 } Close(); } else { KryptonMessageBox.Show(msg, "失败"); } } else//编辑 { if (context.ObjectStateManager.GetObjectStateEntry(kf).State == EntityState.Unchanged) { Close(); //如果编辑状态下,未做任何修改,则直接退出 } else { //-----如果客房租户名或身份证变更,那么需同时更改[客房出租历史记录]里相关项。(判断同一个租户的关键依据<租户有可能同名同姓>)---------- var kfModifies = context.ObjectStateManager.GetObjectStateEntries(EntityState.Modified).First(m => m.Entity.Equals(kf)); string origin租户 = null; string origin身份证号 = null; if (kfModifies.GetModifiedProperties().Contains("租户")) { origin租户 = kfModifies.OriginalValues["租户"].ToString(); } if (kfModifies.GetModifiedProperties().Contains("身份证号")) { origin身份证号 = kfModifies.OriginalValues["身份证号"].ToString(); } if (origin租户 != null || origin身份证号 != null) //客房租户名或身份证有变动 { if (origin租户 == null) //租户未更改 { origin租户 = kf.租户; } if (origin身份证号 == null) //身份证号未更改 { origin身份证号 = kf.身份证号; } //通过origin值查询历史记录,看有无此租户对应记录 foreach (var history in kf.客房出租历史记录.Where(m => m.租户 == origin租户 && m.身份证号 == origin身份证号)) { history.身份证号 = kf.身份证号; history.租户 = kf.租户; } } string msg; if (Helper.saveData(context, kf, out msg)) { KryptonMessageBox.Show(msg, "成功编辑客房"); if (this.Owner is Main) { (this.Owner as Main).RefreshAndLocateTree(kf);//刷新TreeView,并定位到kf节点。 } Close(); } else { KryptonMessageBox.Show(msg, "失败"); } } } }