private void btChangeWaterMeterTypeID_Click(object sender, EventArgs e) { if (mes.ShowQ("变更后该记录将置为未抄!\n确定要将用户'" + strWaterUserName + "'的水表编号为'" + strSBH + "'的用水性质信息变更吗?") != DialogResult.OK) { return; } try { MODELreadMeterRecord MODELreadMeterRecord = new MODELreadMeterRecord(); if (cmbWaterMeterTypeNew.SelectedValue == null || cmbWaterMeterTypeNew.SelectedValue == DBNull.Value) { mes.Show("用水性质不能为空!"); return; } else { DataRow[] drWaterMeterType = dtWaterMeterType.Select("waterMeterTypeId='" + cmbWaterMeterTypeNew.SelectedValue.ToString() + "'"); if (drWaterMeterType.Length > 0) { object objTrapePrice = drWaterMeterType[0]["trapezoidPrice"]; if (objTrapePrice != null && objTrapePrice != DBNull.Value) { MODELreadMeterRecord.trapezoidPrice = objTrapePrice.ToString(); } string[] strTrapePrice = objTrapePrice.ToString().Split('|'); if (strTrapePrice[0].Split(':').Length > 0) { if (Information.IsNumeric(strTrapePrice[0].Split(':')[1])) { MODELreadMeterRecord.avePrice = Convert.ToDecimal(strTrapePrice[0].Split(':')[1]); } } object objExtraFee = drWaterMeterType[0]["extraCharge"]; if (objExtraFee != null && objExtraFee != DBNull.Value) { MODELreadMeterRecord.extraCharge = objExtraFee.ToString(); string[] strAllExtraFee = objExtraFee.ToString().Split('|'); for (int j = 0; j < strAllExtraFee.Length; j++) { string[] strSingleExtraFee = strAllExtraFee[j].Split(':'); if (strSingleExtraFee[0].Contains("F")) { string strNum = strSingleExtraFee[0].Substring(1, 1); if (strNum == "1") { if (Information.IsNumeric(strSingleExtraFee[1])) { MODELreadMeterRecord.extraChargePrice1 = Convert.ToDecimal(strSingleExtraFee[1]); } } if (strNum == "2") { if (Information.IsNumeric(strSingleExtraFee[1])) { MODELreadMeterRecord.extraChargePrice2 = Convert.ToDecimal(strSingleExtraFee[1]); } } } } } } else { mes.Show("获取用水单价失败,无法完成修改!"); return; } } MODELreadMeterRecord.readMeterRecordId = strRecordID; MODELreadMeterRecord.waterMeterTypeId = cmbWaterMeterTypeNew.SelectedValue.ToString(); MODELreadMeterRecord.waterMeterTypeName = cmbWaterMeterTypeNew.Text; MODELreadMeterRecord.MEMO = "用水性质变更:" + strWaterMeterTypeName + "→" + cmbWaterMeterTypeNew.Text + ";"; if (BLLreadMeterRecord.UpdateHandSetWaterMeterType(MODELreadMeterRecord)) { string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strDBFPath + ";Extended Properties=dBASE IV;User ID=Admin;Password=;"; string strSQLUpdateWaterMeterType = "UPDATE INTERDB SET yslbdm='" + MODELreadMeterRecord.waterMeterTypeId + "'," + "yslb='" + MODELreadMeterRecord.waterMeterTypeName + "'," + "szydj=" + MODELreadMeterRecord.avePrice + "," + "fjfdj=" + MODELreadMeterRecord.extraChargePrice1 + "," + "fjfdj1=" + MODELreadMeterRecord.extraChargePrice2 + " WHERE recordid='" + strRecordID + "'"; int intRow = 0; try { intRow = ExcuteSQL(strSQLUpdateWaterMeterType, connectString); } catch (Exception ex) { mes.Show("修改抄表机数据库失败,请确认数据文件是否存在"); log.Write(ex.ToString(), MsgType.Error); return; } if (intRow > 0) { frm.dgList.CurrentRow.Cells["yslbdm"].Value = MODELreadMeterRecord.waterMeterTypeId; frm.dgList.CurrentRow.Cells["yslb"].Value = MODELreadMeterRecord.waterMeterTypeName; frm.dgList.CurrentRow.Cells["szydj"].Value = MODELreadMeterRecord.avePrice; frm.dgList.CurrentRow.Cells["fjfdj"].Value = MODELreadMeterRecord.extraChargePrice1; frm.dgList.CurrentRow.Cells["fjfdj1"].Value = MODELreadMeterRecord.extraChargePrice2; string strSQLUpdateSetUnRead = "UPDATE INTERDB SET CBBZ='0',DYBZ='0' WHERE recordid='" + strRecordID + "'"; try { ExcuteSQL(strSQLUpdateSetUnRead, connectString); MODELOPERATORLOG MODELOPERATORLOG = new MODELOPERATORLOG(); MODELOPERATORLOG.LOGCONTENT = "修改用水性质:" + strWaterUserName + "'-'" + strSBH + ":" + strWaterMeterTypeName + "→" + cmbWaterMeterTypeNew.Text; MODELOPERATORLOG.LOGTYPE = "3"; //1代表用户 2代表水表 3抄表机 MODELOPERATORLOG.METERREADINGID = strMeterReadingID; MODELOPERATORLOG.OPERATORID = strLogID; MODELOPERATORLOG.OPERATORNAME = strUserName; BLLOPERATORLOG.Insert(MODELOPERATORLOG); } catch (Exception ex) { mes.Show("置为未抄失败,请确认抄表机数据文件是否存在"); log.Write(ex.ToString(), MsgType.Error); return; } if (mes.ShowQ("是否要继续更改水表的用水性质?") != DialogResult.OK) { return; } MODELwaterMeter MODELwaterMeter = new MODELwaterMeter(); MODELwaterMeter.waterMeterId = strSBH; MODELwaterMeter.waterMeterTypeId = MODELreadMeterRecord.waterMeterTypeId; if (BLLwaterMeter.UpdateWaterMeterType(MODELwaterMeter)) { MODELOPERATORLOG MODELOPERATORLOG = new MODELOPERATORLOG(); MODELOPERATORLOG.LOGCONTENT = "修改水表基础表用水性质:" + strWaterUserName + "'-'" + strSBH + ":" + strWaterMeterTypeName + "→" + cmbWaterMeterTypeNew.Text; MODELOPERATORLOG.LOGTYPE = "3"; //1代表用户 2代表水表 3抄表机 MODELOPERATORLOG.METERREADINGID = strMeterReadingID; MODELOPERATORLOG.OPERATORID = strLogID; MODELOPERATORLOG.OPERATORNAME = strUserName; BLLOPERATORLOG.Insert(MODELOPERATORLOG); mes.Show("水表编号为'" + strSBH + "'的用水性质更改成功!"); } } else { mes.Show("修改抄表机数据文件失败,请确认抄表记录是否存在"); return; } } } catch (Exception ex) { mes.Show(ex.Message); log.Write(ex.ToString(), MsgType.Error); } }
private void btOK_Click(object sender, EventArgs e) { if (mes.ShowQ("变更后该记录将置为未抄!\n确定要将用户'" + strWaterUserName + "'的水表编号为'" + strSBH + "'的水表初始读数变更吗?") != DialogResult.OK) { return; } if (!Information.IsNumeric(txtSYDSNew.Text)) { mes.Show("上月读数只能为数字!"); txtSYDSNew.Focus(); return; } else { if ((int)Math.Ceiling(Convert.ToDouble(txtSYDSNew.Text)) != Convert.ToInt64(txtSYDSNew.Text)) { mes.Show("上月读数只能为整数!"); txtSYDSNew.Focus(); return; } } try { MODELreadMeterRecord MODELreadMeterRecord = new MODELreadMeterRecord(); MODELreadMeterRecord.readMeterRecordId = strRecordID; MODELreadMeterRecord.waterMeterLastNumber = Convert.ToInt32(txtSYDSNew.Text); MODELreadMeterRecord.MEMO = "初始读数变更:" + strSYDS + "→" + txtSYDSNew.Text + ";"; if (BLLreadMeterRecord.UpdateHandSetWaterMeterLastNumber(MODELreadMeterRecord)) { string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strDBFPath + ";Extended Properties=dBASE IV;User ID=Admin;Password=;"; string strSQLUpdateWaterMeterType = "UPDATE INTERDB SET sy1syds=" + MODELreadMeterRecord.waterMeterLastNumber + " WHERE cbsx='" + strRecordID + "'"; int intRow = 0; try { intRow = ExcuteSQL(strSQLUpdateWaterMeterType, connectString); } catch (Exception ex) { mes.Show("修改抄表机数据库失败,请确认数据文件是否存在"); log.Write(ex.ToString(), MsgType.Error); return; } if (intRow > 0) { try { frm.dgList.CurrentRow.Cells["syds"].Value = MODELreadMeterRecord.waterMeterLastNumber; string strSQLUpdateSetUnRead = "UPDATE INTERDB SET CBBZ='0',DYBZ='0' WHERE cbsx='" + strRecordID + "'"; ExcuteSQL(strSQLUpdateSetUnRead, connectString); MODELOPERATORLOG MODELOPERATORLOG = new MODELOPERATORLOG(); MODELOPERATORLOG.LOGCONTENT = "修改初始读数:" + strWaterUserName + "'-'" + strSBH + ":" + strSYDS + "→" + txtSYDSNew.Text; MODELOPERATORLOG.METERREADINGID = strMeterReadingID; MODELOPERATORLOG.LOGTYPE = "3"; //1代表用户 2代表水表 3抄表机 MODELOPERATORLOG.OPERATORID = strLogID; MODELOPERATORLOG.OPERATORNAME = strUserName; BLLOPERATORLOG.Insert(MODELOPERATORLOG); } catch (Exception ex) { mes.Show("置为未抄失败,请确认抄表机数据文件是否存在"); log.Write(ex.ToString(), MsgType.Error); return; } } else { mes.Show("修改抄表机数据库失败,请确认数据文件中抄表记录是否存在!"); return; } } else { mes.Show("修改抄表表记录失败,请确认抄表表记录是否存在!"); return; } } catch (Exception ex) { mes.Show(ex.Message); log.Write(ex.ToString(), MsgType.Error); } }
private void toolSave_Click(object sender, EventArgs e) { dgWaterList.EndEdit(); int intCheckedCount = 0; for (int i = 0; i < dgWaterList.Rows.Count; i++) { DataGridViewCheckBoxCell chkcell = dgWaterList.Rows[i].Cells["select"] as DataGridViewCheckBoxCell; if (chkcell.FormattedValue.ToString() == "True") { intCheckedCount = intCheckedCount + 1; } } if (intCheckedCount == 0) { return; } for (int i = dgWaterList.Rows.Count - 1; i >= 0; i--) { DataGridViewCheckBoxCell chkcell = dgWaterList.Rows[i].Cells["select"] as DataGridViewCheckBoxCell; if (chkcell.FormattedValue.ToString() == "True") { object objChargeState = dgWaterList.Rows[i].Cells["chargeState"].Value; if (objChargeState != null && objChargeState != DBNull.Value) { if (objChargeState.ToString() == "已收费" || objChargeState.ToString() == "已预收") { mes.Show("第 " + (i + 1).ToString() + " 行已收水费,无法反审核!"); return; } } MODELreadMeterRecord MODELreadMeterRecord = new MODELreadMeterRecord(); MODELreadMeterRecord.checkState = "0"; MODELreadMeterRecord.readMeterRecordId = dgWaterList.Rows[i].Cells["readMeterRecordId"].Value.ToString(); object objWaterMeterRead = dgWaterList.Rows[i].Cells["waterUserId"].Value; if (objWaterMeterRead != null && objWaterMeterRead != DBNull.Value) { MODELreadMeterRecord.waterUserId = objWaterMeterRead.ToString(); } #region 获取累计欠费及前期余额 decimal decLJQF = 0, decQQYE = 0; if (MODELreadMeterRecord.waterUserId != "") { //获取排除本次要反审核的记录外的累计欠费 string strLJQF = "SELECT SUM(totalCharge) AS TOTALFEE FROM readMeterRecord WHERE waterUserId='" + MODELreadMeterRecord.waterUserId + "'" + " AND checkState='1' AND chargeState<>'3' AND totalCharge>0 AND readMeterRecordId<>'" + MODELreadMeterRecord.readMeterRecordId + "'"; DataTable dtLJQF = BLLreadMeterRecord.QueryBySQL(strLJQF); if (dtLJQF.Rows.Count > 0) { if (Information.IsNumeric(dtLJQF.Rows[0]["TOTALFEE"])) { decLJQF = Convert.ToDecimal(dtLJQF.Rows[0]["TOTALFEE"]); } } //获取前期余额 string strQQYE = "SELECT * FROM V_WATERUSERAREARAGE WHERE waterUserId='" + MODELreadMeterRecord.waterUserId + "'"; DataTable dtQQYE = BLLreadMeterRecord.QueryBySQL(strQQYE); if (dtQQYE.Rows.Count > 0) { if (Information.IsNumeric(dtQQYE.Rows[0]["prestore"])) { decQQYE = Convert.ToDecimal(dtQQYE.Rows[0]["prestore"]); } } } MODELreadMeterRecord.WATERUSERJSYE = decQQYE - decLJQF; MODELreadMeterRecord.WATERUSERQQYE = decQQYE; MODELreadMeterRecord.WATERUSERLJQF = decLJQF; #endregion if (BLLreadMeterRecord.UpdateCheckStateAndArrearage(MODELreadMeterRecord)) { dgWaterList.Rows.Remove(dgWaterList.Rows[i]); } else { mes.Show("第 " + (i + 1).ToString() + " 行抄表反审核状态修改失败!"); return; } } } TreeViewEventArgs ex = new TreeViewEventArgs(trMeterReading.SelectedNode, TreeViewAction.ByMouse); trMeterReading_AfterSelect(null, ex); //ckBox.Checked = false; }
private void btReceiptPrint_Click(object sender, EventArgs e) { //获取连打起始号及终止号 int intStartRow = 0, intEndRow = dgList.Rows.Count - 1; if (!Information.IsNumeric(txtStartRow.Text)) { mes.Show("请输入连打起始行号!"); txtStartRow.Focus(); return; } else { if (Convert.ToInt32(txtStartRow.Text) < 1) { mes.Show("连打起始行号不能小于1!"); txtStartRow.Focus(); return; } intStartRow = Convert.ToInt32(txtStartRow.Text); } if (Information.IsNumeric(txtEndRow.Text)) { if (Convert.ToInt32(txtStartRow.Text) > Convert.ToInt32(txtEndRow.Text)) { mes.Show("连打起始行号不能大于终止行号!"); txtEndRow.Focus(); return; } if (Convert.ToInt32(txtEndRow.Text) < dgList.Rows.Count) { intEndRow = Convert.ToInt32(txtEndRow.Text); } } if (mes.ShowQ("确定要打印第 " + intStartRow.ToString() + " 至第 " + intEndRow.ToString() + " 行的通知单信息吗?") != DialogResult.OK) { return; } for (int i = intStartRow - 1; i < intEndRow; i++) { //获取抄表记录ID string strreadMeterRecordId = ""; //存储结算余额,如果结算余额大于0,打印模板则隐藏欠费提醒,否则显示欠费提醒。 decimal decJSJE = 0; string strWaterUserID = ""; object objWaterUserID = dtUserList.Rows[i]["waterUserId"]; if (objWaterUserID != null && objWaterUserID != DBNull.Value) { strWaterUserID = objWaterUserID.ToString(); } DataTable dtUserListTemp = dtUserList.Copy(); DataView dvWaterUserID = dtUserListTemp.DefaultView; dvWaterUserID.RowFilter = "waterUserId='" + strWaterUserID + "'"; DataTable dtWaterUserID = dvWaterUserID.ToTable(); int intCurrentPage = 0, intSumPageNO = dtWaterUserID.Rows.Count; if (i == intStartRow - 1 && intSumPageNO > 1) { //如果用户数量大约1,判断第一个readMeterRecordId的rowindex和当前选择的起始rowindex是否一致,不一致则不允许打印。否则会造成打印出问题 int intFirstStartRow = 0; string strStartRowID = "", strFirstStartRowID = ""; object objreadMeterRecordId = dtUserList.Rows[i]["readMeterRecordId"]; if (objreadMeterRecordId != null && objreadMeterRecordId != DBNull.Value) { strStartRowID = objreadMeterRecordId.ToString(); } for (int k = 0; k < dtUserList.Rows.Count; k++) { objreadMeterRecordId = dtUserList.Rows[k]["readMeterRecordId"]; if (objreadMeterRecordId != null && objreadMeterRecordId != DBNull.Value) { strFirstStartRowID = objreadMeterRecordId.ToString(); if (strStartRowID == strFirstStartRowID) { intFirstStartRow = k; break; } } } if (i > intFirstStartRow) { mes.Show("请从该用户第一页通知单开始打印!"); return; } } for (int j = 0; j < intSumPageNO; j++) { object objreadMeterRecordId = dtWaterUserID.Rows[j]["readMeterRecordId"]; if (objreadMeterRecordId != null && objreadMeterRecordId != DBNull.Value) { strreadMeterRecordId = objreadMeterRecordId.ToString(); object objJSJE = dtWaterUserID.Rows[j]["WATERUSERJSYE"]; if (Information.IsNumeric(objJSJE)) { decJSJE = Convert.ToDecimal(objJSJE); } } else { mes.Show("第'" + (i + j + 1).ToString() + "行抄表ID获取失败,无法执行打印操作!"); return; } try { //存储收费表,打印收据用 DataTable dtRecord = dtWaterUserID.Clone(); dtRecord.ImportRow(dtWaterUserID.Rows[j]); MODELreadMeterRecord MODELreadMeterRecord = new MODELreadMeterRecord(); MODELreadMeterRecord.INFORMNO = txtInvoiceNO.Text.PadLeft(8, '0'); MODELreadMeterRecord.PRINTWORKERID = strLogID; MODELreadMeterRecord.PRINTWORKERNAME = strUserName; MODELreadMeterRecord.readMeterRecordId = strreadMeterRecordId; if (BLLreadMeterRecord.UpdateInformNO(MODELreadMeterRecord)) { intCurrentPage = j + 1; //如果是最后一张单据显示用户余额,否则不显示余额 if (intCurrentPage < intSumPageNO) { dtRecord.Rows[0]["WATERUSERJSYE"] = DBNull.Value; } dtUserList.Rows[i + j]["INFORMNO"] = MODELreadMeterRecord.INFORMNO; //每张通知单添加页号,方便用户区分最终的用户余额 DataColumn dcPage = new DataColumn("PAGESUMMERY", typeof(string)); dtRecord.Columns.Add(dcPage); dtRecord.Rows[0]["PAGESUMMERY"] = "第" + intCurrentPage + "/" + intSumPageNO + "页"; #region DataSet ds = new DataSet(); dtRecord.TableName = "水费通知单模板"; ds.Tables.Add(dtRecord); FastReport.Report report1 = new FastReport.Report(); try { // load the existing report report1.Load(Application.StartupPath + @"\PRINTModel\收据模板\水费通知单模板.frx"); // register the dataset report1.RegisterData(ds); report1.GetDataSource("水费通知单模板").Enabled = true; if (decJSJE < 0) { (report1.FindObject("txtQFSM") as FastReport.TextObject).Visible = true; } //report1.Show(); report1.PrintSettings.ShowDialog = false; report1.Prepare(); report1.Print(); txtInvoiceNO.Text = (Convert.ToInt32(txtInvoiceNO.Text) + 1).ToString().PadLeft(8, '0'); } catch (Exception exx) { mes.Show(exx.Message); log.Write(exx.ToString(), MsgType.Error); return; } finally { // free resources used by report report1.Dispose(); } #endregion } } catch (Exception ex) { mes.Show("第" + (i + 1).ToString() + "行更新通知单号失败,原因:" + ex.Message); log.Write(ex.ToString(), MsgType.Error); return; } } i = i + intSumPageNO - 1;//随着用户数量大约1的打印,计数器增加; } }
private void btChange_Click(object sender, EventArgs e) { try { if (strRecordID.Trim() == "") { mes.Show("抄表记录ID为空,请重新查询抄表记录后再修改用户名!"); return; } if (txtWaterUserNameNew.Text.Trim() == "") { mes.Show("请输入新用户名!"); txtWaterUserNameNew.Focus(); return; } if (mes.ShowQ("确定要变更'" + strWaterUserName + "'的用户名吗?") != DialogResult.OK) { return; } MODELreadMeterRecord MODELreadMeterRecord = new MODELreadMeterRecord(); MODELreadMeterRecord.waterUserName = txtWaterUserNameNew.Text; MODELreadMeterRecord.readMeterRecordId = strRecordID; if (BLLreadMeterRecord.UpdateHandSetWaterUserName(MODELreadMeterRecord)) { try { MODELWaterUser MODELWaterUser = new MODELWaterUser(); MODELWaterUser.waterUserId = strWaterUserID; MODELWaterUser.waterUserName = txtWaterUserNameNew.Text; if (BLLwaterUser.UpdateUserName(MODELWaterUser)) { frmWaterMeterRead.dgWaterList.CurrentRow.Cells["waterUserName"].Value = txtWaterUserNameNew.Text; MODELOPERATORLOG MODELOPERATORLOG = new MODELOPERATORLOG(); MODELOPERATORLOG.METERREADINGID = strMeterReadingID; MODELOPERATORLOG.LOGCONTENT = "变更用户名:" + MODELWaterUser.waterUserId + "-" + txtWaterUserName.Text + "→" + MODELWaterUser.waterUserName; MODELOPERATORLOG.LOGTYPE = "1"; //1代表用户 2代表水表 MODELOPERATORLOG.OPERATORID = strLogID; MODELOPERATORLOG.OPERATORNAME = strUserName; BLLOPERATORLOG.Insert(MODELOPERATORLOG); mes.Show("户名变更成功!"); btChange.Enabled = false; } } catch (Exception) { mes.Show("户名基础信息变更失败,请重试!"); return; } } else { mes.Show("抄表记录户名变更失败,请重试!"); return; } } catch (Exception ex) { mes.Show("抄表记录户名变更失败,原因:" + ex.ToString()); log.Write(ex.ToString(), MsgType.Error); return; } }
private void toolSave_Click(object sender, EventArgs e) { dgWaterList.EndEdit(); int intCheckedCount = 0; for (int i = 0; i < dgWaterList.Rows.Count; i++) { DataGridViewCheckBoxCell chkcell = dgWaterList.Rows[i].Cells["select"] as DataGridViewCheckBoxCell; if (chkcell.FormattedValue.ToString() == "True") { intCheckedCount = intCheckedCount + 1; } } if (intCheckedCount == 0) { return; } for (int i = dgWaterList.Rows.Count - 1; i >= 0; i--) { DataGridViewCheckBoxCell chkcell = dgWaterList.Rows[i].Cells["select"] as DataGridViewCheckBoxCell; if (chkcell.FormattedValue.ToString() == "True") { MODELreadMeterRecord MODELreadMeterRecord = new MODELreadMeterRecord(); MODELreadMeterRecord.checkState = "1"; MODELreadMeterRecord.checkDateTime = mes.GetDatetimeNow(); MODELreadMeterRecord.checker = AppDomain.CurrentDomain.GetData("USERNAME").ToString(); MODELreadMeterRecord.readMeterRecordId = dgWaterList.Rows[i].Cells["readMeterRecordId"].Value.ToString(); object objWaterMeterRead = dgWaterList.Rows[i].Cells["waterUserId"].Value; if (objWaterMeterRead != null && objWaterMeterRead != DBNull.Value) { MODELreadMeterRecord.waterUserId = objWaterMeterRead.ToString(); } #region 获取累计欠费及前期余额 decimal decLJQF = 0, decQQYE = 0, decBCYS = 0; objWaterMeterRead = dgWaterList.Rows[i].Cells["totalCharge"].Value; if (Information.IsNumeric(objWaterMeterRead)) { decBCYS = Convert.ToDecimal(objWaterMeterRead); } if (MODELreadMeterRecord.waterUserId != "") { //获取累计欠费 string strLJQF = "SELECT * FROM V_WATERUSERAREARAGE WHERE waterUserId='" + MODELreadMeterRecord.waterUserId + "'"; DataTable dtLJQF = BLLreadMeterRecord.QueryBySQL(strLJQF); if (dtLJQF.Rows.Count > 0) { if (Information.IsNumeric(dtLJQF.Rows[0]["TOTALFEE"])) { decLJQF = Convert.ToDecimal(dtLJQF.Rows[0]["TOTALFEE"]); } if (Information.IsNumeric(dtLJQF.Rows[0]["prestore"])) { decQQYE = Convert.ToDecimal(dtLJQF.Rows[0]["prestore"]); } } } MODELreadMeterRecord.WATERUSERJSYE = decQQYE - decLJQF - decBCYS; MODELreadMeterRecord.WATERUSERQQYE = decQQYE; MODELreadMeterRecord.WATERUSERLJQF = decLJQF + decBCYS; #endregion if (BLLreadMeterRecord.UpdateCheckStateAndArrearage(MODELreadMeterRecord)) { dgWaterList.Rows.Remove(dgWaterList.Rows[i]); } else { mes.Show("第 " + (i + 1).ToString() + " 行抄表审核状态修改失败!"); return; } } } TreeViewEventArgs ex = new TreeViewEventArgs(trMeterReading.SelectedNode, TreeViewAction.ByMouse); trMeterReading_AfterSelect(null, ex); }
private void bgWork_DoWork(object sender, DoWorkEventArgs e) { try { labProgress.Text = "进度:0/0"; int intAllCount = dtUserList.Rows.Count; prb.Minimum = 0; prb.Maximum = intAllCount; prb.Value = 0; //btCharge.Enabled = false; //获取连打起始号及终止号 int intStartRow = 0, intEndRow = dgWaterUser.Rows.Count; if (!Information.IsNumeric(txtStartRow.Text)) { mes.Show("请输入连打起始行号!"); txtStartRow.Focus(); return; } else { if (Convert.ToInt32(txtStartRow.Text) < 1) { mes.Show("连打起始行号不能小于1!"); txtStartRow.Focus(); return; } intStartRow = Convert.ToInt32(txtStartRow.Text); } if (Information.IsNumeric(txtEndRow.Text)) { if (Convert.ToInt32(txtStartRow.Text) > Convert.ToInt32(txtEndRow.Text)) { mes.Show("连打起始行号不能大于终止行号!"); txtEndRow.Focus(); return; } if (Convert.ToInt32(txtEndRow.Text) < dgWaterUser.Rows.Count) { intEndRow = Convert.ToInt32(txtEndRow.Text); } } //int intRowNumber=1; //if(Information.IsNumeric(txtStartRow.Text)) // intRowNumber=Convert.ToInt32(txtStartRow.Text); string strMaxInformNO = txtInformNO.Text.PadLeft(8, '0'); for (int i = intStartRow - 1; i < intEndRow; i++) { if (bgWork.CancellationPending) { e.Cancel = true; break; } string strWaterUserName = "", strWaterUserID = "", strWaterUserAddress = "", strMeterReader = "", strMeterReaderTel = ""; object objWaterUserID = dgWaterUser.Rows[i].Cells["waterUserId"].Value; if (objWaterUserID != null && objWaterUserID != DBNull.Value) { strWaterUserID = objWaterUserID.ToString(); object objWaterUserName = dgWaterUser.Rows[i].Cells["waterUserName"].Value; if (objWaterUserName != null && objWaterUserName != DBNull.Value) { strWaterUserName = objWaterUserName.ToString(); } object objWaterUserAddress = dgWaterUser.Rows[i].Cells["waterUserAddress"].Value; if (objWaterUserAddress != null && objWaterUserAddress != DBNull.Value) { strWaterUserAddress = objWaterUserAddress.ToString(); } object objMeterReader = dgWaterUser.Rows[i].Cells["meterReaderID"].Value; if (objMeterReader != null && objMeterReader != DBNull.Value) { DataRow[] dr = dtMeterReader.Select("loginId='" + objMeterReader.ToString() + "'"); if (dr.Length > 0) { objMeterReader = dr[0]["userName"]; if (objMeterReader != null && objMeterReader != DBNull.Value) { strMeterReader = objMeterReader.ToString(); } objMeterReader = dr[0]["telePhoneNO"]; if (objMeterReader != null && objMeterReader != DBNull.Value) { strMeterReaderTel = objMeterReader.ToString(); } } } //获取用户余额 decimal decWaterUserPrestore = 0, decToltalFee = 0, decArearage = 0; object objWaterUserPreStore = BLLwaterUser.GetPrestore(" AND WATERUSERID='" + strWaterUserID + "'"); if (Information.IsNumeric(objWaterUserPreStore)) { decWaterUserPrestore = Convert.ToDecimal(objWaterUserPreStore); } //获取用户水表欠费信息 string strFilter = " AND totalChargeEND>0 AND waterUserId='" + objWaterUserID.ToString() + "' AND chargeState=1 ORDER BY readMeterRecordYear,readMeterRecordMonth"; DataTable dtYSDetail = BLLreadMeterRecord.QueryYSDetailByWaterMeter(strFilter); object objSumArearage = dtYSDetail.Compute("SUM(totalCharge)", ""); if (Information.IsNumeric(objSumArearage)) { decToltalFee = Convert.ToDecimal(objSumArearage); } decArearage = decWaterUserPrestore - decToltalFee; DataTable dtReadMeterRecord = BLLreadMeterRecord.Query(" AND waterUserId='" + objWaterUserID.ToString() + "' AND DATEDIFF(MONTH,readMeterRecordYearAndMonth,'" + dtpMonthSearch.Value + "')=0"); decimal decJianXian = 0; if (Information.IsNumeric(labCondition.Text)) { decJianXian = Convert.ToDecimal(labCondition.Text); } #region 打印通知单 DataSet ds = new DataSet(); DataTable dtYSDetailTemp = dtReadMeterRecord.Copy(); dtYSDetailTemp.TableName = "水费通知单模板"; ds.Tables.Add(dtYSDetailTemp); FastReport.Report report1 = new FastReport.Report(); try { // load the existing report report1.Load(Application.StartupPath + @"\PRINTModel\收据模板\水费通知单模板.frx"); (report1.FindObject("CellWaterUserName") as FastReport.Table.TableCell).Text = strWaterUserName; (report1.FindObject("CellWaterUserNO") as FastReport.Table.TableCell).Text = strWaterUserID; (report1.FindObject("CellWaterUserAddress") as FastReport.Table.TableCell).Text = strWaterUserAddress; (report1.FindObject("txtQQYE") as FastReport.TextObject).Text = "前期余额:" + decWaterUserPrestore.ToString("F2") + " 水费合计:" + decToltalFee.ToString("F2"); (report1.FindObject("txtQFHJ") as FastReport.TextObject).Text = "用户余额: " + decArearage.ToString("F2"); (report1.FindObject("txtMeterReader") as FastReport.TextObject).Text = strMeterReader; (report1.FindObject("txtMeterReaderTel") as FastReport.TextObject).Text = strMeterReaderTel; if (decJianXian == 0) { if (decArearage < 0) { (report1.FindObject("txtTip") as FastReport.TextObject).Text = "您已欠费,请及时交纳水费"; } } else if (decArearage >= 0 && decArearage <= decJianXian) { (report1.FindObject("txtTip") as FastReport.TextObject).Text = "您的余额已不足,请您及时交费"; } else if (decArearage < 0) { (report1.FindObject("txtTip") as FastReport.TextObject).Text = "您已欠费,请您及时交纳水费"; } (report1.FindObject("txtReceiptNO") as FastReport.TextObject).Text = "NO." + strMaxInformNO; // register the dataset report1.RegisterData(ds); report1.GetDataSource("水费通知单模板").Enabled = true; //report1.Show(); report1.PrintSettings.ShowDialog = false; report1.Prepare(); report1.Print(); try { for (int j = 0; j < dtReadMeterRecord.Rows.Count; j++) { object objID = dtReadMeterRecord.Rows[j]["readMeterRecordId"]; if (objID != null && objID != DBNull.Value) { MODELreadMeterRecord MODELreadMeterRecord = new MODELreadMeterRecord(); MODELreadMeterRecord.WATERUSERQQYEINFORM = decWaterUserPrestore; MODELreadMeterRecord.WATERUSERJSYEINFORM = decArearage; MODELreadMeterRecord.INFORMNO = strMaxInformNO; MODELreadMeterRecord.INFORMPRINTSIGN = "1"; MODELreadMeterRecord.PRINTWORKERID = strLogID; MODELreadMeterRecord.PRINTWORKERNAME = strUserName; MODELreadMeterRecord.readMeterRecordId = objID.ToString(); if (!BLLreadMeterRecord.UpdateInformPrintSign(MODELreadMeterRecord)) { mes.Show("更新用户'" + strWaterUserID + "-" + strWaterUserName + "'的通知单失打印标志失败,请重打通知单!"); return; } } } } catch (Exception ex) { mes.Show("更新用户'" + strWaterUserID + "-" + strWaterUserName + "'的通知单失打印标志失败,原因:" + ex.Message); log.Write(ex.ToString(), MsgType.Error); return; } strMaxInformNO = (Convert.ToInt32(strMaxInformNO) + 1).ToString().PadLeft(8, '0'); } catch (Exception exx) { mes.Show(exx.Message); log.Write(exx.ToString(), MsgType.Error); return; } finally { // free resources used by report report1.Dispose(); } #endregion } else { mes.Show("第" + (i + 1).ToString() + "行用户ID为空,无法获取金额,请查询后重试!"); return; } prb.Value = i + 1; labProgress.Text = "进度:" + (i + 1) + "/" + intAllCount; } txtInformNO.Text = strMaxInformNO; } catch (Exception ex) { mes.Show(ex.Message); log.Write(ex.ToString(), MsgType.Error); } }
private void btChange_Click(object sender, EventArgs e) { try { if (!Information.IsNumeric(txtWaterMeterEndNumber.Text.Trim())) { mes.Show("变更后的读数只能为数字!"); txtWaterMeterEndNumber.Focus(); return; } if (txtMemo.Text.Trim() == "") { mes.Show("请输入变更原因!"); txtMemo.Focus(); return; } if (mes.ShowQ("表底数变更前请将所有费用收取完毕!\n确定要变更'" + strWaterUserName + "-" + strWaterMeterID + "'的表底数吗?") != DialogResult.OK) { return; } DateTime dtNow = mes.GetDatetimeNow(); MODELreadMeterRecord MODELreadMeterRecord = new MODELreadMeterRecord(); MODELreadMeterRecord.waterUserName = strWaterUserName; MODELreadMeterRecord.waterUserNO = strWaterUserNO; MODELreadMeterRecord.waterUserId = strWaterUserNO; MODELreadMeterRecord.waterUserAddress = strWaterUserAddress; MODELreadMeterRecord.readMeterRecordIdLast = strLastRecordID; MODELreadMeterRecord.lastNumberYearMonth = dtNow.ToString("yyyyMM"); MODELreadMeterRecord.initialReadMeterMesDateTime = dtNow; MODELreadMeterRecord.waterMeterId = strWaterMeterID; MODELreadMeterRecord.waterMeterNo = strWaterMeterID; if (Information.IsNumeric(strWaterMeterLastNumber)) { MODELreadMeterRecord.waterMeterLastNumber = Convert.ToInt32(strWaterMeterLastNumber); } MODELreadMeterRecord.waterMeterEndNumber = Convert.ToInt32(txtWaterMeterEndNumber.Text.Trim()); MODELreadMeterRecord.totalNumber = 0; MODELreadMeterRecord.waterTotalCharge = 0; MODELreadMeterRecord.extraChargePrice1 = 0; MODELreadMeterRecord.extraChargePrice2 = 0; MODELreadMeterRecord.extraChargePrice3 = 0; MODELreadMeterRecord.extraChargePrice4 = 0; MODELreadMeterRecord.extraChargePrice5 = 0; MODELreadMeterRecord.extraChargePrice6 = 0; MODELreadMeterRecord.extraChargePrice7 = 0; MODELreadMeterRecord.extraChargePrice8 = 0; MODELreadMeterRecord.extraCharge1 = 0; MODELreadMeterRecord.extraCharge2 = 0; MODELreadMeterRecord.extraCharge3 = 0; MODELreadMeterRecord.extraCharge4 = 0; MODELreadMeterRecord.extraCharge5 = 0; MODELreadMeterRecord.extraCharge6 = 0; MODELreadMeterRecord.extraCharge7 = 0; MODELreadMeterRecord.extraCharge8 = 0; MODELreadMeterRecord.extraTotalCharge = 0; MODELreadMeterRecord.totalCharge = 0; MODELreadMeterRecord.WATERFIXVALUE = 0; MODELreadMeterRecord.readMeterRecordYear = Convert.ToInt16(strRecordYear); MODELreadMeterRecord.readMeterRecordMonth = Convert.ToInt16(strRecordMonth); string strYearAndMonth = strRecordYear + "-" + strRecordMonth + "-01"; if (Information.IsDate(strYearAndMonth)) { MODELreadMeterRecord.readMeterRecordYearAndMonth = Convert.ToDateTime(strYearAndMonth); } else { MODELreadMeterRecord.readMeterRecordYearAndMonth = dtNow; } //变更记录将抄表时间置为空 //MODELreadMeterRecord.readMeterRecordDate =null; MODELreadMeterRecord.chargeState = "1"; MODELreadMeterRecord.checkState = "1"; MODELreadMeterRecord.checkDateTime = dtNow; MODELreadMeterRecord.WATERMETERNUMBERCHANGESTATE = "1"; MODELreadMeterRecord.MEMO = txtMemo.Text; //将特殊的用户(按面积均摊或者按月份确定开票名称)存储到memo字段里。备用 MODELreadMeterRecord.readMeterRecordId = GETTABLEID.GetTableID(strLogID, "READMETERRECORD"); if (BLLreadMeterRecord.Insert(MODELreadMeterRecord)) { try { if (BLLreadMeterRecord.UpdateCheckStateChangeNumber(MODELreadMeterRecord)) { mes.Show("表底数变更成功!"); btChange.Enabled = false; MODELOPERATORLOG MODELOPERATORLOG = new MODELOPERATORLOG(); MODELOPERATORLOG.LOGCONTENT = "表底变更:" + MODELreadMeterRecord.waterUserNO + "-" + MODELreadMeterRecord.waterUserName + "-" + MODELreadMeterRecord.waterMeterNo + "," + MODELreadMeterRecord.waterMeterLastNumber + "→" + MODELreadMeterRecord.waterMeterEndNumber; MODELOPERATORLOG.METERREADINGID = strMeterReadingID; MODELOPERATORLOG.LOGTYPE = "2"; //1代表用户 2代表水表 MODELOPERATORLOG.OPERATORID = strLogID; MODELOPERATORLOG.OPERATORNAME = strUserName; BLLOPERATORLOG.Insert(MODELOPERATORLOG); } else { //回滚抄表数据 BLLreadMeterRecord.Delete(MODELreadMeterRecord.readMeterRecordId); } } catch (Exception) { //回滚抄表数据 BLLreadMeterRecord.Delete(MODELreadMeterRecord.readMeterRecordId); mes.Show("表底数变更过程更新审核状态失败,请重试!"); return; } } else { mes.Show("表底数变更失败,请重试!"); return; } } catch (Exception ex) { mes.Show("表底数变更失败,原因:" + ex.ToString()); log.Write(ex.ToString(), MsgType.Error); return; } }
private void btOK_Click(object sender, EventArgs e) { if (txtWaterUserName.Text.Trim() == "") { mes.Show("请输入变更后的用户名!"); txtWaterUserName.Focus(); return; } if (mes.ShowQ("确定要将姓名为'" + strWaterUserName + "'的用户名变更为'" + txtWaterUserName.Text + "'吗?") != DialogResult.OK) { return; } try { MODELreadMeterRecord MODELreadMeterRecord = new MODELreadMeterRecord(); MODELreadMeterRecord.readMeterRecordId = strRecordID; MODELreadMeterRecord.waterUserName = txtWaterUserName.Text; if (BLLreadMeterRecord.UpdateHandSetWaterUserName(MODELreadMeterRecord)) { string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strDBFPath + ";Extended Properties=dBASE IV;User ID=Admin;Password=;"; string strSQLUpdateWaterMeterType = "UPDATE INTERDB SET yhm='" + MODELreadMeterRecord.waterUserName + "' " + " WHERE recordid='" + strRecordID + "'"; int intRow = ExcuteSQL(strSQLUpdateWaterMeterType, connectString); if (intRow > 0) { frm.dgList.CurrentRow.Cells["yhm"].Value = MODELreadMeterRecord.waterUserName; //mes.Show("信息变更成功,如果要更改用户基础信息请手动更改!"); if (mes.ShowQ("信息变更成功,是否要继续更改用户基础信息?") != DialogResult.OK) { return; } MODELWaterUser MODELWaterUser = new MODELWaterUser(); MODELWaterUser.waterUserNO = strWaterUserNO; MODELWaterUser.waterUserName = MODELreadMeterRecord.waterUserName; if (BLLwaterUser.UpdateHandSetUser(MODELWaterUser)) { mes.Show("用户基础信息变更成功!"); MODELOPERATORLOG MODELOPERATORLOG = new MODELOPERATORLOG(); MODELOPERATORLOG.LOGCONTENT = "修改用户名:" + strWaterUserName + "→" + txtWaterUserName.Text; MODELOPERATORLOG.METERREADINGID = strMeterReadingID; MODELOPERATORLOG.LOGTYPE = "3"; //1代表用户 2代表水表 3抄表机 MODELOPERATORLOG.OPERATORID = strLogID; MODELOPERATORLOG.OPERATORNAME = strUserName; BLLOPERATORLOG.Insert(MODELOPERATORLOG); } else { mes.Show("用户基础信息变更失败,请手动修改户号为'" + strWaterUserNO + "的用户名!"); return; } } else { mes.Show("更新抄表数据文件失败,请重试!"); return; } } else { mes.Show("更新抄表数据失败,请重试!"); return; } } catch (Exception ex) { mes.Show(ex.Message); log.Write(ex.ToString(), MsgType.Error); } }