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);
            }
        }
예제 #3
0
        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;
            }
        }
예제 #6
0
        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);
            }
        }
예제 #8
0
        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;
            }
        }
예제 #9
0
        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);
            }
        }