private void toolSubmit_Click(object sender, EventArgs e)
        {
            if (!IsADD && tvDep.SelectedNode.Tag.ToString() == "0000")
            {
                mes.Show("该小区无法删除或修改!");
                return;
            }
            if (txtName.Text.Trim() == "")
            {
                mes.Show("请填写小区名称!");
                txtName.Focus();
                return;
            }
            MODELBASE_COMMUNITY MODELBASE_COMMUNITY = new MODELBASE_COMMUNITY();

            MODELBASE_COMMUNITY.COMMUNITYNAME = txtName.Text;
            MODELBASE_COMMUNITY.PARENTID      = "0000";
            MODELBASE_COMMUNITY.MEMO          = txtMemo.Text;
            if (IsADD)
            {
                MODELBASE_COMMUNITY.COMMUNITYID = GETTABLEID.GetTableID("", "BASE_COMMUNITY");
            }
            else
            {
                MODELBASE_COMMUNITY.COMMUNITYID = txtID.Text;
            }
            try
            {
                if (IsADD)
                {
                    if (BLLBASE_COMMUNITY.Insert(MODELBASE_COMMUNITY))
                    {
                        tvDep.Enabled = true;
                        tvDep.Nodes.Clear();
                        AddTreeNode("0", null);
                        toolAdd.Text    = "添加";
                        toolAdd.Enabled = true;
                        GetSelectedNode(tvDep.Nodes[0], MODELBASE_COMMUNITY.COMMUNITYID);
                    }
                }
                else
                {
                    if (BLLBASE_COMMUNITY.Update(MODELBASE_COMMUNITY))
                    {
                        tvDep.Enabled = true;
                        tvDep.Nodes.Clear();
                        AddTreeNode("0", null);
                        GetSelectedNode(tvDep.Nodes[0], MODELBASE_COMMUNITY.COMMUNITYID);
                    }
                }
            }
            catch (Exception ex)
            {
                lg.Write(ex.ToString(), MsgType.Error);
                mes.Show(ex.Message.ToString());
                return;
            }
            IsADD = false;
        }
Пример #2
0
        private void toolSubmit_Click(object sender, EventArgs e)
        {
            if (!IsADD && tvDep.SelectedNode.Tag.ToString() == "0000")
            {
                mes.Show("该区域无法删除或修改!");
                return;
            }
            if (txtName.Text.Trim() == "")
            {
                mes.Show("请填写区域名称!");
                txtName.Focus();
                return;
            }
            MODELbase_area MODELbase_area = new MODELbase_area();

            MODELbase_area.areaName = txtName.Text;
            MODELbase_area.PARENTID = "0000";
            MODELbase_area.MEMO     = txtMemo.Text;
            if (IsADD)
            {
                MODELbase_area.areaId = GETTABLEID.GetTableID(MODELbase_area.PARENTID, "base_area");
            }
            else
            {
                MODELbase_area.areaId = txtID.Text;
            }
            try
            {
                if (IsADD)
                {
                    if (BLLAREA.Insert(MODELbase_area))
                    {
                        tvDep.Enabled = true;
                        tvDep.Nodes.Clear();
                        AddTreeNode("0", null);
                        toolAdd.Text    = "添加";
                        toolAdd.Enabled = true;
                        GetSelectedNode(tvDep.Nodes[0], MODELbase_area.areaId);
                    }
                }
                else
                {
                    if (BLLAREA.Update(MODELbase_area))
                    {
                        tvDep.Enabled = true;
                        tvDep.Nodes.Clear();
                        AddTreeNode("0", null);
                        GetSelectedNode(tvDep.Nodes[0], MODELbase_area.areaId);
                    }
                }
            }
            catch (Exception ex)
            {
                lg.Write(ex.ToString(), MsgType.Error);
                mes.Show(ex.Message.ToString());
                return;
            }
            IsADD = false;
        }
Пример #3
0
        private void toolSubmit_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtName.Text.Trim() == "")
                {
                    mes.Show("请输入组名称!");
                    txtName.Focus();
                    return;
                }

                MODELwaterMeterPosition MODELwaterMeterPosition = new MODELwaterMeterPosition();
                MODELwaterMeterPosition.waterMeterPositionName = txtName.Text;
                MODELwaterMeterPosition.MEMO = txtMemo.Text;
                if (txtID.Text == "")
                {
                    MODELwaterMeterPosition.waterMeterPositionId = GETTABLEID.GetTableID("", "waterMeterPosition");
                    if (BLLwaterMeterPosition.Insert(MODELwaterMeterPosition))
                    {
                        toolSearch_Click(null, null);
                        dgList.ClearSelection();
                        dgList.CurrentCell = dgList.Rows[dgList.Rows.Count - 1].Cells[1];
                        dgList_SelectionChanged(null, null);
                    }
                    else
                    {
                        mes.Show("添加失败,请重新点击保存按钮!");
                        return;
                    }
                }
                else
                {
                    MODELwaterMeterPosition.waterMeterPositionId = txtID.Text;
                    if (BLLwaterMeterPosition.Update(MODELwaterMeterPosition))
                    {
                        dgList.CurrentRow.Cells["waterMeterPositionName"].Value = MODELwaterMeterPosition.waterMeterPositionName;
                        dgList.CurrentRow.Cells["MEMO"].Value = MODELwaterMeterPosition.MEMO;
                    }
                    else
                    {
                        mes.Show("修改失败,请重新点击保存按钮!");
                        return;
                    }
                }
                //DisEnableControl(gbDetail);

                dgList.Enabled     = true;
                toolAdd.Text       = "添加";
                toolDelete.Enabled = true;
                toolSearch.Enabled = true;
            }
            catch (Exception ex)
            {
                log.Write(ex.Message, MsgType.Error);
                mes.Show(ex.Message);
            }
        }
        private void toolSave_Click(object sender, EventArgs e)
        {
            if (txtName.Text.Trim() == "")
            {
                mes.Show("性质名称不能为空!");
                txtName.Focus();
                return;
            }

            MODELWATERMETERTYPECLASS MODELWATERMETERTYPECLASS = new MODELWATERMETERTYPECLASS();

            MODELWATERMETERTYPECLASS.WATERMETERTYPECLASSNAME = txtName.Text;
            MODELWATERMETERTYPECLASS.MEMO = txtMemo.Text;
            if (isAdd)
            {
                MODELWATERMETERTYPECLASS.WATERMETERTYPECLASSID = GETTABLEID.GetTableID("", "WATERMETERTYPECLASS");
                bool isSuccess = BLLWATERMETERTYPECLASS.Insert(MODELWATERMETERTYPECLASS);
                if (isSuccess)
                {
                    Query();
                }
                else
                {
                    mes.Show("添加失败,请重新点击保存按钮!");
                    return;
                }
            }
            else
            {
                if (txtID.Text.Trim() == "")
                {
                    mes.Show("如果要执行添加操作,请先点击添加按钮后再保存!");
                    return;
                }
                MODELWATERMETERTYPECLASS.WATERMETERTYPECLASSID = txtID.Text;
                if (BLLWATERMETERTYPECLASS.Update(MODELWATERMETERTYPECLASS))
                {
                    if (dgList.CurrentRow != null)
                    {
                        dgList.CurrentRow.Cells["WATERMETERTYPECLASSNAME"].Value = txtName.Text;
                        dgList.CurrentRow.Cells["MEMO"].Value = txtMemo.Text;
                    }
                }
                else
                {
                    mes.Show("修改失败,请重新点击保存按钮!");
                    return;
                }
            }
            dgList.Enabled  = true;
            toolDel.Enabled = true;
            toolAdd.Text    = "添加";
            isAdd           = false;
        }
        private void btCancel_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 (txtMemo.Text.Trim() == "")
            {
                mes.Show("请输入作废原因!");
                txtMemo.Focus();
                return;
            }
            if (mes.ShowQ("确定要作废第 " + intStartRow.ToString() + " 至第 " + intEndRow.ToString() + " 行的通知单信息吗?") != DialogResult.OK)
            {
                return;
            }
            for (int i = intEndRow - 1; i >= intStartRow - 1; i--)
            {
                //获取抄表记录ID
                string strreadMeterRecordId = "";

                object objreadMeterRecordId = dtUserList.Rows[i]["readMeterRecordId"];
                if (objreadMeterRecordId != null && objreadMeterRecordId != DBNull.Value)
                {
                    strreadMeterRecordId = objreadMeterRecordId.ToString();
                    MODELINFORMCANCELRECORD MODELINFORMCANCELRECORD = new MODELINFORMCANCELRECORD();

                    MODELINFORMCANCELRECORD.INFORMCANCELID    = GETTABLEID.GetTableID("", "INFORMCANCELRECORD");
                    MODELINFORMCANCELRECORD.READMETERRECORDID = strreadMeterRecordId;

                    object objInformNO = dtUserList.Rows[i]["INFORMNO"];
                    if (objInformNO != null && objInformNO != DBNull.Value)
                    {
                        MODELINFORMCANCELRECORD.INFORMNO = objInformNO.ToString();
                    }

                    MODELINFORMCANCELRECORD.OPERATORID = strLogID;

                    MODELINFORMCANCELRECORD.OPERATORNAME = strUserName;

                    MODELINFORMCANCELRECORD.CANCELREASON     = txtMemo.Text;
                    MODELINFORMCANCELRECORD.OPERATORDATETIME = mes.GetDatetimeNow();

                    if (BLLINFORMCANCELRECORD.Insert(MODELINFORMCANCELRECORD))
                    {
                        if (BLLreadMeterRecord.UpdateCancelInformNO(strreadMeterRecordId))
                        {
                            dtUserList.Rows.Remove(dtUserList.Rows[i]);
                        }
                        else
                        {
                            //回滚通知单作废记录表
                            BLLINFORMCANCELRECORD.Delete(MODELINFORMCANCELRECORD.INFORMCANCELID);
                        }
                    }
                    else
                    {
                        mes.Show("第'" + (i + 1).ToString() + "行通知单作废失败,请重试!");
                        return;
                    }
                }
                else
                {
                    mes.Show("第'" + (i + 1).ToString() + "行抄表ID获取失败,无法执行打印操作!");
                    return;
                }
            }
        }
        private void toolPrint_Click(object sender, EventArgs e)
        {
            if (dgList.Rows.Count == 0)
            {
                return;
            }
            dgList.EndEdit();

            if (cmbBatch.SelectedValue == null || cmbBatch.SelectedValue == DBNull.Value)
            {
                mes.Show("请选择发票批次!");
                cmbBatch.Focus();
                return;
            }
            if (txtInvoiceNO.Text.Trim() == "")
            {
                mes.Show("请输入发票号码!");
                txtInvoiceNO.Focus();
                return;
            }
            else
            {
                if (txtInvoiceNO.Text.Length > 8)
                {
                    mes.Show("发票号码长度应小于9位,请确定发票号是否正确!");
                    txtInvoiceNO.Focus();
                    return;
                }
                if (!Information.IsNumeric(txtInvoiceNO.Text))
                {
                    mes.Show("发票号码只能由数字组成!");
                    txtInvoiceNO.Focus();
                    return;
                }
            }
            txtInvoiceNO.Text = txtInvoiceNO.Text.PadLeft(8, '0');

            for (int i = 0; i < dgList.Rows.Count; i++)
            {
                object obj = dgList.Rows[i].Cells["Quantity"].Value;
                if (!Information.IsNumeric(obj))
                {
                    mes.Show("第 " + (i + 1).ToString() + "行 数量不正确,请重新填写!");
                    return;
                }
                else if (Convert.ToDecimal(obj) == 0)
                {
                    mes.Show("第 " + (i + 1).ToString() + "行 数量为零,请重新填写!");
                    return;
                }

                obj = dgList.Rows[i].Cells["Price"].Value;
                if (!Information.IsNumeric(obj))
                {
                    mes.Show("第 " + (i + 1).ToString() + "行 单价不正确,请重新填写!");
                    return;
                }
                else if (Convert.ToDecimal(obj) == 0)
                {
                    mes.Show("第 " + (i + 1).ToString() + "行 单价为零,请重新填写!");
                    return;
                }

                obj = dgList.Rows[i].Cells["Fee"].Value;
                if (!Information.IsNumeric(obj))
                {
                    mes.Show("第 " + (i + 1).ToString() + "行 金额(含税)不正确,请重新填写!");
                    return;
                }
                else if (Convert.ToDecimal(obj) == 0)
                {
                    mes.Show("第 " + (i + 1).ToString() + "行 金额(含税)为零,请重新填写!");
                    return;
                }

                obj = dgList.Rows[i].Cells["TaxPercent"].Value;
                if (!Information.IsNumeric(obj))
                {
                    mes.Show("第 " + (i + 1).ToString() + "行 税率不正确,请重新填写!");
                    return;
                }
                else if (Convert.ToDecimal(obj) == 0)
                {
                    mes.Show("第 " + (i + 1).ToString() + "行 税率为零,请重新填写!");
                    return;
                }
            }

            #region 检查起始发票号是否可用
            DataTable dtCheckInvoiceExists = BllMeter_WorkResolveFee_Invoice_Detail.QueryMeterWorkInvoice(" AND INVOICENO='" + txtInvoiceNO.Text + "' AND INVOICEBATCHID='" + cmbBatch.SelectedValue.ToString() + "' AND INVOICECANCEL<>'3' ");
            if (dtCheckInvoiceExists.Rows.Count > 0)
            {
                if (mes.ShowQ("发票批次为'" + cmbBatch.Text + "'票号为'" + txtInvoiceNO.Text + "'的发票已使用,确定使用此发票号打印吗?") != DialogResult.OK)
                {
                    txtInvoiceNO.Focus();
                    return;
                }
            }
            #endregion

            //发票开具初始化
            bool isSuccess = FPInfoInit(this.Handle);
            if (!isSuccess)
            {
                mes.Show("发票开具初始化失败,请重试!");
                return;
            }
            StringBuilder strInvTypeCode1 = new StringBuilder();
            StringBuilder strInvNumber1   = new StringBuilder();
            bool          ret             = GetFPInfo(strInvTypeCode1, strInvNumber1);
            if (ret)
            {
                if (strInvNumber1.ToString() != txtInvoiceNO.Text)
                {
                    mes.Show("当前发票号与税控系统发票号不一致,请设置新的发票号!" + Environment.NewLine + "设置发票号:" + txtInvoiceNO.Text + Environment.NewLine + "系统发票号:" + strInvNumber1);
                    txtInvoiceNO.SelectAll();
                    return;
                }
            }
            else
            {
                mes.Show("获取税控系统发票号失败,请重试!");
                return;
            }

            #region 打印发票
            try
            {
                if (AddFPData(txtWaterUserName.Text, txtWaterUserFPTaxNO.Text, txtWaterUserBankAccount.Text, txtWaterUserAddress.Text, strCompanyBankNameAndAccountNO,
                              strCompanyAddressAndTel, txtMemo.Text, strLoginName, strCompanyChecker, strCompanyPayee, null, 2, 0))
                {
                    if (MXInfoInit())
                    {
                        for (int i = 0; i < dgList.Rows.Count; i++)
                        {
                            double dbNumber   = Convert.ToDouble(dgList.Rows[i].Cells["Quantity"].Value);
                            double dbSumMoney = Convert.ToDouble(dgList.Rows[i].Cells["Fee"].Value);

                            int intTaxPercent = (int)(Convert.ToDecimal(dgList.Rows[i].Cells["TaxPercent"].Value) * 100);

                            string strUnit            = "";
                            string strFeeInvoiceTitle = "";
                            object obj = dgList.Rows[i].Cells["InvoiceTitle"].Value;
                            if (obj != null && obj != DBNull.Value)
                            {
                                strFeeInvoiceTitle = obj.ToString();
                            }

                            obj = dgList.Rows[i].Cells["Units"].Value;
                            if (obj != null && obj != DBNull.Value)
                            {
                                strUnit = obj.ToString();
                            }

                            if (AddMXData(strFeeInvoiceTitle, "", strUnit, dbNumber, 0, dbSumMoney, intTaxPercent, 1, 0))
                            {
                            }
                            else
                            {
                                mes.Show("添加第 " + (i + 1).ToString() + "行 发票明细'" + strFeeInvoiceTitle + "'错误,请重试!");
                                return;
                            }
                        }
                        StringBuilder strInvTypeCode = new StringBuilder();
                        StringBuilder strInvNumber   = new StringBuilder();
                        if (!FPInvoice(strInvTypeCode, strInvNumber))
                        {
                            mes.Show("发票填开错误,请重试!");
                            return;
                        }
                        bool isOK = CloseInvKey();

                        try
                        {
                            //发票打印成功后,开始处理数据库部分
                            ModelMeter_WorkResolveFee_Invoice ModelMeter_WorkResolveFee_Invoice = new ModelMeter_WorkResolveFee_Invoice();
                            ModelMeter_WorkResolveFee_Invoice.InvoicePrintID   = GETTABLEID.GetTableID(strLoginID, "Meter_WorkResolveFee_Invoice");
                            ModelMeter_WorkResolveFee_Invoice.ChargeID         = ChargeID;
                            ModelMeter_WorkResolveFee_Invoice.InvoiceBatchID   = cmbBatch.SelectedValue.ToString();
                            ModelMeter_WorkResolveFee_Invoice.InvoiceBatchName = cmbBatch.Text;
                            ModelMeter_WorkResolveFee_Invoice.InvoiceNO        = txtInvoiceNO.Text;
                            ModelMeter_WorkResolveFee_Invoice.WaterUserID      = strWaterUserID;
                            ModelMeter_WorkResolveFee_Invoice.WaterUserName    = txtWaterUserName.Text;
                            ModelMeter_WorkResolveFee_Invoice.WaterUserAddress = txtWaterUserAddress.Text;
                            ModelMeter_WorkResolveFee_Invoice.WaterUserFPTaxNO = txtWaterUserFPTaxNO.Text;
                            ModelMeter_WorkResolveFee_Invoice.WaterUserFPBankNameAndAccountNO = txtWaterUserBankAccount.Text;
                            ModelMeter_WorkResolveFee_Invoice.Table_Name_CH                 = strTable_Name_CH;
                            ModelMeter_WorkResolveFee_Invoice.InvoiceFeeDepID               = strFeeDepID;
                            ModelMeter_WorkResolveFee_Invoice.InvoiceFeeDepName             = strFeeDepName;
                            ModelMeter_WorkResolveFee_Invoice.InvoiceTotalFeeMoney          = Convert.ToDecimal(txtSumMoney.Text);
                            ModelMeter_WorkResolveFee_Invoice.CompanyName                   = strCompanyName;
                            ModelMeter_WorkResolveFee_Invoice.CompanyAddress                = strCompanyAddressAndTel;
                            ModelMeter_WorkResolveFee_Invoice.CompanyFPTaxNO                = strCompanyTaxNO;
                            ModelMeter_WorkResolveFee_Invoice.CompanyFPBankNameAndAccountNO = strCompanyBankNameAndAccountNO;
                            ModelMeter_WorkResolveFee_Invoice.Payee   = strCompanyPayee;
                            ModelMeter_WorkResolveFee_Invoice.Checker = strCompanyChecker;
                            ModelMeter_WorkResolveFee_Invoice.InvoicePrintWorkerID = strLoginID;
                            ModelMeter_WorkResolveFee_Invoice.InvoicePrintWorker   = strLoginName;
                            ModelMeter_WorkResolveFee_Invoice.InvoiceType          = rbNormal.Checked ? "1" : "2"; //普通发票还是专用发票
                            ModelMeter_WorkResolveFee_Invoice.Memo = txtMemo.Text;
                            if (BllMeter_WorkResolveFee_Invoice_Detail.Insert(ModelMeter_WorkResolveFee_Invoice))
                            {
                                try
                                {
                                    for (int i = 0; i < dgList.Rows.Count; i++)
                                    {
                                        ModelMeter_WorkResolveFee_Invoice_Detail ModelMeter_WorkResolveFee_Invoice_Detail = new ModelMeter_WorkResolveFee_Invoice_Detail();
                                        ModelMeter_WorkResolveFee_Invoice_Detail.InvoicePrintID      = ModelMeter_WorkResolveFee_Invoice.InvoicePrintID;
                                        ModelMeter_WorkResolveFee_Invoice_Detail.DetailIndex         = i + 1;
                                        ModelMeter_WorkResolveFee_Invoice_Detail.FeeItem             = dgList.Rows[i].Cells["FeeItem"].Value.ToString();
                                        ModelMeter_WorkResolveFee_Invoice_Detail.FeeItemInvoiceTitle = dgList.Rows[i].Cells["InvoiceTitle"].Value.ToString();
                                        object objUnit = dgList.Rows[i].Cells["Units"].Value;
                                        if (objUnit != null && objUnit != DBNull.Value)
                                        {
                                            ModelMeter_WorkResolveFee_Invoice_Detail.Units = objUnit.ToString();
                                        }
                                        ModelMeter_WorkResolveFee_Invoice_Detail.Quantity   = decimal.Parse(dgList.Rows[i].Cells["Quantity"].Value.ToString());
                                        ModelMeter_WorkResolveFee_Invoice_Detail.Price      = decimal.Parse(dgList.Rows[i].Cells["Price"].Value.ToString());
                                        ModelMeter_WorkResolveFee_Invoice_Detail.TaxPercent = decimal.Parse(dgList.Rows[i].Cells["TaxPercent"].Value.ToString());
                                        ModelMeter_WorkResolveFee_Invoice_Detail.TaxMoney   = decimal.Parse(dgList.Rows[i].Cells["TaxMoney"].Value.ToString());
                                        ModelMeter_WorkResolveFee_Invoice_Detail.TotalMoney = decimal.Parse(dgList.Rows[i].Cells["Fee"].Value.ToString());
                                        if (BllMeter_WorkResolveFee_Invoice_Detail.InsertDetail(ModelMeter_WorkResolveFee_Invoice_Detail))
                                        {
                                        }
                                        else
                                        {
                                            BllMeter_WorkResolveFee_Invoice_Detail.Delete(ModelMeter_WorkResolveFee_Invoice.InvoicePrintID);
                                            mes.Show("插入发票项目明细失败,请重试");
                                            return;
                                        }
                                    }
                                    try
                                    {
                                        decimal decSumInvoiceSumFee = 0;

                                        string strGetSumFee = @"SELECT SUM(InvoiceTotalFeeMoney) FROM Meter_WorkResolveFee_Invoice WHERE CHARGEID='" + ChargeID + "'";
                                        object objSumFee    = BllMeter_WorkResolveFee_Invoice_Detail.GetSingle(strGetSumFee);
                                        if (Information.IsNumeric(objSumFee))
                                        {
                                            decSumInvoiceSumFee = Convert.ToDecimal(objSumFee);
                                        }

                                        if (decSumInvoiceSumFee >= decWorkResolveSumFee)
                                        {
                                            string strUpdateInvoiceSign = "UPDATE Meter_Charge SET INVOICEPRINTSIGN='1' WHERE CHARGEID='" + ChargeID + "'";
                                            int    intRows = BllMeter_WorkResolveFee_Invoice_Detail.ExcuteSQL(strUpdateInvoiceSign);
                                            if (intRows == 0)
                                            {
                                                mes.Show("更新发票标志失败,请重新打印发票!");
                                                return;
                                            }
                                            toolPrint.Enabled       = false;
                                            labInvoiceState.Visible = true;
                                            ((FrmFinance_Invoice_Print)Owner).isModify = true;
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        mes.Show("更新发票标志失败,原因:" + ex.Message);
                                        log.Write(ex.ToString(), MsgType.Error);
                                        BllMeter_WorkResolveFee_Invoice_Detail.Delete(ModelMeter_WorkResolveFee_Invoice.InvoicePrintID);
                                        return;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    mes.Show("插入发票项目明细失败,原因:" + ex.Message);
                                    log.Write(ex.ToString(), MsgType.Error);
                                    BllMeter_WorkResolveFee_Invoice_Detail.Delete(ModelMeter_WorkResolveFee_Invoice.InvoicePrintID);
                                    return;
                                }
                            }
                            else
                            {
                                mes.Show("插入发票记录失败,请补登发票号!");
                                return;
                            }
                        }
                        catch (Exception ex)
                        {
                            mes.Show("插入发票记录失败,请补登发票号!\n原因:" + ex.Message);
                            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);
                return;
            }
            #endregion
        }
        private void Btn_Submit_Click(object sender, EventArgs e)
        {
            if (PIANID.SelectedValue == null || PIANID.SelectedValue == DBNull.Value)
            {
                mes.Show("请选择片号");
                PIANID.Focus();
                return;
            }
            if (areaId.SelectedValue == null || areaId.SelectedValue == DBNull.Value)
            {
                mes.Show("请选择区号");
                areaId.Focus();
                return;
            }
            if (DUANID.SelectedValue == null || DUANID.SelectedValue == DBNull.Value)
            {
                mes.Show("请选择段号");
                DUANID.Focus();
                return;
            }
            if (COMMUNITYID.SelectedValue == null || COMMUNITYID.SelectedValue == DBNull.Value)
            {
                mes.Show("请选择小区名称");
                COMMUNITYID.Focus();
                return;
            }
            if (meterReaderID.SelectedValue == null || meterReaderID.SelectedValue == DBNull.Value)
            {
                mes.Show("请选择抄表员");
                meterReaderID.Focus();
                return;
            }
            if (chargerID.SelectedValue == null || COMMUNITYID.SelectedValue == DBNull.Value)
            {
                mes.Show("请选择收费员");
                chargerID.Focus();
                return;
            }
            if (CreateType.SelectedValue == null || CreateType.SelectedValue == DBNull.Value)
            {
                mes.Show("请选择建档类型");
                CreateType.Focus();
                return;
            }
            if (!Information.IsNumeric(ordernumber.Text))
            {
                mes.Show("请输入正确的顺序号");
                ordernumber.Focus();
                return;
            }
            if (!Information.IsNumeric(waterMeterStartNumber.Text))
            {
                mes.Show("请输入正确的初始读数");
                waterMeterStartNumber.Focus();
                return;
            }
            if (!Information.IsNumeric(WATERFIXVALUE.Text))
            {
                mes.Show("请输入正确的定量用水量");
                WATERFIXVALUE.Focus();
                return;
            }
            if (waterMeterPositionName.SelectedValue == null || waterMeterPositionName.SelectedValue == DBNull.Value)
            {
                mes.Show("请选择水表位置!");
                waterMeterPositionName.Focus();
                return;
            }
            if (waterMeterTypeId.SelectedValue == null || waterMeterTypeId.SelectedValue == DBNull.Value)
            {
                mes.Show("请选择用水性质!");
                waterMeterTypeId.Focus();
                return;
            }
            if (waterMeterState.SelectedValue == null || waterMeterState.SelectedValue == DBNull.Value)
            {
                mes.Show("请选择水表状态!");
                waterMeterState.Focus();
                return;
            }
            if (waterMeterSizeId.SelectedValue == null || waterMeterSizeId.SelectedValue == DBNull.Value)
            {
                mes.Show("请选择水表口径!");
                waterMeterSizeId.Focus();
                return;
            }


            ip           = AppDomain.CurrentDomain.GetData("IP").ToString();
            ComputerName = AppDomain.CurrentDomain.GetData("COMPUTERNAME").ToString();

            Hashtable hs = new Hashtable();

            hs["ModifyUser"]   = AppDomain.CurrentDomain.GetData("USERNAME").ToString();
            hs["ModifyDate"]   = DateTime.Now.ToString();
            hs["operatorID"]   = AppDomain.CurrentDomain.GetData("LOGINID").ToString();;
            hs["operatorName"] = AppDomain.CurrentDomain.GetData("USERNAME").ToString();

            hs["pianNO"]           = PIANID.Text;
            hs["areaNO"]           = areaId.Text;
            hs["duanNO"]           = DUANID.Text;
            hs["CommunityID"]      = COMMUNITYID.SelectedValue;
            hs["COMMUNITYNAME"]    = COMMUNITYID.Text;
            hs["BuildingNO"]       = BuildingNO.Text;
            hs["UnitNO"]           = UnitNO.Text;
            hs["meterReaderID"]    = meterReaderID.SelectedValue;
            hs["meterReaderName"]  = meterReaderID.Text;
            hs["chargerID"]        = chargerID.SelectedValue;
            hs["chargerName"]      = chargerID.Text;
            hs["agentsign"]        = (agentsign.SelectedValue == null || agentsign.SelectedValue == DBNull.Value) ? 0 : agentsign.SelectedValue;
            hs["bankId"]           = bankId.SelectedValue;
            hs["BankAcountNumber"] = BankAcountNumber.Text;
            hs["chargeType"]       = (chargeType.SelectedValue == null || chargeType.SelectedValue == DBNull.Value) ? 0 : chargeType.SelectedValue;
            hs["CreateType"]       = CreateType.SelectedValue;
            hs["CreateUserDate"]   = mes.GetDatetimeNow();
            hs["ordernumber"]      = ordernumber.Text;
            hs["Memo"]             = Memo.Text;

            if (string.IsNullOrEmpty(_waterUserId))
            {
                _waterUserId = GETTABLEID.GetTableID("", "WATERUSER");
            }
            hs["waterUserId"] = _waterUserId;
            hs["waterUserNO"] = _waterUserId;
            if (new SqlServerHelper().Submit_AddOrEdit("Meter_Install_Peccant", "TaskID", TaskID, hs))
            {
                //取该用户下最大的水表顺序号
                DataTable dd         = new SqlServerHelper().GetDateTableBySql(string.Format("SELECT RIGHT(MAX(waterMeterNo),2) FROM waterMeter WHERE waterUserId='{0}'", _waterUserId));
                int       MeterCount = string.IsNullOrEmpty(dd.Rows[0][0].ToString()) ? 0 : int.Parse(dd.Rows[0][0].ToString());
                // MeterCount++;

                string    NewMeterID = _waterUserId + (MeterCount + 1).ToString().PadLeft(2, '0');
                Hashtable hnb        = new Hashtable();
                hnb["waterMeterId"]           = NewMeterID;
                hnb["waterMeterNo"]           = NewMeterID;
                hnb["waterUserId"]            = _waterUserId;
                hnb["waterMeterPositionName"] = waterMeterPositionName.Text;
                hnb["waterMeterPositionId"]   = waterMeterPositionName.SelectedValue;
                hnb["waterMeterSizeId"]       = waterMeterSizeId.SelectedValue;
                hnb["waterMeterStartNumber"]  = waterMeterStartNumber.Text;
                hnb["waterMeterTypeId"]       = waterMeterTypeId.SelectedValue;
                hnb["waterMeterParentId"]     = waterMeterParentId.SelectedValue;
                hnb["waterMeterState"]        = waterMeterState.SelectedValue;
                hnb["IsReverse"]        = IsReverse.Checked ? '1' : '0';
                hnb["WATERFIXVALUE"]    = WATERFIXVALUE.Text;
                hnb["waterMeterMode"]   = waterMeterMode.Text;
                hnb["WATERMETERLOCKNO"] = WATERMETERLOCKNO.Text;

                new SqlServerHelper().Submit_AddOrEdit("Meter", "MeterID", strWaterMeterID, hnb);

                #region
                //if (_MeterList.Count > 0)
                //{
                //    for (int i = 0; i < _MeterList.Count; i++)
                //    {
                //        string NewMeterID = _waterUserId + (MeterCount + i).ToString().PadLeft(2, '0');
                //        Hashtable hnb = new Hashtable();
                //        hnb["waterMeterId"] = NewMeterID;
                //        hnb["waterMeterNo"] = NewMeterID;
                //        hnb["waterUserId"] = _waterUserId;
                //        hnb["waterMeterTypeId"] = waterMeterTypeId.SelectedValue;
                //        new SqlServerHelper().Submit_AddOrEdit("Meter", "MeterID", _MeterList[i], hnb);
                //    }
                //}
                string CHARGEID = GETTABLEID.GetTableID("0092", "WATERFEECHARGE");
                string PRESTORERUNNINGACCOUNTID = GETTABLEID.GetTableID("0092", "PRESTORERUNNINGACCOUNT");
                #endregion


                if (sysidal.Approve_Peccant_Append(TaskID))
                {
                    string Matter = string.Format("【增户】-片:{0};区:{1};段:{2};用水性质:{3}", PIANID.Text, areaId.Text, DUANID.Text, waterMeterTypeId.Text);
                    int    count  = sysidal.UpdateApprove_Peccant_defalut(ResolveID, true, "新增用户(水表)", ip, ComputerName, PointSort, TaskID, Matter);

                    if (count > 0)
                    {
                        Btn_Submit.Enabled = false;
                        MessageBox.Show("增户成功!");
                    }
                    else
                    {
                        Btn_Submit.Enabled = true;
                    }
                }
            }
        }
Пример #8
0
        private void btCancel_Click(object sender, EventArgs e)
        {
            try
            {
                if (labID.Text != "")
                {
                    if (mes.ShowQ("确定要冲销单号为'" + labID.Text + "'的预存记录吗?") != DialogResult.OK)
                    {
                        return;
                    }

                    bool isReCharge = false;//是否将实收金额退还到用户余额标志
                    if (mes.ShowQ("是否将预存金额'" + labBCSZ.Text + "'从用户余额中扣除?") == DialogResult.OK)
                    {
                        isReCharge = true;
                    }
                    else
                    {
                        isReCharge = false;
                    }
                    #region 生成退费记录
                    MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                    MODELWATERFEECHARGE.CHARGEID    = GETTABLEID.GetTableID(strLogID, "WATERFEECHARGE");
                    MODELWATERFEECHARGE.CHARGEClASS = "5";//收费类型是冲销预存

                    if (Information.IsNumeric(labYE.Text))
                    {
                        MODELWATERFEECHARGE.CHARGEYSQQYE = Convert.ToDecimal(labYE.Text);
                    }

                    if (isReCharge)
                    {
                        if (Information.IsNumeric(labBCSZ.Text))
                        {
                            MODELWATERFEECHARGE.CHARGEYSBCSZ = 0 - Convert.ToDecimal(labBCSZ.Text);
                        }

                        MODELWATERFEECHARGE.CHARGEYSJSYE = MODELWATERFEECHARGE.CHARGEYSQQYE + MODELWATERFEECHARGE.CHARGEYSBCSZ;
                        if (MODELWATERFEECHARGE.CHARGEYSJSYE < 0)
                        {
                            mes.Show("用户余额不足,无法冲销此单号,请先冲销生成的水费后重试!");
                            return;
                        }
                    }
                    else
                    {
                        MODELWATERFEECHARGE.CHARGEYSBCSZ = 0;
                        MODELWATERFEECHARGE.CHARGEYSJSYE = MODELWATERFEECHARGE.CHARGEYSQQYE;
                    }
                    MODELWATERFEECHARGE.CHARGEWORKERID    = strLogID;
                    MODELWATERFEECHARGE.CHARGEWORKERNAME  = strUserName;
                    MODELWATERFEECHARGE.CHARGEDATETIME    = mes.GetDatetimeNow();
                    MODELWATERFEECHARGE.INVOICEPRINTSIGN  = "0";
                    MODELWATERFEECHARGE.RECEIPTPRINTCOUNT = 0;
                    MODELWATERFEECHARGE.MEMO = "红冲单号:" + labID.Text;
                    try
                    {
                        //插入收费记录
                        string strInserChargeSQL = "INSERT INTO WATERFEECHARGE(CHARGEID,TOTALNUMBERCHARGE,EXTRACHARGECHARGE1,EXTRACHARGECHARGE2," +
                                                   "WATERTOTALCHARGE,EXTRATOTALCHARGE,TOTALCHARGE,OVERDUEMONEY,CHARGETYPEID,CHARGEClASS,CHARGEBCYS,CHARGEBCSS,CHARGEYSQQYE," +
                                                   "CHARGEYSBCSZ,CHARGEYSJSYE,CHARGEWORKERID,CHARGEWORKERNAME,CHARGEDATETIME,INVOICEPRINTSIGN,RECEIPTPRINTCOUNT,MEMO) " +
                                                   "SELECT '" + MODELWATERFEECHARGE.CHARGEID + "',0-TOTALNUMBERCHARGE,0-EXTRACHARGECHARGE1,0-EXTRACHARGECHARGE2," +
                                                   "0-WATERTOTALCHARGE,0-EXTRATOTALCHARGE,0-TOTALCHARGE,0-OVERDUEMONEY,CHARGETYPEID,CHARGEClASS,0,0-CHARGEBCSS," +
                                                   MODELWATERFEECHARGE.CHARGEYSQQYE + "," + MODELWATERFEECHARGE.CHARGEYSBCSZ + "," +
                                                   MODELWATERFEECHARGE.CHARGEYSJSYE + ",CHARGEWORKERID,CHARGEWORKERNAME,'" + MODELWATERFEECHARGE.CHARGEDATETIME + "',0,0,'" +
                                                   MODELWATERFEECHARGE.MEMO + "' FROM WATERFEECHARGE WHERE CHARGEID='" + labID.Text + "'";

                        if (BLLreadMeterRecord.Excute(strInserChargeSQL) > 0)
                        {
                            try
                            {
                                object objPrestoreID = dtList.Rows[0]["PRESTORERUNNINGACCOUNTID"];
                                if (objPrestoreID != null && objPrestoreID != DBNull.Value)
                                {
                                    string strPrestoreID    = GETTABLEID.GetTableID("", "PRESTORERUNNINGACCOUNT");
                                    string strInserPrestore = "INSERT INTO [PRESTORERUNNINGACCOUNT]([PRESTORERUNNINGACCOUNTID],[CHARGEID],[WATERUSERID],[WATERUSERNO]" +
                                                              ",[WATERUSERNAME],[WATERUSERPHONE],[WATERUSERADDRESS],[AREANO],[PIANNO],DUANNO,ORDERNUMBER,COMMUNITYID,COMMUNITYNAME,BUILDINGNO,UNITNO," +
                                                              "METERREADERID,METERREADERNAME,CHARGERID,CHARGERNAME,[WATERUSERTYPEID],[WATERUSERTYPENAME],WATERMETERTYPEID," +
                                                              "WATERMETERTYPEVALUE,WATERMETERTYPECLASSID,WATERMETERTYPECLASSNAME,[WATERUSERHOUSETYPE],[MEMO]) " +
                                                              "SELECT '" + strPrestoreID + "','" + MODELWATERFEECHARGE.CHARGEID + "'," + "[WATERUSERID],[WATERUSERNO]" +
                                                              ",[WATERUSERNAME],[WATERUSERPHONE],[WATERUSERADDRESS],[AREANO],[PIANNO],DUANNO,ORDERNUMBER,COMMUNITYID,COMMUNITYNAME,BUILDINGNO,UNITNO," +
                                                              "METERREADERID,METERREADERNAME,CHARGERID,CHARGERNAME,[WATERUSERTYPEID],[WATERUSERTYPENAME],WATERMETERTYPEID," +
                                                              "WATERMETERTYPEVALUE,WATERMETERTYPECLASSID,WATERMETERTYPECLASSNAME,[WATERUSERHOUSETYPE],'红冲单号:" + objPrestoreID.ToString() + "'" +
                                                              " FROM PRESTORERUNNINGACCOUNT WHERE PRESTORERUNNINGACCOUNTID='" + objPrestoreID.ToString() + "'";
                                    if (BLLreadMeterRecord.Excute(strInserPrestore) > 0)
                                    {
                                        if (isReCharge)
                                        {
                                            try
                                            {
                                                if (labWaterUserID.Text != "")
                                                {
                                                    //更新余额
                                                    string strUpdatePrestore = "UPDATE waterUser SET prestore+=" + MODELWATERFEECHARGE.CHARGEYSBCSZ + " WHERE waterUserId='" + labWaterUserID.Text + "'";
                                                    if (!BLLwaterUser.UpdateSQL(strUpdatePrestore))
                                                    {
                                                        string strError = "更新用户编号为'" + labWaterUserID.Text + "'的余额失败,请重新操作!";
                                                        mes.Show(strError);
                                                        log.Write(strError, MsgType.Error);
                                                        return;
                                                    }
                                                }
                                                else
                                                {
                                                    //如果余额无法更新,需要回滚已经插入成功的预存流水记录
                                                    BLLPRESTORERUNNINGACCOUNT.Delete(strPrestoreID);

                                                    //回滚收费记录
                                                    BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                                    return;
                                                }
                                            }
                                            catch (Exception ex)
                                            {
                                                //如果余额无法更新,需要回滚已经插入成功的预存流水记录
                                                BLLPRESTORERUNNINGACCOUNT.Delete(strPrestoreID);

                                                //回滚收费记录
                                                BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                                mes.Show(ex.Message);
                                                log.Write(ex.ToString(), MsgType.Error);
                                                return;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        //回滚收费记录
                                        BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                        mes.Show("插入预存流水记录失败,请重新操作!");
                                        return;
                                    }
                                }
                                else
                                {
                                    //回滚收费记录
                                    BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                    mes.Show("获取预存流水记录ID失败,请重新操作!");
                                    return;
                                }
                            }
                            catch (Exception ex)
                            {
                                mes.Show(ex.Message);
                                log.Write(ex.ToString(), MsgType.Error);
                                //回滚收费记录
                                BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                return;
                            }
                            btCancel.Enabled = false;
                            labTip.Visible   = true;
                        }
                        else
                        {
                            mes.Show("生成冲销单据失败,请重新操作!");
                            return;
                        }
                    }
                    catch (Exception ex)
                    {
                        mes.Show(ex.Message);
                        log.Write(ex.ToString(), MsgType.Error);
                        return;
                    }
                    #endregion
                }
                else
                {
                    mes.Show("系统检测到单据ID为空,请重新打开此窗体!");
                    return;
                }
            }
            catch (Exception ex)
            {
                mes.Show(ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
            }
        }
Пример #9
0
        private void toolSave_Click(object sender, EventArgs e)
        {
            if (dgListUp.Rows.Count == 0)
            {
                mes.Show("请从下方列表内双击要转户的用户信息添加转户明细");
                return;
            }
            dgListUp.EndEdit();

            string strWaterUserTransferID       = GETTABLEID.GetTableID(strLogID, "WaterUserTransfer".ToUpper());
            string strWaterUserTransferDetailID = GETTABLEID.GetTableID(strLogID, "WaterUserTransferDetail".ToUpper());

            string strSQLInsert = "INSERT INTO WaterUserTransfer(WaterUserTransferID,ApplierName,ApplierID,ApplyDateTime) VALUES('{0}','{1}','{2}',GETDATE())";

            strSQLInsert = string.Format(strSQLInsert, strWaterUserTransferID, strLogName, strLogID);

            string strSQLDetail = "";

            for (int i = 0; i < dgListUp.Rows.Count; i++)
            {
                string strWaterUserID = "", strMeterReaderIDNew = "", strMeterReaderNameNew = "", strAreaNONew = "", strDuanNONew = "";

                object objWaterUserID = dgListUp.Rows[i].Cells["waterUserIdUp"].Value;
                if (objWaterUserID == null || objWaterUserID == DBNull.Value)
                {
                    mes.Show("检测到第 " + (i + 1).ToString() + " 行用户号为空,提交失败!");
                    return;
                }
                else
                {
                    strWaterUserID = objWaterUserID.ToString();
                }

                objWaterUserID = dgListUp.Rows[i].Cells["meterReaderIDNew"].Value;
                if (objWaterUserID == null || objWaterUserID == DBNull.Value)
                {
                    mes.Show("检测到第 " + (i + 1).ToString() + " 行转入抄表员为空,请选择后点击提交按钮!");
                    return;
                }
                else
                {
                    strMeterReaderIDNew = objWaterUserID.ToString();
                }

                objWaterUserID = dgListUp.Rows[i].Cells["meterReaderNameNew"].Value;
                if (objWaterUserID == null || objWaterUserID == DBNull.Value)
                {
                    mes.Show("检测到第 " + (i + 1).ToString() + " 行转入抄表员为空,请选择后点击提交按钮!");
                    return;
                }
                else
                {
                    strMeterReaderNameNew = objWaterUserID.ToString();
                }

                objWaterUserID = dgListUp.Rows[i].Cells["areaNONew"].Value;
                if (objWaterUserID == null || objWaterUserID == DBNull.Value)
                {
                    mes.Show("检测到第 " + (i + 1).ToString() + " 行转入区号为空,请选择后点击提交按钮!");
                    return;
                }
                else
                {
                    strAreaNONew = objWaterUserID.ToString();
                }

                objWaterUserID = dgListUp.Rows[i].Cells["duanNONew"].Value;
                if (objWaterUserID == null || objWaterUserID == DBNull.Value)
                {
                    mes.Show("检测到第 " + (i + 1).ToString() + " 行转入区号为空,请选择后点击提交按钮!");
                    return;
                }
                else
                {
                    strDuanNONew = objWaterUserID.ToString();
                }

                int    intIndex = Convert.ToInt16(strWaterUserTransferDetailID.Substring(12, 3)) + i;
                string strWaterUserTransferDetailIDTemp = strWaterUserTransferDetailID.Substring(0, 12) + intIndex.ToString().PadLeft(3, '0');

                if (strSQLDetail == "")
                {
                    strSQLDetail = @"INSERT INTO WaterUserTransferDetail(WaterUserTransferDetailID,WaterUserTransferID,
waterUserNO,waterUserName,waterUserAddress,areaNO,pianNO,duanNO,ordernumber,meterReaderID,meterReaderName,
meterReaderIDNew,meterReaderNameNew,areaNONew,duanNONew,waterMeterTypeId,WaterMeterTypeValue,Operator,OperateDateTime)
SELECT '{0}','{1}',
waterUserNO,waterUserName,waterUserAddress,areaNO,pianNO,duanNO,ordernumber,meterReaderID,meterReaderName,
'{2}','{3}','{4}','{5}',waterMeterTypeId,WaterMeterTypeValue,'{6}',GETDATE() FROM V_WATERUSER_CONNECTWATERMETER WHERE WATERUSERID='{7}' ";
                }
                else
                {
                    strSQLDetail  = strSQLDetail + "\r";
                    strSQLDetail += @"INSERT INTO WaterUserTransferDetail(WaterUserTransferDetailID,WaterUserTransferID,
waterUserNO,waterUserName,waterUserAddress,areaNO,pianNO,duanNO,ordernumber,meterReaderID,meterReaderName,
meterReaderIDNew,meterReaderNameNew,areaNONew,duanNONew,waterMeterTypeId,WaterMeterTypeValue,Operator,OperateDateTime)
SELECT '{0}','{1}',
waterUserNO,waterUserName,waterUserAddress,areaNO,pianNO,duanNO,ordernumber,meterReaderID,meterReaderName,
'{2}','{3}','{4}','{5}',waterMeterTypeId,WaterMeterTypeValue,'{6}',GETDATE() FROM V_WATERUSER_CONNECTWATERMETER WHERE WATERUSERID='{7}' ";
                }

                strSQLDetail = string.Format(strSQLDetail, strWaterUserTransferDetailIDTemp, strWaterUserTransferID,
                                             strMeterReaderIDNew, strMeterReaderNameNew, strLogID, strWaterUserID, strAreaNONew, strDuanNONew);
            }
            if (strSQLDetail != "")
            {
                strSQLInsert = "BEGIN TRAN \r" + strSQLInsert + "\r" + strSQLDetail + "\r IF @@ERROR=0 \r COMMIT TRAN ELSE ROLLBACK TRAN";
                int intCount = BLLwaterUser.ExcuteSQL(strSQLInsert);
                if (intCount > 0)
                {
                    toolADD.Enabled  = true;
                    toolSave.Enabled = false;
                }
            }
            else
            {
                mes.Show("未检测到转户明细语句,请重新点击提交按钮");
                return;
            }
        }
Пример #10
0
        private void btSend_Click(object sender, EventArgs e)
        {
            if (lsbReceiver.Items.Count == 0)
            {
                mes.Show("请从通讯录里选择接收人!");
                return;
            }
            if (txtTitle.Text.Trim() == "")
            {
                mes.Show("请填写消息标题!");
                return;
            }
            if (txtContent.Text.Trim() == "")
            {
                if (mes.ShowQ("消息内容为空,确定不填写内容吗?") != DialogResult.OK)
                {
                    return;
                }
            }
            if (cmbClass.SelectedIndex < 0)
            {
                mes.Show("请选择消息'紧急状态'!");
                return;
            }

            try
            {
                MODELMESSAGESEND MODELMESSAGESEND = new MODELMESSAGESEND();
                MODELMESSAGESEND.MESSAGESENDID = GETTABLEID.GetTableID(strLogID, "MESSAGESEND");
                string strReceiveName = "";
                for (int i = 0; i < lsbReceiver.Items.Count; i++)
                {
                    ListItem lst = (ListItem)lsbReceiver.Items[i];
                    if (i == 0)
                    {
                        strReceiveName = lst.strName;
                    }
                    else
                    {
                        strReceiveName += ";" + lst.strName;
                    }
                }
                MODELMESSAGESEND.MESSAGERECEIVER = strReceiveName;
                MODELMESSAGESEND.MESSAGETITLE    = txtTitle.Text;
                MODELMESSAGESEND.MESSAGECLASS    = (cmbClass.SelectedIndex + 1).ToString();
                MODELMESSAGESEND.MESSAGECONTENT  = txtContent.Text;

                MODELMESSAGESEND.MESSAGESENDERID   = strLogID;
                MODELMESSAGESEND.MESSAGESENDERNAME = strUserName;
                MODELMESSAGESEND.MESSAGESENDTIME   = mes.GetDatetimeNow();
                if (BLLMESSAGESEND.Insert(MODELMESSAGESEND))
                {
                    try
                    {
                        for (int j = 0; j < lsbReceiver.Items.Count; j++)
                        {
                            ListItem            lst = (ListItem)lsbReceiver.Items[j];
                            MODELMESSAGERECEIVE MODELMESSAGERECEIVE = new MODELMESSAGERECEIVE();
                            MODELMESSAGERECEIVE.MESSAGERECEIVEID    = GETTABLEID.GetTableID(strLogID, "MESSAGERECEIVE");
                            MODELMESSAGERECEIVE.MESSAGESENDID       = MODELMESSAGESEND.MESSAGESENDID;
                            MODELMESSAGERECEIVE.MESSAGERECEIVERID   = lst.strID;
                            MODELMESSAGERECEIVE.MESSAGERECEIVERNAME = lst.strName;
                            if (!BLLMESSAGERECEIVE.Insert(MODELMESSAGERECEIVE))
                            {
                                mes.Show("发送给'" + lst.strName + "'时发生错误,请重新发送!");

                                //回滚发送的邮件
                                BLLMESSAGERECEIVE.Delete(" AND MESSAGESENDID='" + MODELMESSAGERECEIVE.MESSAGESENDID + "'");

                                //回滚发送的内容
                                BLLMESSAGESEND.Delete(MODELMESSAGESEND.MESSAGESENDID);
                                return;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        mes.Show(ex.Message);
                        log.Write(ex.ToString(), MsgType.Error);

                        //回滚发送的内容
                        BLLMESSAGESEND.Delete(MODELMESSAGESEND.MESSAGESENDID);

                        //回滚发送的邮件
                        BLLMESSAGERECEIVE.Delete(" AND MESSAGESENDID='" + MODELMESSAGESEND.MESSAGESENDID + "'");
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                mes.Show(ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
                return;
            }
            mes.Show("发送完成!");
            btSend.Enabled = false;
            btNew.Enabled  = true;
        }
Пример #11
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;
            }
        }
        private void toolSave_Click(object sender, EventArgs e)
        {
            if (txtName.Text.Trim() == "")
            {
                mes.Show("类别名称不能为空!");
                txtName.Focus();
                return;
            }
            if (chkIsEnable.Checked)
            {
                if (txtStartMonth.Text.Trim() == "")
                {
                    mes.Show("请输入开始月份!");
                    txtStartMonth.Focus();
                    return;
                }
                else
                {
                    if (!Information.IsNumeric(txtStartMonth.Text.Trim()))
                    {
                        mes.Show("开始月份只能为整数!");
                        txtStartMonth.Focus();
                        return;
                    }
                }
                if (txtStartDay.Text.Trim() == "")
                {
                    mes.Show("请输入开始日期!");
                    txtStartDay.Focus();
                    return;
                }
                else
                {
                    if (!Information.IsNumeric(txtStartDay.Text.Trim()))
                    {
                        mes.Show("开始日期只能为整数!");
                        txtStartDay.Focus();
                        return;
                    }
                }
                if (txtPercent.Text.Trim() == "")
                {
                    mes.Show("请输入滞纳金比率!");
                    txtPercent.Focus();
                    return;
                }
                else
                {
                    if (!Information.IsNumeric(txtStartMonth.Text.Trim()))
                    {
                        mes.Show("滞纳金比率只能为数字!");
                        txtPercent.Focus();
                        return;
                    }
                }
            }

            MODELwaterUserType MODELwaterUserType = new MODELwaterUserType();

            MODELwaterUserType.waterUserTypeName = txtName.Text;
            MODELwaterUserType.invoiceBillName   = txtInvioceBillName.Text;

            if (MODELwaterUserType.invoiceBillName != "")
            {
                string strFile = txtFilePath.Text;
                if (strFile != "")
                {
                    if (File.Exists(strFile))
                    {
                        if (!File.Exists(Application.StartupPath + @"\InvoiceModel\" + txtInvioceBillName.Text))
                        {
                            File.Copy(strFile, Application.StartupPath + @"\InvoiceModel\" + txtInvioceBillName.Text, true);
                        }
                    }
                    else
                    {
                        mes.Show("模板文件\"" + strFile + "\"不存在,请重新选择!");
                        return;
                    }
                }
            }

            if (chkIsEnable.Checked)
            {
                MODELwaterUserType.overDuechargeEnable     = "1";
                MODELwaterUserType.overDuechargeStartMonth = Convert.ToInt32(txtStartMonth.Text);
                MODELwaterUserType.overDuechargeStartDay   = Convert.ToInt32(txtStartDay.Text);
                MODELwaterUserType.overDuechargePercent    = Convert.ToDecimal(txtPercent.Text);
            }
            else
            {
                MODELwaterUserType.overDuechargeEnable = "0";
            }
            MODELwaterUserType.MEMO = txtMemo.Text;

            if (isAdd)
            {
                MODELwaterUserType.waterUserTypeId = GETTABLEID.GetTableID("", "WATERUSERTYPE");
                if (BLLwaterUserType.Insert(MODELwaterUserType))
                {
                    Query();
                }
                else
                {
                    mes.Show("添加失败,请重新点击保存按钮!");
                    return;
                }
            }
            else
            {
                MODELwaterUserType.waterUserTypeId = txtID.Text;
                if (BLLwaterUserType.Update(MODELwaterUserType))
                {
                    Query();
                    dgList.ClearSelection();
                    for (int i = 0; i < dgList.Rows.Count; i++)
                    {
                        if (dgList.Rows[i].Cells["waterUserTypeId"].Value != null && dgList.CurrentRow.Cells["waterUserTypeId"].Value != DBNull.Value)
                        {
                            string strID = dgList.Rows[i].Cells["waterUserTypeId"].Value.ToString();
                            if (MODELwaterUserType.waterUserTypeId == strID)
                            {
                                dgList.CurrentCell = dgList.Rows[i].Cells["waterUserTypeName"];
                                dgList_SelectionChanged(null, null);
                            }
                        }
                    }
                }
                else
                {
                    mes.Show("修改失败,请重新点击保存按钮!");
                    return;
                }
            }
            dgList.Enabled  = true;
            toolDel.Enabled = true;
            toolAdd.Text    = "添加";
            isAdd           = false;
            txtFilePath.Clear();
        }
Пример #13
0
        private void Btn_Submit_Click(object sender, EventArgs e)
        {
            Btn_Submit.Enabled = false;
            string Matter = string.Format("【补交水量】-审批意见:{0}", UserOpinion.Text.Trim());
            int    count  = sysidal.UpdateApprove_defalut("User_AddWater", ResolveID, IsPass.Checked, UserOpinion.Text.Trim(), PointSort, TaskID, Matter);

            if (count > 0)
            {
                if (sysidal.IsWorkTaskOver("User_AddWater", TaskID))//获取审批状态,如果是Meter_WorkTask.state=5 和User_WaterPrice.state=5,说明审批流程走完
                {
                    bool IsChargeAbate = false;

                    //======================================生成一条抄表记录

                    #region 生成补交水量记录
                    string  strChargeState = "1", strTrapePriceString = "", strExtraCharge = "", strChargeID = "";
                    decimal waterTotalCharge = 0, extraCharge1 = 0, extraCharge2 = 0;

                    DateTime dtNow = mes.GetDatetimeNow();

                    int intTotalNum = Convert.ToInt32(totalNumber.Text);

                    string    strSQL            = string.Format(@"SELECT trapezoidPrice,extraCharge FROM V_WATERUSER_CONNECTWATERMETER
WHERE waterUserId='{0}'", WATERUSERNO.Text);
                    DataTable dtReadMeterRecord = new SqlServerHelper().GetDateTableBySql(strSQL);
                    if (dtReadMeterRecord.Rows.Count > 0)
                    {
                        object obj = dtReadMeterRecord.Rows[0]["trapezoidPrice"];
                        if (obj != null && obj != DBNull.Value)
                        {
                            strTrapePriceString = obj.ToString();
                        }
                        obj = dtReadMeterRecord.Rows[0]["extraCharge"];
                        if (obj != null && obj != DBNull.Value)
                        {
                            strExtraCharge = obj.ToString();
                        }
                    }

                    //获取水费等信息
                    sysidal.GetAvePrice(intTotalNum, strTrapePriceString, strExtraCharge, 1, ref waterTotalCharge, ref extraCharge1, ref extraCharge2);
                    string strReadMeterRecordID = GETTABLEID.GetTableID(strLogID, "READMETERRECORD"); string strSQLExcute = string.Format(@"BEGIN TRAN
DECLARE @readMeterRecordIdLast varchar(30)
DECLARE @waterMeterEndNumber INT
SELECT TOP 1 @readMeterRecordIdLast=readMeterRecordId,@waterMeterEndNumber=waterMeterEndNumber FROM V_READMETERRECORD_LEFT_WATERFEECHARGE WHERE WATERUSERID='{0}' 
ORDER BY checkDateTime DESC,readMeterRecordDate DESC
IF @readMeterRecordIdLast IS NULL
BEGIN
SELECT @waterMeterEndNumber=waterMeterStartNumber FROM waterMeter WHERE WATERUSERID='{0}'
SET @readMeterRecordIdLast=NULL
END

DECLARE @PRESTORE DECIMAL(18,2)=0
DECLARE @LJQF DECIMAL(18,2)=0
SELECT @PRESTORE=PRESTORE, @LJQF=TOTALFEE FROM V_WATERUSERAREARAGE WHERE waterUserId='{0}'

INSERT INTO [readMeterRecord]([readMeterRecordId],[readMeterRecordIdLast],[waterMeterId],[waterMeterNo]
                                            ,[lastNumberYearMonth],[waterMeterLastNumber],[waterMeterEndNumber],SUBMETERNUMBER,[totalNumber],[totalNumberDescribe],[avePrice]
                                            ,[avePriceDescribe],[waterTotalCharge],[extraChargePrice1],[extraCharge1],[extraChargePrice2],[extraCharge2],
                                             [extraTotalCharge],[trapezoidPrice],[extraCharge]
                                            ,[totalCharge],[OVERDUEMONEY],[WATERFIXVALUE],[readMeterRecordYear],[readMeterRecordMonth],
                                            readMeterRecordYearAndMonth,initialReadMeterMesDateTime,[readMeterRecordDate],[waterMeterPositionName]
                                            ,[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName],[waterMeterProduct],[waterMeterSerialNumber]
                                            ,[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName],[checkState],[checkDateTime]
                                            ,[checker],[chargeState],[chargeID],[waterUserId],[waterUserNO],[waterUserName],waterUserNameCode,[waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO,unitNO,createType,waterPhone,[waterUserAddress],[waterUserPeopleCount]
                                            ,[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]
                                            ,[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],
[isSummaryMeter],[waterMeterParentId],[ordernumber],[WATERUSERQQYE],[WATERUSERJSYE],[WATERUSERLJQF])

                                            SELECT '{1}',@readMeterRecordIdLast,[waterMeterId],[waterMeterNo]
                                            ,NULL,@waterMeterEndNumber,@waterMeterEndNumber,0,{2},NULL,NULL
                                            ,NULL,{3},NULL,{4},NULL,{5},{4}+{5},[trapezoidPrice],[extraCharge]
                                            ,{3}+{4}+{5},0,[WATERFIXVALUE],NULL,NULL,GETDATE(),GETDATE(),GETDATE(),[waterMeterPositionName]
                                            ,[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeValue],
                                            [waterMeterProduct],[waterMeterSerialNumber],[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName],
                                            1,GETDATE(),'{6}','1',NULL,[waterUserId],[waterUserNO],[waterUserName],waterUserNameCode,
                                            [waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO,unitNO,createType,[waterPhone],[waterUserAddress],[waterUserPeopleCount]
                                            ,NULL,NULL,NULL,[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]
                                            ,[waterUserHouseType],[chargeType],[agentsign],NULL,[bankId],[bankName],[BankAcountNumber],
[isSummaryMeter],[waterMeterParentId],[ordernumber],@PRESTORE,@PRESTORE-@LJQF-{3}-{4}-{5},@LJQF+{3}+{4}+{5}  
                                            FROM V_WATERUSER_CONNECTWATERMETER WHERE waterUserId='{0}'
COMMIT TRAN", WATERUSERNO.Text, strReadMeterRecordID, intTotalNum, waterTotalCharge, extraCharge1, extraCharge2, strRealName);

                    IsChargeAbate = new SqlServerHelper().ExcuteSql(strSQLExcute) > 0?true:false;
                    #endregion

                    if (IsChargeAbate)
                    {
                        Hashtable hu = new Hashtable();
                        hu["IsAdd"]            = 1;
                        hu["CHARGEWORKERNAME"] = AppDomain.CurrentDomain.GetData("USERNAME").ToString();
                        hu["CHARGEWORKERID"]   = AppDomain.CurrentDomain.GetData("LOGINID").ToString();
                        hu["CHARGEWORKERDate"] = DateTime.Now.ToString();
                        int upCount = new SqlServerHelper().UpdateByHashtable("User_AddWater", "TaskID", TaskID, hu);
                        if (upCount > 0)
                        {
                            this.DialogResult = DialogResult.OK;
                            MessageBox.Show("水量补交成功!");
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("水量补交成功 ,记录保存失败!");
                        }
                    }
                    else
                    {
                        MessageBox.Show("水量补交失败!");
                    }
                }
                else
                {
                    this.DialogResult = DialogResult.OK;
                    MessageBox.Show("审批成功!");
                    this.Close();
                }
            }
            else
            {
                Btn_Submit.Enabled = true;
            }
        }
Пример #14
0
        private void btCharge_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgList.Rows.Count == 0)
                {
                    mes.Show("未找到预交水费的用户信息!");
                    return;
                }
                if (!Information.IsNumeric(txtBCYC.Text))
                {
                    return;
                }
                else
                if (Convert.ToDecimal(txtBCYC.Text) <= 0)
                {
                    mes.Show("预存金额不能为'0'");
                    txtBCYC.Focus();
                    return;
                }

                if (chkReceipt.Checked)
                {
                    if (txtReceiptNO.Text.Trim() == "")
                    {
                        mes.Show("收据号不能为空!");
                        return;
                    }
                }
                txtReceiptNO.Text = txtReceiptNO.Text.Trim().PadLeft(8, '0');

                //预存金额
                decimal decYCMoney = Convert.ToDecimal(txtBCYC.Text);

                for (int i = 0; i < dgList.SelectedRows.Count; i++)
                {
                    try
                    {
                        string strWaterUserID = "", strWaterUserNO = "", strWaterUserName = "", strWaterUserAddress = "",
                               strMeterReaderID = "", strMeterReaderName = "", strMeterReaderTel = "";

                        object objWaterUserID = dgList.SelectedRows[i].Cells["waterUserId"].Value;
                        if (objWaterUserID == null || objWaterUserID == DBNull.Value)
                        {
                            mes.Show("第'" + (i + 1).ToString() + "行用户ID获取失败,批量收费终止!");
                            return;
                        }
                        if ((decSumYuCun_YY + decYCMoney) > decSumYuCun_YK)
                        {
                            if (mes.ShowQ("检测到当前营业用户预存余额>业扩预存款,确定要继续吗?") != DialogResult.OK)
                            {
                                return;
                            }
                        }

                        #region 生成用户信息
                        strWaterUserID = objWaterUserID.ToString();
                        object objWaterUserMes = dgList.SelectedRows[i].Cells["waterUserNO"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserNO = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgList.SelectedRows[i].Cells["waterUserName"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserName = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgList.SelectedRows[i].Cells["waterUserAddress"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserAddress = objWaterUserMes.ToString();
                        }

                        object objWaterUser = dgList.SelectedRows[i].Cells["METERREADERID"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strMeterReaderID = objWaterUser.ToString();

                            DataRow[] drMeterReader     = dtMeterReader.Select("LOGINID='" + strMeterReaderID + "'");
                            object    objMeterReaderTel = drMeterReader[0]["TELEPHONENO"];
                            if (objMeterReaderTel != null && objMeterReaderTel != DBNull.Value)
                            {
                                strMeterReaderTel = objMeterReaderTel.ToString();
                            }
                        }

                        objWaterUser = dgList.SelectedRows[i].Cells["meterReaderName"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strMeterReaderName = objWaterUser.ToString();
                        }
                        #endregion

                        //计算结算余额
                        decimal decQQYE = 0, decJSYE = 0;
                        object  objPrestore = dgList.SelectedRows[i].Cells["prestore"].Value;
                        if (Information.IsNumeric(objPrestore))
                        {
                            decQQYE = Convert.ToDecimal(objPrestore);
                        }

                        decJSYE = decQQYE + Convert.ToDecimal(txtBCYC.Text);

                        string CHARGEID = GETTABLEID.GetTableID(strLoginID, "WATERFEECHARGE");
                        string PRESTORERUNNINGACCOUNTID = GETTABLEID.GetTableID(strLoginID, "PRESTORERUNNINGACCOUNT");
                        string _chargeID = sysidal.GetNewChargeID(strLoginID);

                        string strSQL  = string.Format(@"BEGIN TRAN
DECLARE @prestore DECIMAL(18,0)=0
SELECT @prestore=prestore FROM Meter_Install_Group WHERE GROUPID='{0}'

INSERT INTO Meter_Charge (CHARGEID,TaskID,CHARGEBCSS,CHARGEBCYS,TOTALCHARGE,prestore,FeeList,
CHARGETYPEID,CHARGEClASS,CHARGEWORKERID,CHARGEWORKERNAME,CHARGEDATETIME,RECEIPTPRINTCOUNT,ReceiptPrintSign,RECEIPTNO,ReceiptPrintTime)  
VALUES('{1}','{2}',0-{3},0,0,@prestore-{3},'余额转营业','6','17','{4}','{5}',GETDATE(),1,'1','{7}',GETDATE())

UPDATE Meter_Install_Group SET prestore=@prestore-{3} WHERE GROUPID='{0}'

SELECT @prestore=prestore FROM waterUser WHERE waterUserId='{6}'

INSERT INTO WATERFEECHARGE (CHARGEID,CHARGETYPEID,CHARGEClASS,CHARGEBCYS,CHARGEBCSS,CHARGEYSQQYE,CHARGEYSBCSZ,CHARGEYSJSYE,CHARGEWORKERID,
CHARGEWORKERNAME,CHARGEDATETIME,RECEIPTPRINTCOUNT,RECEIPTNO) 
VALUES('{9}','6','17',0,{3},@prestore,{3},@prestore+{3},'{4}','{5}',GETDATE(),'1','{7}')

INSERT INTO PRESTORERUNNINGACCOUNT (PRESTORERUNNINGACCOUNTID,CHARGEID,WATERUSERID,WATERUSERNO,WATERUSERNAME,WATERUSERADDRESS,AREANO,PIANNO,
DUANNO,ORDERNUMBER,COMMUNITYID,COMMUNITYNAME,METERREADERID,METERREADERNAME,CHARGERID,CHARGERNAME,WATERUSERTYPEID,WATERUSERTYPENAME,
WATERMETERTYPEID,WATERMETERTYPEVALUE,WATERMETERTYPECLASSID,WATERMETERTYPECLASSNAME,WATERUSERHOUSETYPE,CREATETYPE,WATERUSERPHONE,BUILDINGNO,UNITNO)

SELECT '{8}','{9}', WATERUSERID,WATERUSERNO,WATERUSERNAME,WATERUSERADDRESS,AREANO,PIANNO,DUANNO,ORDERNUMBER,COMMUNITYID,COMMUNITYNAME,
METERREADERID,METERREADERNAME,CHARGERID,CHARGERNAME,WATERUSERTYPEID,WATERUSERTYPENAME,WATERMETERTYPEID,WATERMETERTYPEVALUE,WATERMETERTYPECLASSID,
WATERMETERTYPECLASSNAME,WATERUSERHOUSETYPE,CREATETYPE,waterUserTelphoneNO,BUILDINGNO,UNITNO FROM V_WATERUSER_CONNECTWATERMETER WHERE waterUserId='{6}'

UPDATE waterUser SET prestore=@prestore+{3} WHERE waterUserId='{6}'

COMMIT TRAN", strGroupID, _chargeID, strTaskID, decYCMoney, strLoginID, strLoginName, strWaterUserID, txtReceiptNO.Text, PRESTORERUNNINGACCOUNTID, CHARGEID);
                        int    intRows = SqlServerHelper.ExcuteSql(strSQL);
                        if (intRows > 0)
                        {
                            decSumYuCun_YY      = decSumYuCun_YY + decYCMoney;
                            labYuCunSum_YY.Text = decSumYuCun_YY.ToString() + "元";

                            decimal decUserArearage = 0, decWaterUserPrestore = 0;
                            object  objUserArearage = dgList.SelectedRows[i].Cells["USERAREARAGE"].Value;
                            if (Information.IsNumeric(objUserArearage))
                            {
                                decUserArearage = Convert.ToDecimal(objUserArearage);
                            }
                            object objUserPrestore = dgList.SelectedRows[i].Cells["prestore"].Value;
                            if (Information.IsNumeric(objUserPrestore))
                            {
                                decWaterUserPrestore = Convert.ToDecimal(objUserPrestore);
                            }
                            decWaterUserPrestore = decWaterUserPrestore + decYCMoney;
                            decUserArearage      = decUserArearage + decYCMoney;
                            dgList.SelectedRows[i].Cells["USERAREARAGE"].Value = decUserArearage.ToString("F2");
                            dgList.SelectedRows[i].Cells["prestore"].Value     = decWaterUserPrestore.ToString("F2");

                            //如果勾选了打收据,打印收据
                            if (chkReceipt.Checked)
                            {
                                //--打印收据
                                #region
                                FastReport.Report report1 = new FastReport.Report();
                                try
                                {
                                    DataTable dtLastRecord = BLLwaterUser.QuerySQL("SELECT TOP 1 readMeterRecordId,readMeterRecordYearAndMonth,waterMeterLastNumber," +
                                                                                   "(CASE chargeState WHEN 0  THEN waterMeterLastNumber " +
                                                                                   "ELSE waterMeterEndNumber END) AS waterMeterEndNumber " +
                                                                                   "FROM readMeterRecord " +
                                                                                   "WHERE WATERUSERID='" +
                                                                                   strWaterUserID + "' ORDER BY readMeterRecordYearAndMonth DESC,readMeterRecordDate DESC");
                                    DataTable dtTemp = dtLastRecord.Clone();
                                    dtTemp.Columns["readMeterRecordYearAndMonth"].DataType = typeof(string);
                                    if (dtLastRecord.Rows.Count > 0)
                                    {
                                        dtTemp.ImportRow(dtLastRecord.Rows[0]);
                                        object objReadMeterRecordYearAndMonth = dtTemp.Rows[0]["readMeterRecordYearAndMonth"];
                                        if (Information.IsDate(objReadMeterRecordYearAndMonth))
                                        {
                                            dtTemp.Rows[0]["readMeterRecordYearAndMonth"] = Convert.ToDateTime(objReadMeterRecordYearAndMonth).ToString("yyyy-MM");
                                        }
                                    }
                                    //DataTable dtTemp = dtLastRecord.Copy();
                                    DataSet ds = new DataSet();
                                    dtTemp.TableName = "营业坐收收据模板";
                                    ds.Tables.Add(dtTemp);
                                    // load the existing report
                                    report1.Load(Application.StartupPath + @"\PRINTModel\收据模板\预存收费收据模板.frx");

                                    (report1.FindObject("txtDateTime") as FastReport.TextObject).Text               = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                                    (report1.FindObject("CellWaterUserNO") as FastReport.Table.TableCell).Text      = strWaterUserNO;
                                    (report1.FindObject("CellWaterUserName") as FastReport.Table.TableCell).Text    = strWaterUserName;
                                    (report1.FindObject("CellWaterUserAddress") as FastReport.Table.TableCell).Text = strWaterUserAddress;

                                    (report1.FindObject("txtQQYE") as FastReport.TextObject).Text = "前期余额: " + decQQYE.ToString("F2");
                                    string strBCSS = decYCMoney.ToString("F2");
                                    (report1.FindObject("txtBCJF") as FastReport.TextObject).Text             = "本次预存:         " + strBCSS;
                                    (report1.FindObject("txtJSYE") as FastReport.TextObject).Text             = "结算余额: " + decJSYE.ToString("F2");
                                    (report1.FindObject("txtChargeWorkerName") as FastReport.TextObject).Text = strLoginName;
                                    (report1.FindObject("txtReceiptNO") as FastReport.TextObject).Text        = "NO." + txtReceiptNO.Text;

                                    (report1.FindObject("txtMeterReader") as FastReport.TextObject).Text    = strMeterReaderName;
                                    (report1.FindObject("txtMeterReaderTel") as FastReport.TextObject).Text = strMeterReaderTel;

                                    string strCapMoney = RMBToCapMoney.CmycurD(strBCSS);
                                    (report1.FindObject("txtCapMoney") as FastReport.TextObject).Text = "金额大写:" + strCapMoney;

                                    // register the dataset
                                    report1.RegisterData(ds);
                                    report1.GetDataSource("营业坐收收据模板").Enabled = true;
                                    report1.PrintSettings.ShowDialog          = false;
                                    report1.Prepare();
                                    report1.Print();

                                    //获取新的收据号码,8位收据号
                                    if (Information.IsNumeric(txtReceiptNO.Text))
                                    {
                                        txtReceiptNO.Text = (Convert.ToInt64(txtReceiptNO.Text) + 1).ToString().PadLeft(8, '0');
                                    }
                                }
                                catch (Exception exx)
                                {
                                    MessageBox.Show(exx.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    return;
                                }
                                finally
                                {
                                    // free resources used by report
                                    report1.Dispose();
                                }
                                #endregion
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        mes.Show("预收失败!原因:" + ex.Message);
                        log.Write(ex.ToString(), MsgType.Error);
                        return;
                    }
                }
                btCharge.Enabled = false;
            }
            catch (Exception ex)
            {
                mes.Show(ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
                return;
            }
        }
Пример #15
0
        private void toolSubmit_Click(object sender, EventArgs e)
        {
            if (!IsADD && tvDep.SelectedNode.Tag.ToString() == "01")
            {
                mes.Show("该部门无法删除或修改!");
                return;
            }
            if (txtName.Text.Trim() == "")
            {
                mes.Show("请填写部门名称!");
                txtName.Focus();
                return;
            }
            if (txtCode.Text.Trim() == "")
            {
                mes.Show("请填写部门拼音简码!");
                txtCode.Focus();
                return;
            }
            //if (cmbParentID.SelectedValue == null && tvDep.SelectedNode.Tag.ToString()!="00010001")
            if (cmbParentID.SelectedValue == null)
            {
                mes.Show("请选择所属部门!");
                cmbParentID.Focus();
                return;
            }
            MODELBASE_DEPARTMENT MODELBASE_DEPARTMENT = new MODELBASE_DEPARTMENT();

            MODELBASE_DEPARTMENT.DEPARTMENTNAME = txtName.Text;
            //if (tvDep.SelectedNode.Tag.ToString() != "00010001")
            //MODELBASE_DEPARTMENT.PARENTID = cmbParentID.SelectedValue.ToString();
            //else
            //    MODELBASE_DEPARTMENT.PARENTID = "0";
            MODELBASE_DEPARTMENT.PARENTID          = cmbParentID.SelectedValue.ToString();
            MODELBASE_DEPARTMENT.DEPARTMENTMANAGER = cmbLeader.Text;
            MODELBASE_DEPARTMENT.DEPARTMENTTEL     = txtTel.Text;
            MODELBASE_DEPARTMENT.MEMO       = txtMemo.Text;
            MODELBASE_DEPARTMENT.SIMPLECODE = txtCode.Text.Trim();
            if (IsADD)
            {
                MODELBASE_DEPARTMENT.DEPARTMENTID = GETTABLEID.GetTableID(MODELBASE_DEPARTMENT.PARENTID, "BASE_DEPARTMENT");
            }
            else
            {
                MODELBASE_DEPARTMENT.DEPARTMENTID = txtID.Text;
                //if (MODELBASE_DEPARTMENT.DEPARTMENTIDOLD.Substring(0, MODELBASE_DEPARTMENT.PARENTID.Length) == MODELBASE_DEPARTMENT.PARENTID)
                //    MODELBASE_DEPARTMENT.DEPARTMENTID = MODELBASE_DEPARTMENT.DEPARTMENTIDOLD;
                //else
                //MODELBASE_DEPARTMENT.DEPARTMENTID = GETTABLEID.GetTableID(MODELBASE_DEPARTMENT.PARENTID, "BASE_DEPARTMENT");
            }
            try
            {
                if (IsADD)
                {
                    if (BLLBASE_DEPARTMENT.InsertBASE_DEPARTMENT(MODELBASE_DEPARTMENT))
                    {
                        tvDep.Enabled = true;
                        tvDep.Nodes.Clear();
                        AddTreeNode("0", null);
                        toolAdd.Enabled = true;
                        GetSelectedNode(tvDep.Nodes[0], MODELBASE_DEPARTMENT.DEPARTMENTID);
                        BindDEP();
                    }
                }
                else
                {
                    if (BLLBASE_DEPARTMENT.UpdateDEP(MODELBASE_DEPARTMENT))
                    {
                        tvDep.Enabled = true;
                        tvDep.Nodes.Clear();
                        AddTreeNode("0", null);
                        GetSelectedNode(tvDep.Nodes[0], MODELBASE_DEPARTMENT.DEPARTMENTID);
                        BindDEP();
                    }
                }
            }
            catch (Exception ex)
            {
                lg.Write(ex.ToString(), MsgType.Error);
                mes.Show(ex.Message.ToString());
                return;
            }
            IsADD = false;
        }
Пример #16
0
        private void Btn_Submit_Click(object sender, EventArgs e)
        {
            string Matter = string.Format("【退款审批】-用户号:{0};用户名:{1};退款金额:{2};退款原因:{3}", WATERUSERNO.Text, ApplyUser.Text, CHARGEBCSS_IN.Text, RefundDescribe.Text);

            Btn_Submit.Enabled = false;
            int count = sysidal.UpdateApprove_Refund_defalut(ResolveID, IsPass.Checked, UserOpinion.Text.Trim(), PointSort, TaskID, Matter);

            if (count > 0)
            {
                if (sysidal.IsWorkTaskOver("User_Refund", TaskID))//获取审批状态,如果是Meter_WorkTask.state=5 和User_Refund.state=5,说明审批流程走完
                {
                    bool IsUserRefund = false;
                    //======================================================================================================

                    #region 20160909 ByRen
                    //修改PersonalWork_DAL类函数GetUserAllowRefund,增加预存单号ID、地址、账户余额字段,修改查询条件VV.CHARGEBCSS<=VW.prestore
                    //using BASEFUNCTION;//引用基本函数类,获取收费ID
                    //增加收费员ID和收费员姓名
                    //private string strLoginID = "";
                    //private string strUserName = "";
                    //在窗体加载时判断能否获取到收费员ID和姓名
                    //在类SqlServerHelper内添加自定义执行函数ExcuteSql
                    //新建@"\PRINTModel\收据模板\审批_退费模板.frx"打印模板
                    //-----增加了打印收据,应增加加打印收据勾选框及收据号
                    //引用fastreport类
                    //添加了退款单号的更新

                    string strWaterUserID = "", strWaterUserName = "", strWaterUserAddress = "", strChargeIDOld = "", strPrestoreRunningAccountIDOld = "",
                           strChargeIDNew = "", strPrestoreRunningAccountIDNew = "";
                    decimal decPrestore = 0, decRefund = 0;

                    DateTime dtNow = new DateTime();
                    Messages mes   = new Messages();
                    dtNow = mes.GetDatetimeNow();

                    Hashtable ht           = sysidal.GetUserAllowRefund(CHARGEID_IN.Text);
                    object    objWaterUser = ht["WATERUSERNO"];
                    if (objWaterUser != null && objWaterUser != DBNull.Value)
                    {
                        strWaterUserID = objWaterUser.ToString();

                        objWaterUser = ht["APPLYUSER"];
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strWaterUserName = objWaterUser.ToString();
                        }

                        objWaterUser = ht["WATERUSERADDRESS"];
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strWaterUserAddress = objWaterUser.ToString();
                        }

                        objWaterUser = ht["CHARGEID"];
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strChargeIDOld = objWaterUser.ToString();
                        }

                        objWaterUser = ht["PRESTORERUNNINGACCOUNTID"];
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strPrestoreRunningAccountIDOld = objWaterUser.ToString();
                        }

                        try
                        {
                            objWaterUser = ht["PRESTORE"];
                            if (objWaterUser != null && objWaterUser != DBNull.Value)
                            {
                                decPrestore = Convert.ToDecimal(objWaterUser);
                            }
                        }
                        catch (Exception ex)
                        {
                        }

                        try
                        {
                            decRefund = Convert.ToDecimal(CHARGEBCSS_IN.Text);
                        }
                        catch (Exception ex)
                        {
                        }

                        GETTABLEID GETTABLEID = new GETTABLEID();
                        strChargeIDNew = GETTABLEID.GetTableID(strLoginID, "WATERFEECHARGE");
                        strPrestoreRunningAccountIDNew = GETTABLEID.GetTableID(strLoginID, "PRESTORERUNNINGACCOUNT");

                        string strSQL = string.Format(@"
BEGIN TRAN
BEGIN
INSERT INTO PRESTORERUNNINGACCOUNT(PRESTORERUNNINGACCOUNTID,CHARGEID,WATERUSERID,WATERUSERNO,WATERUSERNAME,WATERUSERNAMECODE,WATERUSERPHONE,WATERUSERADDRESS,WATERUSERPEOPLECOUNT,AREANO,PIANNO,DUANNO,
ORDERNUMBER,COMMUNITYID,COMMUNITYNAME,BUILDINGNO,UNITNO,METERREADERID,METERREADERNAME,CHARGERID,CHARGERNAME,WATERUSERTYPEID,WATERUSERTYPENAME,WATERMETERTYPEID,
WATERMETERTYPEVALUE,WATERMETERTYPECLASSID,WATERMETERTYPECLASSNAME,WATERUSERHOUSETYPE,CREATETYPE)  
SELECT '{0}','{1}',WATERUSERID,WATERUSERNO,WATERUSERNAME,WATERUSERNAMECODE,WATERUSERPHONE,WATERUSERADDRESS,WATERUSERPEOPLECOUNT,AREANO,PIANNO,DUANNO,
ORDERNUMBER,COMMUNITYID,COMMUNITYNAME,BUILDINGNO,UNITNO,METERREADERID,METERREADERNAME,CHARGERID,CHARGERNAME,WATERUSERTYPEID,WATERUSERTYPENAME,WATERMETERTYPEID,
WATERMETERTYPEVALUE,WATERMETERTYPECLASSID,WATERMETERTYPECLASSNAME,WATERUSERHOUSETYPE,CREATETYPE FROM PRESTORERUNNINGACCOUNT 
WHERE PRESTORERUNNINGACCOUNTID='{2}'", strPrestoreRunningAccountIDNew, strChargeIDNew, strPrestoreRunningAccountIDOld);

                        strSQL += string.Format(@"
INSERT INTO WATERFEECHARGE(CHARGEID,CHARGETYPEID,CHARGEClASS,CHARGEBCSS,CHARGEYSQQYE,CHARGEYSBCSZ,CHARGEYSJSYE,CHARGEWORKERID,CHARGEWORKERNAME,CHARGEDATETIME,RECEIPTNO)
SELECT '{0}','1','6',-{1},{2},-{3},{4},'{5}','{6}',GETDATE(),RECEIPTNO FROM WATERFEECHARGE WHERE CHARGEID='{7}'",
                                                strChargeIDNew, decRefund, decPrestore, decRefund, decPrestore - decRefund, strLoginID, strUserName, strChargeIDOld);

                        strSQL += string.Format(@"
UPDATE WATERUSER SET PRESTORE={0} WHERE WATERUSERID='{1}'", decPrestore - decRefund, strWaterUserID);

                        strSQL += @"END
IF(@@ERROR>0)
BEGIN
ROLLBACK TRAN
RETURN
END
COMMIT TRAN
";

                        int intRows = 0;
                        try
                        {
                            intRows = new SqlServerHelper().ExcuteSql(strSQL);
                        }
                        catch (Exception ex)
                        {
                            mes.Show("执行退款语句失败,原因:" + ex.Message);
                            return;
                        }
                        if (intRows > 0)
                        {
                            IsUserRefund = true;
                            //打印收据
                            FastReport.Report report1 = new FastReport.Report();
                            try
                            {
                                // load the existing report
                                report1.Load(Application.StartupPath + @"\PRINTModel\收据模板\审批_退费模板.frx");
                                (report1.FindObject("CellWaterUserNO") as FastReport.Table.TableCell).Text      = strWaterUserID;
                                (report1.FindObject("CellWaterUserName") as FastReport.Table.TableCell).Text    = strWaterUserName;
                                (report1.FindObject("CellWaterUserAddress") as FastReport.Table.TableCell).Text = strWaterUserAddress;
                                (report1.FindObject("txtQQYE") as FastReport.TextObject).Text             = "前期余额:            " + decPrestore.ToString("F2");
                                (report1.FindObject("txtBCJF") as FastReport.TextObject).Text             = "本次退费: " + (0 - decRefund).ToString();
                                (report1.FindObject("txtJSYE") as FastReport.TextObject).Text             = "结算余额:            " + (decPrestore - decRefund).ToString("F2");
                                (report1.FindObject("txtChargeWorkerName") as FastReport.TextObject).Text = strUserName;
                                (report1.FindObject("txtReceiptNO") as FastReport.TextObject).Text        = "NO.";

                                (report1.FindObject("txtMeterReader") as FastReport.TextObject).Text = "抄表员";
                                report1.Prepare();
                                report1.PrintSettings.ShowDialog = false;
                                report1.Print();
                            }
                            catch (Exception ex)
                            {
                                mes.Show("打印收据错误,原因:" + ex.Message);
                            }
                            finally
                            {
                                // free resources used by report
                                report1.Dispose();
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("账户余额不足或收款单号不存在,无法退款!");
                        return;
                    }
                    #endregion
                    if (IsUserRefund)
                    {
                        Hashtable hu = new Hashtable();

                        //退款时间:CHARGEID_OutTime
                        //退款金额: CHARGEBCSS_Out
                        //退款人ID:CHARGEWORKERID
                        //退款人:CHARGEWORKERNAME
                        //退款状态:IsRefund;0-未退款,1-已退款

                        hu["IsRefund"]         = 1;
                        hu["CHARGEWORKERNAME"] = AppDomain.CurrentDomain.GetData("USERNAME").ToString();
                        hu["CHARGEWORKERID"]   = AppDomain.CurrentDomain.GetData("LOGINID").ToString();
                        hu["CHARGEID_OutTime"] = DateTime.Now.ToString();
                        hu["CHARGEBCSS_Out"]   = 0;//=====================================================

                        //添加退款单号 ByRen
                        hu["CHARGEID_Out"] = strChargeIDNew;

                        int upCount = new SqlServerHelper().UpdateByHashtable("User_Refund", "TaskID", TaskID, hu);

                        if (upCount > 0)
                        {
                            this.DialogResult = DialogResult.OK;
                            MessageBox.Show("退款成功!");
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("退款成功 ,记录保存失败!");
                        }
                    }
                    else
                    {
                        MessageBox.Show("退款失败!");
                    }
                }
                else
                {
                    this.DialogResult = DialogResult.OK;
                    MessageBox.Show("审批成功!");
                    this.Close();
                }
            }
            else
            {
                Btn_Submit.Enabled = true;
            }
        }
        private void Btn_Submit_Click(object sender, EventArgs e)
        {
            Btn_Submit.Enabled = false;

            string Matter = string.Format("【费用减免】-用户名:{0};用户号:{1};地址:{2};减免月份:{3};原水量:{6};新水量:{7};减免金额:{4};减免原因:{5}", waterUserName.Text, WATERUSERNO.Text, waterUserAddress.Text, readMeterRecordYearAndMonth.Text, AbateDescribe.Text, LB_Abate.Text, OldTotalNumber.Text, NewTotalNumber.Text);
            int    count  = sysidal.UpdateApprove_defalut("User_ChargeAbate", ResolveID, IsPass.Checked, UserOpinion.Text.Trim(), PointSort, TaskID, Matter);

            if (count > 0)
            {
                if (sysidal.IsWorkTaskOver("User_ChargeAbate", TaskID))//获取审批状态,如果是Meter_WorkTask.state=5 和User_WaterPrice.state=5,说明审批流程走完
                {
                    try
                    {
                        bool IsChargeAbate = false;

                        //===================================================================================减免水费
                        //返回bool类型

                        #region 20160909 ByRen

                        //增加台账及冲减明细表字段AbateMoney(减免金额)
                        //ALTER TABLE readMeterRecord ADD AbateMoney decimal(18,2) default 0
                        //ALTER TABLE readMeterRecordCancel ADD AbateMoney decimal(18,2) default 0

                        string   strChargeState = "1", strTrapePriceString = "", strExtraCharge = "", strChargeID = "";
                        decimal  waterTotalCharge = 0, extraCharge1 = 0, extraCharge2 = 0, decPrestore = 0, decQFSum = 0, decTotalChargeEnd = Convert.ToDecimal(totalChargeEND.Text);
                        int      intNotReadMonths = 1, intTotalNumber = Convert.ToInt32(NewTotalNumber.Text);
                        DateTime dtNow = mes.GetDatetimeNow();

                        int intRows = 0;//水表变更语句执行影响的行数;

                        string    strSQL      = string.Format(@"SELECT * FROM V_WATERUSERAREARAGE WHERE waterUserId='{0}'", WATERUSERNO.Text);
                        DataTable dtWaterUser = new SqlServerHelper().GetDateTableBySql(strSQL);
                        if (dtWaterUser.Rows.Count > 0)
                        {
                            object obj = dtWaterUser.Rows[0]["prestore"];
                            if (Information.IsNumeric(obj))
                            {
                                decPrestore = Convert.ToDecimal(obj);
                            }

                            obj = dtWaterUser.Rows[0]["TOTALFEE"];
                            if (Information.IsNumeric(obj))
                            {
                                decQFSum = Convert.ToDecimal(obj);
                            }
                        }

                        strSQL = string.Format(@"SELECT chargeState,trapezoidPrice,extraCharge,NotReadMonthCount,CHARGEID FROM readMeterRecord WHERE readMeterRecordId='{0}'", readMeterRecordId.Text);
                        DataTable dtReadMeterRecord = new SqlServerHelper().GetDateTableBySql(strSQL);
                        if (dtReadMeterRecord.Rows.Count > 0)
                        {
                            object obj = dtReadMeterRecord.Rows[0]["trapezoidPrice"];
                            if (obj != null && obj != DBNull.Value)
                            {
                                strTrapePriceString = obj.ToString();
                            }
                            obj = dtReadMeterRecord.Rows[0]["extraCharge"];
                            if (obj != null && obj != DBNull.Value)
                            {
                                strExtraCharge = obj.ToString();
                            }
                            obj = dtReadMeterRecord.Rows[0]["NotReadMonthCount"];
                            if (Information.IsNumeric(obj))
                            {
                                intNotReadMonths = Convert.ToInt16(obj);
                            }
                            obj = dtReadMeterRecord.Rows[0]["CHARGEID"];
                            if (obj != null && obj != DBNull.Value)
                            {
                                strChargeID = obj.ToString();
                            }

                            //获取水费等信息
                            sysidal.GetAvePrice(intTotalNumber, strTrapePriceString, strExtraCharge, intNotReadMonths, ref waterTotalCharge, ref extraCharge1, ref extraCharge2);

                            obj = dtReadMeterRecord.Rows[0]["chargeState"];
                            if (obj != null && obj != DBNull.Value)
                            {
                                strChargeState = obj.ToString();
                            }
                            if (strChargeState == "3")
                            {
                                #region 已收费的抄表记录,需要先红冲此收费记录,然后生成一条新的抄表记录
                                string strReadMeterRecordID    = GETTABLEID.GetTableID(strLogID, "READMETERRECORD");
                                string strReadMeterRecordIDNew = (Convert.ToInt64(strReadMeterRecordID) + 1).ToString();

                                string ChargeID    = GETTABLEID.GetTableID(strLogID, "WATERFEECHARGE");
                                string ChargeIDNew = (Convert.ToInt64(ChargeID) + 1).ToString();

                                string strSQLExcute = string.Format(@"BEGIN TRAN
INSERT INTO [readMeterRecord]([readMeterRecordId],[readMeterRecordIdLast],[waterMeterId],[waterMeterNo]
                                            ,[lastNumberYearMonth],[waterMeterLastNumber],[waterMeterEndNumber],SUBMETERNUMBER,[totalNumber],[totalNumberDescribe],[avePrice]
                                            ,[avePriceDescribe],[waterTotalCharge],[extraChargePrice1],[extraCharge1],[extraChargePrice2],[extraCharge2],[extraChargePrice3]
                                            ,[extraCharge3],[extraChargePrice4],[extraCharge4],[extraChargePrice5],[extraCharge5],[extraChargePrice6],[extraCharge6]
                                            ,[extraChargePrice7],[extraCharge7],[extraChargePrice8],[extraCharge8],[extraTotalCharge],[trapezoidPrice],[extraCharge]
                                            ,[totalCharge],[OVERDUEMONEY],[WATERFIXVALUE],[readMeterRecordYear],[readMeterRecordMonth],
                                            readMeterRecordYearAndMonth,initialReadMeterMesDateTime,[readMeterRecordDate],[waterMeterPositionName]
                                            ,[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName],[waterMeterProduct],[waterMeterSerialNumber]
                                            ,[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName],[checkState],[checkDateTime]
                                            ,[checker],[chargeState],[chargeID],[waterUserId],[waterUserNO],[waterUserName],waterUserNameCode,[waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO,unitNO,createType,waterPhone,[waterUserAddress],[waterUserPeopleCount]
                                            ,[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]
                                            ,[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],
[isSummaryMeter],[waterMeterParentId],[ordernumber] ,[memo],[WATERUSERQQYE],[WATERUSERJSYE])

                                            SELECT '{0}','{1}',[waterMeterId],[waterMeterNo]
                                            ,[lastNumberYearMonth],[waterMeterEndNumber],[waterMeterLastNumber],0-SUBMETERNUMBER,0-[totalNumber],[totalNumberDescribe],[avePrice]
                                            ,[avePriceDescribe],0-[waterTotalCharge],[extraChargePrice1],0-[extraCharge1],[extraChargePrice2],0-[extraCharge2],[extraChargePrice3]
                                            ,0-[extraCharge3],[extraChargePrice4],0-[extraCharge4],[extraChargePrice5],0-[extraCharge5],[extraChargePrice6],0-[extraCharge6]
                                            ,[extraChargePrice7],0-[extraCharge7],[extraChargePrice8],0-[extraCharge8],0-[extraTotalCharge],[trapezoidPrice],[extraCharge]
                                            ,0-[totalCharge],0-[OVERDUEMONEY],[WATERFIXVALUE],NULL,NULL,'{2}',NULL,'{2}',[waterMeterPositionName]
                                            ,[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName],
                                            [waterMeterProduct],[waterMeterSerialNumber],[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName],
                                            [checkState],'{2}','{3}','3','{4}',[waterUserId],[waterUserNO],[waterUserName],waterUserNameCode,
                                            [waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO,unitNO,createType,[waterPhone],[waterUserAddress],[waterUserPeopleCount]
                                            ,[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]
                                            ,[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],
[isSummaryMeter],[waterMeterParentId],[ordernumber] ,'红冲台账:{1}',{5}-{15},{5}-{15}+{8} 
                                            FROM readMeterRecord WHERE readMeterRecordId='{1}'

                                            INSERT INTO WATERFEECHARGE(CHARGEID,TOTALNUMBERCHARGE,EXTRACHARGECHARGE1,EXTRACHARGECHARGE2,
                            WATERTOTALCHARGE,EXTRATOTALCHARGE,TOTALCHARGE,OVERDUEMONEY,CHARGETYPEID,CHARGEClASS,CHARGEBCYS,CHARGEBCSS,CHARGEYSQQYE,
                            CHARGEYSBCSZ,CHARGEYSJSYE,CHARGEWORKERID,CHARGEWORKERNAME,CHARGEDATETIME,INVOICEPRINTSIGN,RECEIPTPRINTCOUNT,MEMO)
                            SELECT '{4}',0-TOTALNUMBERCHARGE,0-EXTRACHARGECHARGE1,0-EXTRACHARGECHARGE2,
                            0-WATERTOTALCHARGE,0-EXTRATOTALCHARGE,0-TOTALCHARGE,0-OVERDUEMONEY,CHARGETYPEID,'4',0-CHARGEBCYS,0,{5},CHARGEBCYS,{5}+CHARGEBCYS,
                       CHARGEWORKERID,CHARGEWORKERNAME,DATEADD(SECOND,1,GETDATE()),0,0,NULL FROM WATERFEECHARGE WHERE CHARGEID='{7}'

UPDATE WATERUSER SET prestore={5}+{8} WHERE WATERUSERID='{9}' 

                            INSERT INTO [readMeterRecord]([readMeterRecordId],[readMeterRecordIdLast],[waterMeterId],[waterMeterNo]
                                            ,[lastNumberYearMonth],[waterMeterLastNumber],[waterMeterEndNumber],SUBMETERNUMBER,[totalNumber],[totalNumberDescribe],[avePrice]
                                            ,[avePriceDescribe],[waterTotalCharge],[extraChargePrice1],[extraCharge1],[extraChargePrice2],[extraCharge2],[extraChargePrice3]
                                            ,[extraCharge3],[extraChargePrice4],[extraCharge4],[extraChargePrice5],[extraCharge5],[extraChargePrice6],[extraCharge6]
                                            ,[extraChargePrice7],[extraCharge7],[extraChargePrice8],[extraCharge8],[extraTotalCharge],[trapezoidPrice],[extraCharge]
                                            ,[totalCharge],[OVERDUEMONEY],[WATERFIXVALUE],readMeterRecordYearAndMonth,initialReadMeterMesDateTime,[readMeterRecordDate],[waterMeterPositionName]
                                            ,[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName],[waterMeterProduct],[waterMeterSerialNumber]
                                            ,[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName],[checkState],[checkDateTime]
                                            ,[checker],[chargeState],[chargeID],[waterUserId],[waterUserNO],[waterUserName],waterUserNameCode,[waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO,unitNO,createType,waterPhone,[waterUserAddress],[waterUserPeopleCount]
                                            ,[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]
                                            ,[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],
[isSummaryMeter],[waterMeterParentId],[ordernumber] ,[memo],[WATERUSERQQYE],[WATERUSERJSYE]) 

                                            SELECT '{10}','',[waterMeterId],[waterMeterNo]
                                            ,[lastNumberYearMonth],[waterMeterEndNumber] - {11},[waterMeterEndNumber],0,{11},NULL,NULL
                                            ,NULL,{12},[extraChargePrice1],{13},[extraChargePrice2],{14},[extraChargePrice3]
                                            ,[extraCharge3],[extraChargePrice4],[extraCharge4],[extraChargePrice5],[extraCharge5],[extraChargePrice6],[extraCharge6]
                                            ,[extraChargePrice7],[extraCharge7],[extraChargePrice8],[extraCharge8],{13}+{14},[trapezoidPrice],[extraCharge]
                                            ,{12}+{13}+{14},0,[WATERFIXVALUE],DATEADD(SECOND,2,GETDATE()),NULL,DATEADD(SECOND,2,GETDATE()),[waterMeterPositionName]
                                            ,[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName],
                                            [waterMeterProduct],[waterMeterSerialNumber],[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName],
                                            '1',DATEADD(SECOND,2,GETDATE()),'{3}','1',NULL,[waterUserId],[waterUserNO],[waterUserName],waterUserNameCode,
                                            [waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO,unitNO,createType,[waterPhone],[waterUserAddress],[waterUserPeopleCount]
                                            ,[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]
                                            ,[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],
[isSummaryMeter],[waterMeterParentId],[ordernumber] ,NULL,{5}+{8}-{15},{5}+{8}-{15}-{12}-{13}-{14} 
 FROM readMeterRecord WHERE readMeterRecordId='{1}'
COMMIT TRAN",
                                                                    strReadMeterRecordID, readMeterRecordId.Text, dtNow, strRealName, ChargeID, decPrestore, strLogID, strChargeID, decTotalChargeEnd, WATERUSERNO.Text,
                                                                    strReadMeterRecordIDNew, intTotalNumber, waterTotalCharge, extraCharge1, extraCharge2, decQFSum);

                                intRows = new SqlServerHelper().ExcuteSql(strSQLExcute);
                                #endregion
                            }
                            else if (strChargeState == "2")
                            {
                                mes.Show("该抄表记录为挂账单据,无法执行减免操作!");
                            }
                            else if (strChargeState == "1")
                            {
                                DateTime dtReadMeterMonth = Convert.ToDateTime(readMeterRecordYearAndMonth.Text);
                                int      intMonth         = dtNow.Year * 12 + dtNow.Month - dtReadMeterMonth.Year * 12 - dtReadMeterMonth.Month;
                                if (intMonth > 0)
                                {
                                    #region 未收费并且抄表月份不是当月的,需要先将历史抄表记录收费并且红冲,然后再生成一条新的抄表记录
                                    string strReadMeterRecordID    = GETTABLEID.GetTableID(strLogID, "READMETERRECORD");
                                    string strReadMeterRecordIDNew = (Convert.ToInt64(strReadMeterRecordID) + 1).ToString();

                                    string ChargeID    = GETTABLEID.GetTableID(strLogID, "WATERFEECHARGE");
                                    string ChargeIDNew = (Convert.ToInt64(ChargeID) + 1).ToString();

                                    string strSQLExcute = string.Format(@"

BEGIN TRAN
DECLARE @TotalNumber INT=0
DECLARE @waterTotalCharge DECIMAL(18,2)=0
DECLARE @extraCharge1 DECIMAL(18,2)=0
DECLARE @extraCharge2 DECIMAL(18,2)=0
DECLARE @extraTotalCharge DECIMAL(18,2)=0
DECLARE @totalCharge DECIMAL(18,2)=0
DECLARE @Prestore DECIMAL(18,2)=0
DECLARE @QFZJ DECIMAL(18,2)=0

SELECT @Prestore=Prestore,@QFZJ=TOTALFEE FROM V_WATERUSERAREARAGE WHERE waterUserId='{0}'

SELECT @waterTotalCharge=waterTotalCharge,@extraCharge1=extraCharge1,
@extraCharge2=extraCharge2,@extraTotalCharge=extraTotalCharge,
@totalCharge=totalCharge FROM readMeterRecord where readMeterRecordId='{1}'

INSERT INTO WATERFEECHARGE(CHARGEID,TOTALNUMBERCHARGE,EXTRACHARGECHARGE1,
EXTRACHARGECHARGE2,WATERTOTALCHARGE,EXTRATOTALCHARGE,TOTALCHARGE,CHARGETYPEID,
CHARGEClASS,CHARGEBCYS,CHARGEBCSS,CHARGEYSQQYE,CHARGEYSBCSZ,CHARGEYSJSYE,
CHARGEWORKERID,CHARGEWORKERNAME,CHARGEDATETIME)
SELECT '{2}',@TotalNumber,@waterTotalCharge,@extraCharge1,@extraCharge2,
@extraTotalCharge,@totalCharge,'1','1',@totalCharge,0,@Prestore,0,@Prestore,
'{3}','{4}',GETDATE()

UPDATE readMeterRecord SET chargeState='3',chargeID='{2}' WHERE readMeterRecordId='{1}'

INSERT INTO [readMeterRecord]([readMeterRecordId],[readMeterRecordIdLast],[waterMeterId],[waterMeterNo]
,[lastNumberYearMonth],[waterMeterLastNumber],[waterMeterEndNumber],SUBMETERNUMBER,[totalNumber],[totalNumberDescribe],[avePrice]
,[avePriceDescribe],[waterTotalCharge],[extraChargePrice1],[extraCharge1],[extraChargePrice2],[extraCharge2]
,[extraTotalCharge],[trapezoidPrice],[extraCharge]
,[totalCharge],[OVERDUEMONEY],[WATERFIXVALUE],readMeterRecordYearAndMonth,initialReadMeterMesDateTime,[readMeterRecordDate],[waterMeterPositionName]
,[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName]
,[waterMeterProduct],[waterMeterSerialNumber]
,[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName]
,[checkState],[checkDateTime],[checker],[chargeState],[chargeID],[waterUserId],[waterUserNO],[waterUserName]
,waterUserNameCode,[waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO
,unitNO,createType,waterPhone,[waterUserAddress],[waterUserPeopleCount]
,[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]
,[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],
[isSummaryMeter],[waterMeterParentId],[ordernumber] ,[memo],WATERUSERQQYE,WATERUSERJSYE,WATERUSERLJQF) 

SELECT '{5}','',[waterMeterId],[waterMeterNo]
,[lastNumberYearMonth],[waterMeterEndNumber],[waterMeterLastNumber],0,0-[totalNumber],NULL,[avePrice]
,NULL,0-[waterTotalCharge],[extraChargePrice1],0-[extraCharge1],[extraChargePrice2],0-[extraCharge2]
,0-[extraTotalCharge],[trapezoidPrice],[extraCharge]
,0-[totalCharge],0,[WATERFIXVALUE],DATEADD(SECOND,1,GETDATE()),DATEADD(SECOND,1,GETDATE()),DATEADD(SECOND,1,GETDATE()),[waterMeterPositionName]
,[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName]
,[waterMeterProduct],[waterMeterSerialNumber]
,[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName]
,'1',DATEADD(SECOND,1,GETDATE()),'{4}','3','{6}',[waterUserId],[waterUserNO],[waterUserName]
,waterUserNameCode,[waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO
,unitNO,createType,[waterPhone],[waterUserAddress],[waterUserPeopleCount]
,[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]
,[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],
[isSummaryMeter],[waterMeterParentId],[ordernumber] ,NULL,@Prestore-@QFZJ,@Prestore-@QFZJ+totalCharge,@QFZJ-totalCharge
 FROM readMeterRecord WHERE readMeterRecordId='{1}'
 
 INSERT INTO  WATERFEECHARGE(CHARGEID,TOTALNUMBERCHARGE,EXTRACHARGECHARGE1,
EXTRACHARGECHARGE2,WATERTOTALCHARGE,EXTRATOTALCHARGE,TOTALCHARGE,CHARGETYPEID,
CHARGEClASS,CHARGEBCYS,CHARGEBCSS,CHARGEYSQQYE,CHARGEYSBCSZ,CHARGEYSJSYE,
CHARGEWORKERID,CHARGEWORKERNAME,CHARGEDATETIME)
SELECT '{6}',0-@TotalNumber,0-@waterTotalCharge,0-@extraCharge1,0-@extraCharge2,
0-@extraTotalCharge,0-@totalCharge,'1','4',0-@totalCharge,0,@Prestore,0,@Prestore,
'{3}','{4}',DATEADD(SECOND,2,GETDATE())

SELECT @Prestore=Prestore,@QFZJ=TOTALFEE FROM V_WATERUSERAREARAGE WHERE waterUserId='{0}'

INSERT INTO [readMeterRecord]([readMeterRecordId],[readMeterRecordIdLast],[waterMeterId],[waterMeterNo]
,[lastNumberYearMonth],[waterMeterLastNumber],[waterMeterEndNumber],SUBMETERNUMBER,[totalNumber],[totalNumberDescribe],[avePrice]
,[avePriceDescribe],[waterTotalCharge],[extraChargePrice1],[extraCharge1],[extraChargePrice2],[extraCharge2]
,[extraTotalCharge],[trapezoidPrice],[extraCharge]
,[totalCharge],[OVERDUEMONEY],[WATERFIXVALUE],readMeterRecordYearAndMonth,initialReadMeterMesDateTime,[readMeterRecordDate],[waterMeterPositionName]
,[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName]
,[waterMeterProduct],[waterMeterSerialNumber]
,[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName]
,[checkState],[checkDateTime],[checker],[chargeState],[chargeID],[waterUserId],[waterUserNO],[waterUserName]
,waterUserNameCode,[waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO
,unitNO,createType,waterPhone,[waterUserAddress],[waterUserPeopleCount]
,[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]
,[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],
[isSummaryMeter],[waterMeterParentId],[ordernumber] ,[memo],[NotReadMonthCount],WATERUSERQQYE,WATERUSERJSYE,WATERUSERLJQF) 

SELECT '{7}','',[waterMeterId],[waterMeterNo]
,[lastNumberYearMonth],[waterMeterEndNumber]-{11},[waterMeterEndNumber],0,{11},NULL,[avePrice]
,NULL,{8},[extraChargePrice1],{9},[extraChargePrice2],{10}
,{9}+{10},[trapezoidPrice],[extraCharge]
,{8}+{9}+{10},0,[WATERFIXVALUE],DATEADD(SECOND,3,GETDATE()),DATEADD(SECOND,3,GETDATE()),DATEADD(SECOND,3,GETDATE()),[waterMeterPositionName]
,[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName]
,[waterMeterProduct],[waterMeterSerialNumber]
,[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName]
,'1',DATEADD(SECOND,3,GETDATE()),'{4}','1',NULL,[waterUserId],[waterUserNO],[waterUserName]
,waterUserNameCode,[waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO
,unitNO,createType,[waterPhone],[waterUserAddress],[waterUserPeopleCount]
,[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]
,[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],
[isSummaryMeter],[waterMeterParentId],[ordernumber] ,NULL,[NotReadMonthCount],@Prestore,@Prestore-@QFZJ-{8}-{9}-{10},@QFZJ+{8}+{9}+{10} 
 FROM readMeterRecord WHERE readMeterRecordId='{1}'
 
 --0  用户ID
 --1  待处理的抄表记录ID
 --2  待处理的抄表记录的收费ID
 --3  当前登录员ID
 --4  当前登录员姓名
 --5  红冲待处理抄表记录新的ID
 --6  红冲待处理抄表的收费ID
 --7  正确的抄表记录新的ID
 --8  减免后的水费
 --9  减免后的污水处理费
 --10 减免后的附加费
 --11 减免后的水量
COMMIT TRAN
", WATERUSERNO.Text, readMeterRecordId.Text, ChargeID, strLogID, strRealName, strReadMeterRecordID, ChargeIDNew, strReadMeterRecordIDNew,
                                                                        waterTotalCharge, extraCharge1, extraCharge2, intTotalNumber);
                                    intRows = new SqlServerHelper().ExcuteSql(strSQLExcute);
                                    #endregion
                                }
                                else if (intMonth == 0)
                                {
                                    #region 未收费并且抄表月份是当月的,直接修改抄表记录即可
                                    string strSQLExcute = string.Format(@"BEGIN TRAN 
UPDATE [readMeterRecord] SET waterMeterLastNumber=waterMeterEndNumber-{0},
totalNumber={0},waterTotalCharge={1},extraCharge1={2},extraCharge2={3},extraTotalCharge={4},totalCharge={5} WHERE readMeterRecordId='{6}'
DECLARE @PRESTORE DECIMAL(18,2)=0
DECLARE @LJQF DECIMAL(18,2)=0
SELECT @PRESTORE=PRESTORE, @LJQF=TOTALFEE FROM V_WATERUSERAREARAGE WHERE waterUserId='{7}'
UPDATE readMeterRecord SET WATERUSERQQYE=@PRESTORE,WATERUSERJSYE=@PRESTORE-@LJQF,WATERUSERLJQF=@LJQF WHERE readMeterRecordId='{6}'
COMMIT TRAN
",
                                                                        intTotalNumber, waterTotalCharge, extraCharge1, extraCharge2, extraCharge1 + extraCharge2, waterTotalCharge + extraCharge1 + extraCharge2, readMeterRecordId.Text, WATERUSERNO.Text);
                                    intRows = new SqlServerHelper().ExcuteSql(strSQLExcute);
                                    #endregion
                                }
                            }
                        }

                        #endregion

                        if (intRows > 0)
                        {
                            IsChargeAbate = true;
                        }
                        else
                        {
                            MessageBox.Show("水表减免变更过程失败!请联系管理员跳回本流程再次重试!");
                            return;
                        }
                        if (IsChargeAbate)
                        {
                            Hashtable hu = new Hashtable();
                            hu["IsAbate"]          = 1;
                            hu["CHARGEWORKERNAME"] = AppDomain.CurrentDomain.GetData("USERNAME").ToString();
                            hu["CHARGEWORKERID"]   = AppDomain.CurrentDomain.GetData("LOGINID").ToString();
                            hu["CHARGEWORKERDate"] = DateTime.Now.ToString();
                            int upCount = new SqlServerHelper().UpdateByHashtable("User_ChargeAbate", "TaskID", TaskID, hu);
                            if (upCount > 0)
                            {
                                //==========================================================================================如果金额小于指定金额,不需要总经理审批
                                this.DialogResult = DialogResult.OK;
                                MessageBox.Show("水费减免成功!");
                                this.Close();
                            }
                            else
                            {
                                MessageBox.Show("水费减免成功 ,记录保存失败!");
                            }
                        }
                        else
                        {
                            MessageBox.Show("水费减免失败!");
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("水表减免变更过程失败!原因:" + ex.Message + "\n请联系管理员跳回本流程再次重试!");
                        return;
                    }
                }
                else
                {
                    this.DialogResult = DialogResult.OK;
                    MessageBox.Show("审批成功!");
                    this.Close();
                }
            }
            else
            {
                Btn_Submit.Enabled = true;
            }
        }
Пример #18
0
        private void btCancel_Click(object sender, EventArgs e)
        {
            try
            {
                if (labID.Text != "")
                {
                    if (!(rbWaterFee.Checked || rbMoney.Checked))
                    {
                        mes.Show("请选择红冲类型!");
                        //rbWaterFee.Focus();
                        return;
                    }
                    if (mes.ShowQ("确定要红冲单号为'" + labID.Text + "'的收费记录吗?") != DialogResult.OK)
                    {
                        return;
                    }
                    #region 生成退费记录
                    MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                    MODELWATERFEECHARGE.CHARGEID    = GETTABLEID.GetTableID(strLogID, "WATERFEECHARGE");
                    MODELWATERFEECHARGE.CHARGEClASS = "4";//收费类型是水费冲减
                    if (Information.IsNumeric(labYE.Text))
                    {
                        MODELWATERFEECHARGE.CHARGEYSQQYE = Convert.ToDecimal(labYE.Text);
                    }

                    //存储本次应收和本次实收
                    decimal decBCYS = 0, decBCSS = 0;
                    if (Information.IsNumeric(labBCYS.Text))
                    {
                        decBCYS = Convert.ToDecimal(labBCYS.Text);
                    }

                    if (Information.IsNumeric(labBCSS.Text))
                    {
                        decBCSS = Convert.ToDecimal(labBCSS.Text);
                    }

                    if (rbWaterFee.Checked)
                    {
                        MODELWATERFEECHARGE.CHARGEBCSS   = 0;
                        MODELWATERFEECHARGE.CHARGEYSBCSZ = decBCYS;
                        MODELWATERFEECHARGE.CHARGEYSJSYE = MODELWATERFEECHARGE.CHARGEYSQQYE + MODELWATERFEECHARGE.CHARGEYSBCSZ;
                    }
                    else
                    {
                        MODELWATERFEECHARGE.CHARGEBCSS   = 0 - decBCSS;
                        MODELWATERFEECHARGE.CHARGEYSBCSZ = 0 - Convert.ToDecimal(labBCSZ.Text);
                        if ((MODELWATERFEECHARGE.CHARGEYSQQYE + MODELWATERFEECHARGE.CHARGEYSBCSZ) < 0)
                        {
                            mes.Show("用户余额不足,无法红冲!用户余额:" + MODELWATERFEECHARGE.CHARGEYSQQYE + "元,本次收支:" + MODELWATERFEECHARGE.CHARGEYSBCSZ + "元");
                            return;
                        }

                        MODELWATERFEECHARGE.CHARGEYSJSYE = MODELWATERFEECHARGE.CHARGEYSQQYE + MODELWATERFEECHARGE.CHARGEYSBCSZ;
                    }

                    MODELWATERFEECHARGE.CHARGEWORKERID    = strLogID;
                    MODELWATERFEECHARGE.CHARGEWORKERNAME  = strUserName;
                    MODELWATERFEECHARGE.CHARGEDATETIME    = mes.GetDatetimeNow();
                    MODELWATERFEECHARGE.INVOICEPRINTSIGN  = "0";
                    MODELWATERFEECHARGE.RECEIPTPRINTCOUNT = 0;
                    MODELWATERFEECHARGE.MEMO = "红冲收费单号:" + labID.Text;
                    try
                    {
                        //插入收费记录,本次实收=0-本次应收,本次实收包含实际收到的现金和前期余额之和
                        string strInserChargeSQL = "INSERT INTO WATERFEECHARGE(CHARGEID,TOTALNUMBERCHARGE,EXTRACHARGECHARGE1,EXTRACHARGECHARGE2," +
                                                   "WATERTOTALCHARGE,EXTRATOTALCHARGE,TOTALCHARGE,OVERDUEMONEY,CHARGETYPEID,CHARGEClASS,CHARGEBCYS,CHARGEBCSS,CHARGEYSQQYE," +
                                                   "CHARGEYSBCSZ,CHARGEYSJSYE,CHARGEWORKERID,CHARGEWORKERNAME,CHARGEDATETIME,INVOICEPRINTSIGN,RECEIPTPRINTCOUNT,MEMO) " +
                                                   "SELECT '" + MODELWATERFEECHARGE.CHARGEID + "',0-TOTALNUMBERCHARGE,0-EXTRACHARGECHARGE1,0-EXTRACHARGECHARGE2," +
                                                   "0-WATERTOTALCHARGE,0-EXTRATOTALCHARGE,0-TOTALCHARGE,0-OVERDUEMONEY,CHARGETYPEID,'" + MODELWATERFEECHARGE.CHARGEClASS +
                                                   "',0-CHARGEBCYS," + MODELWATERFEECHARGE.CHARGEBCSS + "," + MODELWATERFEECHARGE.CHARGEYSQQYE + "," + MODELWATERFEECHARGE.CHARGEYSBCSZ + "," +
                                                   MODELWATERFEECHARGE.CHARGEYSJSYE + ",CHARGEWORKERID,CHARGEWORKERNAME,'" + MODELWATERFEECHARGE.CHARGEDATETIME + "',0,0,'" +
                                                   MODELWATERFEECHARGE.MEMO + "' FROM WATERFEECHARGE WHERE CHARGEID='" + labID.Text + "'";

                        if (BLLreadMeterRecord.Excute(strInserChargeSQL) > 0)
                        {
                            string strIDS = "";
                            try
                            {
                                for (int i = 0; i < dtList.Rows.Count; i++)
                                {
                                    object objRecordID = dtList.Rows[0]["readMeterRecordId"];
                                    if (objRecordID != null && objRecordID != DBNull.Value)
                                    {
                                        //插入抄表记录 chargeState=4代表红冲 readMeterRecordDate设置为空,否则影响抄表初始化
                                        string strRecordID        = GETTABLEID.GetTableID(strLogID, "READMETERRECORD");
                                        string strInsertRecordSQL = "INSERT INTO [readMeterRecord]([readMeterRecordId],[readMeterRecordIdLast],[waterMeterId],[waterMeterNo]" +
                                                                    ",[lastNumberYearMonth],[waterMeterLastNumber],[waterMeterEndNumber],SUBMETERNUMBER,[totalNumber],[totalNumberDescribe],[avePrice]" +
                                                                    ",[avePriceDescribe],[waterTotalCharge],[extraChargePrice1],[extraCharge1],[extraChargePrice2],[extraCharge2],[extraChargePrice3]" +
                                                                    ",[extraCharge3],[extraChargePrice4],[extraCharge4],[extraChargePrice5],[extraCharge5],[extraChargePrice6],[extraCharge6]" +
                                                                    ",[extraChargePrice7],[extraCharge7],[extraChargePrice8],[extraCharge8],[extraTotalCharge],[trapezoidPrice],[extraCharge]" +
                                                                    ",[totalCharge],[OVERDUEMONEY],[WATERFIXVALUE],[readMeterRecordYear],[readMeterRecordMonth]," +
                                                                    "readMeterRecordYearAndMonth,initialReadMeterMesDateTime,[readMeterRecordDate],[waterMeterPositionName]" +
                                                                    ",[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName],[waterMeterProduct],[waterMeterSerialNumber]" +
                                                                    ",[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName],[checkState],[checkDateTime]" +
                                                                    ",[checker],[chargeState],[chargeID],[waterUserId],[waterUserNO],[waterUserName],waterUserNameCode,[waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO,unitNO,createType,waterPhone,[waterUserAddress],[waterUserPeopleCount]" +
                                                                    ",[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]" +
                                                                    ",[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],[isSummaryMeter],[waterMeterParentId],[ordernumber] ,[memo]) " +

                                                                    "SELECT '" + strRecordID + "','" + objRecordID.ToString() + "',[waterMeterId],[waterMeterNo]" +
                                                                    ",[lastNumberYearMonth],[waterMeterEndNumber],[waterMeterLastNumber],0-SUBMETERNUMBER,0-[totalNumber],[totalNumberDescribe],[avePrice]" +
                                                                    ",[avePriceDescribe],0-[waterTotalCharge],[extraChargePrice1],0-[extraCharge1],[extraChargePrice2],0-[extraCharge2],[extraChargePrice3]" +
                                                                    ",0-[extraCharge3],[extraChargePrice4],0-[extraCharge4],[extraChargePrice5],0-[extraCharge5],[extraChargePrice6],0-[extraCharge6]" +
                                                                    ",[extraChargePrice7],0-[extraCharge7],[extraChargePrice8],0-[extraCharge8],0-[extraTotalCharge],[trapezoidPrice],[extraCharge]" +
                                                                    ",0-[totalCharge],0-[OVERDUEMONEY],[WATERFIXVALUE]," + MODELWATERFEECHARGE.CHARGEDATETIME.Year + "," + MODELWATERFEECHARGE.CHARGEDATETIME.Month + ",'" +
                                                                    MODELWATERFEECHARGE.CHARGEDATETIME + "',NULL,'" + MODELWATERFEECHARGE.CHARGEDATETIME + "',[waterMeterPositionName]" +
                                                                    ",[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName]," +
                                                                    "[waterMeterProduct],[waterMeterSerialNumber]" + ",[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName]," +
                                                                    "[checkState],'" + MODELWATERFEECHARGE.CHARGEDATETIME + "','" + strUserName + "','3','" + MODELWATERFEECHARGE.CHARGEID + "',[waterUserId],[waterUserNO],[waterUserName],waterUserNameCode," +
                                                                    "[waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO,unitNO,createType,[waterPhone],[waterUserAddress],[waterUserPeopleCount]" +
                                                                    ",[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]" +
                                                                    ",[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],[isSummaryMeter],[waterMeterParentId],[ordernumber] ,'红冲台账:" + objRecordID.ToString() +
                                                                    "' FROM readMeterRecord WHERE readMeterRecordId='" + objRecordID.ToString() + "'";
                                        if (BLLreadMeterRecord.Excute(strInsertRecordSQL) > 0)
                                        {
                                            if (strIDS == "")
                                            {
                                                strIDS = strRecordID;
                                            }
                                            else
                                            {
                                                strIDS = "," + strRecordID;
                                            }
                                        }
                                        else
                                        {
                                            //如果有一条未插入成功,需要回滚已经插入成功的抄表记录
                                            string strSQLDelete = "DELETE FROM readMeterRecord WHERE readMeterRecordId IN (" + strIDS + ")";
                                            BLLreadMeterRecord.Excute(strSQLDelete);

                                            //回滚收费记录
                                            BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                            mes.Show("插入抄表记录表失败,请重新操作!");
                                            return;
                                        }
                                    }
                                    else
                                    {
                                        //如果有一条未插入成功,需要回滚已经插入成功的抄表记录
                                        string strSQLDelete = "DELETE FROM readMeterRecord WHERE readMeterRecordId IN (" + strIDS + ")";
                                        BLLreadMeterRecord.Excute(strSQLDelete);

                                        //回滚收费记录
                                        BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                        mes.Show("获取抄表记录ID失败,请重新操作!");
                                        return;
                                    }

                                    //if (isReCharge)
                                    //{
                                    try
                                    {
                                        if (labWaterUserID.Text != "")
                                        {
                                            //更新余额
                                            string strUpdatePrestore = "UPDATE waterUser SET prestore=" + MODELWATERFEECHARGE.CHARGEYSJSYE + " WHERE waterUserId='" + labWaterUserID.Text + "'";
                                            if (!BLLwaterUser.UpdateSQL(strUpdatePrestore))
                                            {
                                                string strError = "更新用户编号为'" + labWaterUserID.Text + "'的余额失败,请重新操作!";
                                                mes.Show(strError);
                                                log.Write(strError, MsgType.Error);

                                                //如果有一条未插入成功,需要回滚已经插入成功的抄表记录
                                                string strSQLDelete = "DELETE FROM readMeterRecord WHERE readMeterRecordId='" + objRecordID.ToString() + "'";
                                                BLLreadMeterRecord.Excute(strSQLDelete);

                                                //回滚收费记录
                                                BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                                return;

                                                return;
                                            }
                                        }
                                        else
                                        {
                                            //如果有一条未插入成功,需要回滚已经插入成功的抄表记录
                                            string strSQLDelete = "DELETE FROM readMeterRecord WHERE readMeterRecordId IN (" + strIDS + ")";
                                            BLLreadMeterRecord.Excute(strSQLDelete);

                                            //回滚收费记录
                                            BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                            return;
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        //如果有一条未插入成功,需要回滚已经插入成功的抄表记录
                                        string strSQLDelete = "DELETE FROM readMeterRecord WHERE readMeterRecordId IN (" + strIDS + ")";
                                        BLLreadMeterRecord.Excute(strSQLDelete);

                                        //回滚收费记录
                                        BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                        return;
                                    }
                                }
                                //}
                                btCancel.Enabled = false;
                                labTip.Visible   = true;
                            }
                            catch (Exception ex)
                            {
                                //回滚收费记录
                                BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                mes.Show(ex.Message);
                                log.Write(ex.ToString(), MsgType.Error);
                                return;
                            }
                        }
                        else
                        {
                            mes.Show("生成红冲单据失败,请重新操作!");
                            return;
                        }
                    }
                    catch (Exception ex)
                    {
                        mes.Show(ex.Message);
                        log.Write(ex.ToString(), MsgType.Error);
                        return;
                    }
                    #endregion
                }
                else
                {
                    mes.Show("系统检测到单据ID为空,请重新打开此窗体!");
                    return;
                }
            }
            catch (Exception ex)
            {
                mes.Show(ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
            }
        }
Пример #19
0
        private void toolDayCheck_Click(object sender, EventArgs e)
        {
            try
            {
                if (cmbChargerWorkName.SelectedValue == null || cmbChargerWorkName.SelectedValue == DBNull.Value)
                {
                    mes.Show("请选择收款员查询收款数据后再执行日结操作!");
                    return;
                }

                string    strFilterCheck = " AND DAYCHECKSTATE='1' " + txtFilter.Text;
                DataTable dtDaychecked   = BLLWATERFEECHARGE.QueryWaterFeeAndPrestoreCharge(strFilterCheck);
                if (dtDaychecked.Rows.Count > 0)
                {
                    mes.Show("本次查询含有已日结的数据,请删除历史日结信息或重新查询未日结信息后再日结!");
                    return;
                }

                //string strFilter = " AND DAYCHECKSTATE<>'1' ";

                string strFilter = txtFilter.Text;

                DataTable dtDayUnchecked = BLLWATERFEECHARGE.QueryWaterFeeAndPrestoreCharge(strFilter);
                if (dtDayUnchecked.Rows.Count == 0)
                {
                    mes.Show("未找到未日结的收费数据!");
                    return;
                }
                DateTime dtNow = mes.GetDatetimeNow();
                MODELDAYCHECKPERSONAL MODELDAYCHECKPERSONAL = new MODELDAYCHECKPERSONAL();
                MODELDAYCHECKPERSONAL.DAYCHECKID         = GETTABLEID.GetTableID(strLogID, "DAYCHECKPERSONAL");
                MODELDAYCHECKPERSONAL.DAYCHECKWORKERID   = cmbChargerWorkName.SelectedValue.ToString();
                MODELDAYCHECKPERSONAL.DAYCHECKWORKERNAME = cmbChargerWorkName.Text;
                MODELDAYCHECKPERSONAL.DAYCHECKDATEIME    = dtNow;
                MODELDAYCHECKPERSONAL.DAYCHECKSUMMONEY   = decBCSS;
                MODELDAYCHECKPERSONAL.DAYCHECKMONEY      = decYSBCSSXJ + decYCBCSZXJ;
                MODELDAYCHECKPERSONAL.DAYCHECKPOS        = decYSBCSSPOS + decYCBCSZPOS;
                MODELDAYCHECKPERSONAL.DAYCHECKZHUANZHANG = decYSBCSSZHUANZHANG + decYCBCSZZHUANZHANG;
                MODELDAYCHECKPERSONAL.RECEIPTNOCOUNT     = intYSRECEIPRNOCOUNT + intYCCount;
                MODELDAYCHECKPERSONAL.INVOICENOCOUNT     = intYSCount;
                MODELDAYCHECKPERSONAL.MEMO = null;
                if (BLLDAYCHECKPERSONAL.Insert(MODELDAYCHECKPERSONAL))
                {
                    try
                    {
                        string strFilterCanDayCheck = " AND CHARGEID IN (SELECT CHARGEID FROM V_WATERFEEANDPRESTORECHARGE WHERE 1=1 " + strFilter + ")";

                        MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                        MODELWATERFEECHARGE.DAYCHECKSTATE      = "1";
                        MODELWATERFEECHARGE.DAYCHECKWORKERNAME = MODELDAYCHECKPERSONAL.DAYCHECKWORKERNAME;
                        MODELWATERFEECHARGE.DAYCHECKDATETIME   = dtNow;
                        MODELWATERFEECHARGE.DAYCHECKID         = MODELDAYCHECKPERSONAL.DAYCHECKID;
                        int intCount = BLLWATERFEECHARGE.UpdateDayCheckState(MODELWATERFEECHARGE, strFilterCanDayCheck);
                        mes.Show("生成日结报表成功!");
                    }
                    catch (Exception ex)
                    {
                        mes.Show("更新日结标志失败,原因:" + ex.Message);
                        log.Write(ex.ToString(), MsgType.Error);
                        BLLDAYCHECKPERSONAL.Delete(MODELDAYCHECKPERSONAL.DAYCHECKID);
                    }
                }
            }
            catch (Exception ex)
            {
                mes.Show(ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
            }
        }
        private void Btn_Submit_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(PIANID.Text) || string.IsNullOrEmpty(areaId.Text) || string.IsNullOrEmpty(DUANID.Text) || string.IsNullOrEmpty(CreateTypeID.Text))
            {
                MessageBox.Show("信息不完整!");
                return;
            }

            ComputerName = AppDomain.CurrentDomain.GetData("COMPUTERNAME").ToString();
            ip           = AppDomain.CurrentDomain.GetData("IP").ToString();

            Hashtable hs = new SqlServerHelper().GetHashTableByControl(this.PL.Controls);

            hs["ModifyUser"]   = AppDomain.CurrentDomain.GetData("USERNAME").ToString();
            hs["ModifyDate"]   = DateTime.Now.ToString();
            hs["operatorID"]   = AppDomain.CurrentDomain.GetData("LOGINID").ToString();;
            hs["operatorName"] = AppDomain.CurrentDomain.GetData("USERNAME").ToString();;
            if (string.IsNullOrEmpty(_waterUserId))
            {
                _waterUserId = GETTABLEID.GetTableID("", "WATERUSER");
            }
            hs["waterUserId"] = _waterUserId;
            hs["waterUserNO"] = _waterUserId;
            if (new SqlServerHelper().Submit_AddOrEdit("Meter_Install_Single", "TaskID", TaskID, hs))
            {
                DataTable dd         = new SqlServerHelper().GetDateTableBySql(string.Format("SELECT RIGHT(MAX(waterMeterNo),2) FROM waterMeter WHERE waterUserId='{0}'", _waterUserId));
                int       MeterCount = string.IsNullOrEmpty(dd.Rows[0][0].ToString()) ? 0 : int.Parse(dd.Rows[0][0].ToString());
                MeterCount++;
                if (_MeterList.Count > 0)
                {
                    for (int i = 0; i < _MeterList.Count; i++)
                    {
                        string    NewMeterID = _waterUserId + (MeterCount + i).ToString().PadLeft(2, '0');
                        Hashtable hnb        = new Hashtable();
                        hnb["waterMeterId"] = NewMeterID;
                        hnb["waterMeterNo"] = NewMeterID;
                        hnb["waterUserId"]  = _waterUserId;
                        new SqlServerHelper().Submit_AddOrEdit("Meter", "MeterID", _MeterList[i], hnb);
                    }
                }

                string CHARGEID = GETTABLEID.GetTableID("0092", "WATERFEECHARGE");
                string PRESTORERUNNINGACCOUNTID = GETTABLEID.GetTableID("0092", "PRESTORERUNNINGACCOUNT");

                if (sysidal.Approve_Single_Append(TaskID, CHARGEID, PRESTORERUNNINGACCOUNTID))
                {
                    string Matter = string.Format("【增户】-片号:{0};区号:{1};段号:{2};", PIANID.Text, areaId.Text, DUANID.Text);
                    int    count  = sysidal.UpdateApprove_Single_defalut(ResolveID, true, "新增用户(水表)", ip, ComputerName, PointSort, TaskID, Matter);

                    if (count > 0)
                    {
                        Btn_Submit.Enabled = false;
                        MessageBox.Show("增户成功!");
                    }
                    else
                    {
                        Btn_Submit.Enabled = true;
                    }
                }
            }
        }
Пример #21
0
        private void toolSave_Click(object sender, EventArgs e)
        {
            if (txtName.Text.Trim() == "")
            {
                mes.Show("请输入用户姓名!");
                txtName.Focus();
                return;
            }
            if (txtLogName.Text.Trim() == "")
            {
                mes.Show("请输入登录名!");
                txtLogName.Focus();
                return;
            }
            if (cmbDEP.SelectedValue == DBNull.Value || cmbDEP.SelectedValue == null)
            {
                mes.Show("请选择所属部门!");
                cmbDEP.Focus();
                return;
            }
            if (cmbPost.SelectedValue == DBNull.Value || cmbPost.SelectedValue == null)
            {
                mes.Show("请选择职务!");
                cmbPost.Focus();
                return;
            }
            if (cmbGroup.SelectedValue == DBNull.Value || cmbGroup.SelectedValue == null)
            {
                mes.Show("请选择所属分组!");
                cmbGroup.Focus();
                return;
            }
            if (cmbState.SelectedIndex < 0)
            {
                mes.Show("请选择用户状态!");
                cmbState.Focus();
                return;
            }

            MODELBASE_LOGIN MODELBASE_LOGIN = new MODELBASE_LOGIN();

            try
            {
                MODELBASE_LOGIN.LOGINNAME    = txtLogName.Text.Trim();
                MODELBASE_LOGIN.workNO       = txtWorkNO.Text.Trim();
                MODELBASE_LOGIN.USERNAME     = txtName.Text.Trim();
                MODELBASE_LOGIN.DEPARTMENTID = cmbDEP.SelectedValue.ToString();
                MODELBASE_LOGIN.POSTID       = cmbPost.SelectedValue.ToString();;
                MODELBASE_LOGIN.groupID      = cmbGroup.SelectedValue.ToString();

                //用户状态选择第一个(正常)为“1”,否则为“0”
                if (cmbState.SelectedIndex == 0)
                {
                    MODELBASE_LOGIN.userstate = "1";
                }
                else
                {
                    MODELBASE_LOGIN.userstate = "0";
                }

                MODELBASE_LOGIN.TELEPHONENO = txtTel.Text.Trim();
                if (chkIsMeterReader.Checked)
                {
                    MODELBASE_LOGIN.isMeterReader = "1";
                }
                else
                {
                    MODELBASE_LOGIN.isMeterReader = "0";
                }

                if (chkIsCharger.Checked)
                {
                    MODELBASE_LOGIN.isCharger = "1";
                }
                else
                {
                    MODELBASE_LOGIN.isCharger = "0";
                }

                if (chkIsCashierS.Checked)
                {
                    MODELBASE_LOGIN.IsCashier = "1";
                }
                else
                {
                    MODELBASE_LOGIN.IsCashier = "0";
                }

                MODELBASE_LOGIN.MEMO = txtMemo.Text;

                if (isAdd)
                {
                    MODELBASE_LOGIN.LOGINID          = GETTABLEID.GetTableID(strLoginID, "BASE_LOGIN");
                    MODELBASE_LOGIN.LOGINPASSWORD    = "******";
                    MODELBASE_LOGIN.generateDateTime = mes.GetDatetimeNow();
                    if (BLLBASE_LOGIN.InsertBASE_LOGIN(MODELBASE_LOGIN))
                    {
                        toolSave.Enabled     = false;
                        toolSearch.Enabled   = true;
                        toolModify.Enabled   = true;
                        toolDel.Enabled      = true;
                        toolResetPWD.Enabled = true;
                        //toolAdd.Enabled = true;true
                        toolAdd.Text = "添加";
                        DisEnableControls(grpDetail);
                        toolSearch_Click(null, null);
                        dgUser.ClearSelection();
                        for (int i = 0; i < dgUser.Rows.Count; i++)
                        {
                            if (dgUser.Rows[i].Cells["LOGINID"].Value != null && dgUser.CurrentRow.Cells["LOGINID"].Value != DBNull.Value)
                            {
                                string strID = dgUser.Rows[i].Cells["LOGINID"].Value.ToString();
                                if (MODELBASE_LOGIN.LOGINID == strID)
                                {
                                    dgUser.CurrentCell = dgUser.Rows[i].Cells["USERNAME"];
                                    dgUser_SelectionChanged(null, null);
                                }
                            }
                        }
                        //mes.Show("添加成功!");
                        dgUser.Enabled = true;
                        return;
                    }
                }
                else
                {
                    MODELBASE_LOGIN.LOGINID = txtUserID.Text.Trim();
                    if (BLLBASE_LOGIN.UpdateUser(MODELBASE_LOGIN))
                    {
                        toolSave.Enabled   = false;
                        toolSearch.Enabled = true;
                        //toolModify.Enabled = true;
                        toolDel.Enabled      = true;
                        toolAdd.Enabled      = true;
                        toolResetPWD.Enabled = true;
                        toolModify.Text      = "修改";
                        DisEnableControls(grpDetail);
                        toolSearch_Click(null, null);
                        dgUser.ClearSelection();
                        for (int i = 0; i < dgUser.Rows.Count; i++)
                        {
                            if (dgUser.Rows[i].Cells["LOGINID"].Value != null && dgUser.CurrentRow.Cells["LOGINID"].Value != DBNull.Value)
                            {
                                string strID = dgUser.Rows[i].Cells["LOGINID"].Value.ToString();
                                if (MODELBASE_LOGIN.LOGINID == strID)
                                {
                                    dgUser.CurrentCell = dgUser.Rows[i].Cells["USERNAME"];
                                    dgUser_SelectionChanged(null, null);
                                }
                            }
                        }
                        //mes.Show("修改成功!");
                        dgUser.Enabled = true;
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                mes.Show(ex.ToString());
            }
        }
        private void toolSave_Click(object sender, EventArgs e)
        {
            if (txtName.Text.Trim() == "")
            {
                mes.Show("性质名称不能为空!");
                txtName.Focus();
                return;
            }
            if (dgTrapezoidPrice.Rows.Count == 0)
            {
                mes.Show("请添加阶梯水价!");
                dgTrapezoidPrice.Focus();
                return;
            }
            if (cmbWaterMeterTypeClass.SelectedValue == null || cmbWaterMeterTypeClass.SelectedValue == DBNull.Value)
            {
                mes.Show("请选择用水性质分类!");
                cmbWaterMeterTypeClass.Focus();
                return;
            }

            #region 阶梯水价验证
            dgTrapezoidPrice.EndEdit();
            for (int i = 0; i < dgTrapezoidPrice.Rows.Count; i++)
            {
                object objL = dgTrapezoidPrice.Rows[i].Cells["lowNumber"].Value;
                if (objL == null || objL == DBNull.Value)
                {
                    mes.Show("请输入第 " + (i + 1).ToString() + " 行的阶梯下限!");
                    dgTrapezoidPrice.CurrentCell = dgTrapezoidPrice.Rows[i].Cells["lowNumber"];
                    return;
                }
                object objT = dgTrapezoidPrice.Rows[i].Cells["trapezoidPriceS"].Value;
                if (objT == null || objT == DBNull.Value)
                {
                    mes.Show("请输入第 " + (i + 1).ToString() + " 行的阶梯单价!");
                    dgTrapezoidPrice.CurrentCell = dgTrapezoidPrice.Rows[i].Cells["trapezoidPriceS"];
                    return;
                }
                else
                {
                    dgTrapezoidPrice.Rows[i].Cells["trapezoidPriceS"].Value = Convert.ToDecimal(objT);
                    if (Convert.ToDecimal(objT) <= 0)
                    {
                        if (mes.ShowQ("请第 " + (i + 1).ToString() + " 行的阶梯单价为0,确定保存吗?") != DialogResult.OK)
                        {
                            dgTrapezoidPrice.CurrentCell = dgTrapezoidPrice.Rows[i].Cells["trapezoidPriceS"];
                            return;
                        }
                    }
                }

                if (!Information.IsNumeric(objL))
                {
                    mes.Show("第 " + (i + 1).ToString() + " 行的阶梯下限只能为整数!");
                    dgTrapezoidPrice.CurrentCell = dgTrapezoidPrice.Rows[i].Cells["lowNumber"];
                    return;
                }

                object objH = dgTrapezoidPrice.Rows[i].Cells["highNumber"].Value;
                if (objH == null || objH == DBNull.Value)
                {
                    mes.Show("请输入第 " + (i + 1).ToString() + " 行的阶梯下限!");
                    dgTrapezoidPrice.CurrentCell = dgTrapezoidPrice.Rows[i].Cells["highNumber"];
                    return;
                }
                if (!Information.IsNumeric(objH))
                {
                    mes.Show("第 " + (i + 1).ToString() + " 行的阶梯上限只能为整数!");
                    dgTrapezoidPrice.CurrentCell = dgTrapezoidPrice.Rows[i].Cells["highNumber"];
                    return;
                }
                if (Convert.ToDecimal(objL) >= Convert.ToDecimal(objH))
                {
                    mes.Show("第 " + (i + 1).ToString() + " 行的阶梯上限应大于阶梯下限!");
                    dgTrapezoidPrice.CurrentCell = dgTrapezoidPrice.Rows[i].Cells["highNumber"];
                    return;
                }
                if (i > 0)
                {
                    object objH1 = dgTrapezoidPrice.Rows[i - 1].Cells["highNumber"].Value;
                    object objL2 = dgTrapezoidPrice.Rows[i].Cells["lowNumber"].Value;
                    if (Convert.ToDecimal(objL2) != Convert.ToDecimal(objH1))
                    {
                        mes.Show("第 " + (i + 1).ToString() + " 行的阶梯下限应等于上一行的阶梯上限!");
                        dgTrapezoidPrice.CurrentCell = dgTrapezoidPrice.Rows[i].Cells["lowNumber"];
                        return;
                    }
                }
            }
            #endregion

            #region 附加费验证
            foreach (Control conE in grpDetail.Controls)
            {
                if (conE is CheckBox && conE.Name.Contains("chkExtraCharge"))
                {
                    CheckBox chkE = (CheckBox)conE;
                    if (chkE.Checked)
                    {
                        foreach (Control con in grpDetail.Controls)
                        {
                            if (con is TextBox)
                            {
                                TextBox txt = (TextBox)con;
                                if (txt.Name == "txtExtraCharge" + chkE.Name.Substring(14, 1))//chkExtraCharge1
                                {
                                    if (txt.Text.Trim() == "")
                                    {
                                        mes.Show("请填写附加费单价!");
                                        txt.Focus();
                                        return;
                                    }
                                    if (txt.Text.Trim() == "0")
                                    {
                                        mes.Show("附加费单价只能大于0!");
                                        txt.Focus();
                                        return;
                                    }
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            #endregion

            #region 滞纳金验证
            if (chkIsEnable.Checked)
            {
                if (txtStartMonth.Text.Trim() == "")
                {
                    mes.Show("请输入开始月份!");
                    txtStartMonth.Focus();
                    return;
                }
                else
                {
                    if (!Information.IsNumeric(txtStartMonth.Text.Trim()))
                    {
                        mes.Show("开始月份只能为整数!");
                        txtStartMonth.Focus();
                        return;
                    }
                }
                if (txtStartDay.Text.Trim() == "")
                {
                    mes.Show("请输入开始日期!");
                    txtStartDay.Focus();
                    return;
                }
                else
                {
                    if (!Information.IsNumeric(txtStartDay.Text.Trim()))
                    {
                        mes.Show("开始日期只能为整数!");
                        txtStartDay.Focus();
                        return;
                    }
                }
                if (txtPercent.Text.Trim() == "")
                {
                    mes.Show("请输入滞纳金比率!");
                    txtPercent.Focus();
                    return;
                }
                else
                {
                    if (!Information.IsNumeric(txtPercent.Text.Trim()))
                    {
                        mes.Show("滞纳金比率只能为数字!");
                        txtPercent.Focus();
                        return;
                    }
                    if (Convert.ToDecimal(txtPercent.Text) <= 0)
                    {
                        mes.Show("滞纳金比率只能大于0!");
                        txtPercent.Focus();
                        return;
                    }
                }
            }
            #endregion

            MODELWATERMETERTYPE MODELWATERMETERTYPE = new MODELWATERMETERTYPE();
            MODELWATERMETERTYPE.waterMeterTypeValue   = txtName.Text;
            MODELWATERMETERTYPE.WATERMETERTYPECLASSID = cmbWaterMeterTypeClass.SelectedValue.ToString();
            string strTrapezoid = string.Empty;
            for (int i = 0; i < dgTrapezoidPrice.Rows.Count; i++)
            {
                if (i > 0)
                {
                    strTrapezoid += "|";
                }
                object objL = dgTrapezoidPrice.Rows[i].Cells["lowNumber"].Value;
                object objH = dgTrapezoidPrice.Rows[i].Cells["highNumber"].Value;
                object objT = dgTrapezoidPrice.Rows[i].Cells["trapezoidPriceS"].Value;
                strTrapezoid += objL.ToString() + "-" + objH.ToString() + ":" + objT.ToString();
            }
            MODELWATERMETERTYPE.trapezoidPrice = strTrapezoid;

            string strExtraCharge = string.Empty;
            int    intSelectedExtraChargeCount = 0;//存储选择的附加费数量,判断是否加‘|’。
            for (int i = 1; i <= 8; i++)
            {
                foreach (Control con in grpDetail.Controls)
                {
                    if (con is CheckBox)
                    {
                        CheckBox chk = (CheckBox)con;
                        if (chk.Name == "chkExtraCharge" + i.ToString())
                        {
                            if (chk.Checked)
                            {
                                if (intSelectedExtraChargeCount > 0)
                                {
                                    strExtraCharge += "|";
                                }
                                foreach (Control conT in grpDetail.Controls)
                                {
                                    if (conT is TextBox)
                                    {
                                        TextBox txt = (TextBox)conT;
                                        if (txt.Name == "txtExtraCharge" + i.ToString())
                                        {
                                            intSelectedExtraChargeCount++;
                                            strExtraCharge += "F" + i.ToString() + ":" + Convert.ToDecimal(txt.Text);
                                            break;
                                        }
                                    }
                                }
                                foreach (Control conChk in grpDetail.Controls)
                                {
                                    if (conChk is CheckBox)
                                    {
                                        CheckBox chkByCharge = (CheckBox)conChk;
                                        if (chkByCharge.Name == "chkByMoney" + i.ToString())
                                        {
                                            if (!chkByCharge.Checked)
                                            {
                                                strExtraCharge += ":1";
                                            }
                                            else
                                            {
                                                strExtraCharge += ":2";
                                            }
                                        }
                                    }
                                }
                            }
                            break;
                        }
                    }
                }
            }

            MODELWATERMETERTYPE.extraCharge = strExtraCharge;

            if (chkIsEnable.Checked)
            {
                MODELWATERMETERTYPE.overDuechargeEnable     = "1";
                MODELWATERMETERTYPE.overDuechargeStartMonth = Convert.ToInt32(txtStartMonth.Text);
                MODELWATERMETERTYPE.overDuechargeStartDay   = Convert.ToInt32(txtStartDay.Text);
                MODELWATERMETERTYPE.overDuechargePercent    = Convert.ToDecimal(txtPercent.Text);
            }
            else
            {
                MODELWATERMETERTYPE.overDuechargeEnable = "0";
            }

            MODELWATERMETERTYPE.MEMO = txtMemo.Text;

            if (isAdd)
            {
                MODELWATERMETERTYPE.waterMeterTypeId = GETTABLEID.GetTableID("", "WATERMETERTYPE");
                if (BLLWATERMETERTYPE.Insert(MODELWATERMETERTYPE))
                {
                    Query();
                }
                else
                {
                    mes.Show("添加失败,请重新点击保存按钮!");
                    return;
                }
            }
            else
            {
                if (txtID.Text.Trim() == "")
                {
                    mes.Show("如果要执行添加操作,请先点击添加按钮后再保存!");
                    return;
                }
                MODELWATERMETERTYPE.waterMeterTypeId = txtID.Text;
                if (BLLWATERMETERTYPE.Update(MODELWATERMETERTYPE))
                {
                    Query();
                    dgList.ClearSelection();
                    for (int i = 0; i < dgList.Rows.Count; i++)
                    {
                        if (dgList.Rows[i].Cells["waterMeterTypeId"].Value != null && dgList.CurrentRow.Cells["waterMeterTypeId"].Value != DBNull.Value)
                        {
                            string strID = dgList.Rows[i].Cells["waterMeterTypeId"].Value.ToString();
                            if (MODELWATERMETERTYPE.waterMeterTypeId == strID)
                            {
                                dgList.CurrentCell = dgList.Rows[i].Cells["waterMeterTypeValue"];
                                dgList_SelectionChanged(null, null);
                            }
                        }
                    }
                }
                else
                {
                    mes.Show("修改失败,请重新点击保存按钮!");
                    return;
                }
            }
            dgList.Enabled  = true;
            toolDel.Enabled = true;
            toolAdd.Text    = "添加";
            isAdd           = false;
        }
        private void toolSave_Click(object sender, EventArgs e)
        {
            if (txtName.Text.Trim() == "")
            {
                mes.Show("类别名称不能为空!");
                txtName.Focus();
                return;
            }
            if (rbFixed.Checked)
            {
                if (txtFixed.Text.Trim() == "")
                {
                    txtFixed.Text = "0";
                }
                else
                {
                    if (!Information.IsNumeric(txtFixed.Text.Trim()))
                    {
                        mes.Show("固定水量只能为整数!");
                        txtFixed.Focus();
                        return;
                    }
                }
            }
            if (rbPercent.Checked)
            {
                if (txtPercent.Text.Trim() == "")
                {
                    txtPercent.Text = "0";
                }
                else
                {
                    if (!Information.IsNumeric(txtPercent.Text.Trim()))
                    {
                        mes.Show("按比例只能为数字!");
                        txtPercent.Focus();
                        return;
                    }
                }
            }
            if (txtCheckPeriod.Text.Trim() == "")
            {
                txtCheckPeriod.Text = "0";
            }
            else
            {
                if (!Information.IsNumeric(txtCheckPeriod.Text.Trim()))
                {
                    mes.Show("鉴定周期只能为整数!");
                    txtCheckPeriod.Focus();
                    return;
                }
            }

            MODELwaterMeterSize MODELwaterMeterSize = new MODELwaterMeterSize();

            MODELwaterMeterSize.waterMeterSizeValue = txtName.Text;
            MODELwaterMeterSize.checkPeriod         = Convert.ToInt32(txtCheckPeriod.Text);


            if (rbFixed.Checked)
            {
                MODELwaterMeterSize.waterLossComputeType = "0";
                MODELwaterMeterSize.waterLossValue       = Convert.ToInt32(txtFixed.Text);
            }
            else
            {
                MODELwaterMeterSize.waterLossComputeType = "1";
                MODELwaterMeterSize.waterLossValue       = Convert.ToDecimal(txtPercent.Text);
            }

            MODELwaterMeterSize.MEMO = txtMemo.Text;

            if (isAdd)
            {
                MODELwaterMeterSize.waterMeterSizeId = GETTABLEID.GetTableID("", "WATERMETERSIZE");
                if (BLLwaterMeterSize.Insert(MODELwaterMeterSize))
                {
                    Query();
                }
                else
                {
                    mes.Show("添加失败,请重新点击保存按钮!");
                    return;
                }
            }
            else
            {
                MODELwaterMeterSize.waterMeterSizeId = txtID.Text;
                if (BLLwaterMeterSize.Update(MODELwaterMeterSize))
                {
                    Query();
                    dgList.ClearSelection();
                    for (int i = 0; i < dgList.Rows.Count; i++)
                    {
                        if (dgList.Rows[i].Cells["waterMeterSizeId"].Value != null && dgList.CurrentRow.Cells["waterMeterSizeId"].Value != DBNull.Value)
                        {
                            string strID = dgList.Rows[i].Cells["waterMeterSizeId"].Value.ToString();
                            if (MODELwaterMeterSize.waterMeterSizeId == strID)
                            {
                                dgList.CurrentCell = dgList.Rows[i].Cells["waterMeterSizeValue"];
                                dgList_SelectionChanged(null, null);
                            }
                        }
                    }
                }
                else
                {
                    mes.Show("修改失败,请重新点击保存按钮!");
                    return;
                }
            }
            dgList.Enabled  = true;
            toolDel.Enabled = true;
            toolAdd.Text    = "添加";
            isAdd           = false;
        }
Пример #24
0
        private void Btn_Submit_Click(object sender, EventArgs e)
        {
            Btn_Submit.Enabled = false;


            if (int.TryParse(TB_Quantity.Text.Trim(), out _Quantity))
            {
                Hashtable HM = new Hashtable();
                HM["QUANTITY"] = _Quantity;
                HM["ABATE"]    = TB_Abate.Text.Trim();
                new SqlServerHelper().Submit_AddOrEdit("Meter_Change", "TaskID", TaskID, HM);
            }
            else
            {
                mes.Show("补交水量输入错误!");
                return;
            }
            try
            {
                //生成抄表记录
                #region 生成补交水量记录
                string  strChargeState = "1", strTrapePriceString = "", strExtraCharge = "", strChargeID = "";
                decimal waterTotalCharge = 0, extraCharge1 = 0, extraCharge2 = 0;

                DateTime dtNow = mes.GetDatetimeNow();

                int intTotalNum = Convert.ToInt32(_Quantity);

                string    strSQL            = string.Format(@"SELECT trapezoidPrice,extraCharge FROM V_WATERUSER_CONNECTWATERMETER
WHERE waterUserId='{0}'", _waterUserId);
                DataTable dtReadMeterRecord = new SqlServerHelper().GetDateTableBySql(strSQL);
                if (dtReadMeterRecord.Rows.Count > 0)
                {
                    object obj = dtReadMeterRecord.Rows[0]["trapezoidPrice"];
                    if (obj != null && obj != DBNull.Value)
                    {
                        strTrapePriceString = obj.ToString();
                    }
                    obj = dtReadMeterRecord.Rows[0]["extraCharge"];
                    if (obj != null && obj != DBNull.Value)
                    {
                        strExtraCharge = obj.ToString();
                    }
                }

                //获取水费等信息
                sysidal.GetAvePrice(intTotalNum, strTrapePriceString, strExtraCharge, 1, ref waterTotalCharge, ref extraCharge1, ref extraCharge2);
                string strReadMeterRecordID = GETTABLEID.GetTableID(strLogID, "READMETERRECORD");
                string strSQLExcute         = string.Format(@"BEGIN TRAN
DECLARE @readMeterRecordIdLast varchar(30)
DECLARE @waterMeterEndNumber INT
SELECT TOP 1 @readMeterRecordIdLast=readMeterRecordId,@waterMeterEndNumber=waterMeterEndNumber FROM V_READMETERRECORD_LEFT_WATERFEECHARGE WHERE WATERUSERID='{0}' 
ORDER BY checkDateTime DESC,readMeterRecordDate DESC
IF @readMeterRecordIdLast IS NULL
BEGIN
SELECT @waterMeterEndNumber=waterMeterStartNumber FROM waterMeter WHERE WATERUSERID='{0}'
SET @readMeterRecordIdLast=NULL
END

DECLARE @PRESTORE DECIMAL(18,2)=0
DECLARE @LJQF DECIMAL(18,2)=0
SELECT @PRESTORE=PRESTORE, @LJQF=TOTALFEE FROM V_WATERUSERAREARAGE WHERE waterUserId='{0}'

INSERT INTO [readMeterRecord]([readMeterRecordId],[readMeterRecordIdLast],[waterMeterId],[waterMeterNo]
                                            ,[lastNumberYearMonth],[waterMeterLastNumber],[waterMeterEndNumber],SUBMETERNUMBER,[totalNumber],[totalNumberDescribe],[avePrice]
                                            ,[avePriceDescribe],[waterTotalCharge],[extraChargePrice1],[extraCharge1],[extraChargePrice2],[extraCharge2],
                                             [extraTotalCharge],[trapezoidPrice],[extraCharge]
                                            ,[totalCharge],[OVERDUEMONEY],[WATERFIXVALUE],[readMeterRecordYear],[readMeterRecordMonth],
                                            readMeterRecordYearAndMonth,initialReadMeterMesDateTime,[readMeterRecordDate],[waterMeterPositionName]
                                            ,[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName],[waterMeterProduct],[waterMeterSerialNumber]
                                            ,[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName],[checkState],[checkDateTime]
                                            ,[checker],[chargeState],[chargeID],[waterUserId],[waterUserNO],[waterUserName],waterUserNameCode,[waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO,unitNO,createType,waterPhone,[waterUserAddress],[waterUserPeopleCount]
                                            ,[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]
                                            ,[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],
[isSummaryMeter],[waterMeterParentId],[ordernumber],[WATERUSERQQYE],[WATERUSERJSYE],[WATERUSERLJQF])

                                            SELECT '{1}',@readMeterRecordIdLast,[waterMeterId],[waterMeterNo]
                                            ,NULL,@waterMeterEndNumber,@waterMeterEndNumber,0,{2},NULL,NULL
                                            ,NULL,{3},NULL,{4},NULL,{5},{4}+{5},[trapezoidPrice],[extraCharge]
                                            ,{3}+{4}+{5},0,[WATERFIXVALUE],NULL,NULL,DATEADD(SECOND,-2,GETDATE()),DATEADD(SECOND,-2,GETDATE()),DATEADD(SECOND,-2,GETDATE()),[waterMeterPositionName]
                                            ,[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeValue],
                                            [waterMeterProduct],[waterMeterSerialNumber],[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName],
                                            1,DATEADD(SECOND,-2,GETDATE()),'{6}','1',NULL,[waterUserId],[waterUserNO],[waterUserName],waterUserNameCode,
                                            [waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO,unitNO,createType,[waterPhone],[waterUserAddress],[waterUserPeopleCount]
                                            ,NULL,NULL,NULL,[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]
                                            ,[waterUserHouseType],[chargeType],[agentsign],NULL,[bankId],[bankName],[BankAcountNumber],
[isSummaryMeter],[waterMeterParentId],[ordernumber],@PRESTORE,@PRESTORE-@LJQF-{3}-{4}-{5},@LJQF+{3}+{4}+{5}  
                                            FROM V_WATERUSER_CONNECTWATERMETER WHERE waterUserId='{0}'
COMMIT TRAN", _waterUserId, strReadMeterRecordID, intTotalNum, waterTotalCharge, extraCharge1, extraCharge2, strRealName);

                new SqlServerHelper().ExcuteSql(strSQLExcute);
                #endregion


                strReadMeterRecordID = GETTABLEID.GetTableID(strLogID, "READMETERRECORD");
                if (BLLreadMeterRecord.ChangeWaterMeter(_waterMeterId, strReadMeterRecordID, strRealName))
                {
                    Hashtable HL = new Hashtable();
                    HL["LOGTYPE"]      = 6; //6-抄表台账相关日志
                    HL["LOGCONTENT"]   = string.Format("用户换表-用户号:{0};水表编号:{1}", _waterUserId, _waterMeterId);
                    HL["LOGDATETIME"]  = DateTime.Now.ToString();
                    HL["OPERATORID"]   = AppDomain.CurrentDomain.GetData("LOGINID").ToString();
                    HL["OPERATORNAME"] = AppDomain.CurrentDomain.GetData("USERNAME").ToString();
                    HL["MEMO"]         = TaskID;
                    new SqlServerHelper().Submit_AddOrEdit("OPERATORLOG", "LOGID", "", HL);

                    int count = sysidal.UpdateApprove_defalut("Meter_Change", ResolveID, true, UserOpinion.Text.Trim(), PointSort, TaskID, "【换表确认】:用户号:" + _waterUserId + ";水表号:" + _waterMeterId + ";补交水量:" + TB_Quantity.Text.Trim());

                    if (count > 0)
                    {
                        mes.Show("审批成功!");
                    }
                    else
                    {
                        mes.Show("审批失败!");
                        Btn_Submit.Enabled = true;
                    }
                }
                else
                {
                    mes.Show("变更表底数失败!");
                    Btn_Submit.Enabled = true;
                }
            }
            catch (Exception ex)
            {
                mes.Show(ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
            }
        }
        private void btCharge_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgWaterUser.Rows.Count == 0)
                {
                    mes.Show("未找到预交水费的用户信息!");
                    return;
                }

                if (cmbChargeType.SelectedValue == null || cmbChargeType.SelectedValue == DBNull.Value)
                {
                    mes.Show("收费方式不能为空!");
                    cmbChargeType.Focus();
                    return;
                }
                if (!Information.IsNumeric(txtBCYC.Text))
                {
                    return;
                }
                else
                if (Convert.ToDecimal(txtBCYC.Text) <= 0)
                {
                    mes.Show("预存金额不能为'0'");
                    txtBCYC.Focus();
                    return;
                }

                for (int i = 0; i < dgWaterUser.SelectedRows.Count; i++)
                {
                    try
                    {
                        string strWaterUserID = "", strWaterUserNO = "", strWaterUserName = "", strWaterUserNameCode = "", strTelNO = "", strWaterUserPhone = "", strWaterUserAddress = "",
                               strAreaNO = "", strPianNO = "", strDuanNO = "", strCommunityID = "", strCommunityName = "", strBuildingNO = "", strUnitNO = "", strMeterReaderID = "",
                               strMeterReaderName = "", strMeterReaderTel = "", strChargeID = "", strChargerName = "", strWaterUserTypeID = "", strWaterUserTypeName = "", strWaterUserHouseType = "",
                               strCreateType = "", strWaterMeterTypeID = "", strWaterMeterTypeName = "", strWaterMeterTypeClassID = "", strWaterMeterTypeClassName = "";
                        int intPepleCount = 1, intOrderNumber = 0;

                        object objWaterUserID = dgWaterUser.SelectedRows[i].Cells["waterUserId"].Value;
                        if (objWaterUserID == null || objWaterUserID == DBNull.Value)
                        {
                            mes.Show("第'" + (i + 1).ToString() + "行用户ID获取失败,批量收费终止!");
                            return;
                        }

                        //计算结算余额
                        decimal decQQYE = 0, decJSYE = 0;
                        object  objPrestore = dgWaterUser.SelectedRows[i].Cells["prestore"].Value;
                        if (Information.IsNumeric(objPrestore))
                        {
                            decQQYE = Convert.ToDecimal(objPrestore);
                        }

                        decJSYE = decQQYE + Convert.ToDecimal(txtBCYC.Text);

                        #region 生成用户信息
                        strWaterUserID = objWaterUserID.ToString();
                        object objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterUserNO"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserNO = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterUserName"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserName = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterUserTelphoneNO"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strTelNO = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterPhone"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserPhone = objWaterUserMes.ToString();
                        }

                        object objWaterUser = dgWaterUser.SelectedRows[i].Cells["areaNO"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strAreaNO = objWaterUser.ToString();
                        }
                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["pianNO"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strPianNO = objWaterUser.ToString();
                        }
                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["DuanNO"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strDuanNO = objWaterUser.ToString();
                        }
                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["COMMUNITYID"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strCommunityID = objWaterUser.ToString();
                        }
                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["COMMUNITYNAME"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strCommunityName = objWaterUser.ToString();
                        }

                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["buildingNO"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strBuildingNO = objWaterUser.ToString();
                        }

                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["unitNO"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strUnitNO = objWaterUser.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["WATERUSERTYPEID"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserTypeID = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterUserTypeName"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserTypeName = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["WATERMETERTYPEID"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterMeterTypeID = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["WATERMETERTYPEVALUE"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterMeterTypeName = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["WATERMETERTYPECLASSID"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterMeterTypeClassID = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["WATERMETERTYPECLASSNAME"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterMeterTypeClassName = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterUserAddress"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserAddress = objWaterUserMes.ToString();
                        }
                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["createType"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strCreateType = objWaterUser.ToString();
                        }

                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["METERREADERID"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strMeterReaderID = objWaterUser.ToString();

                            DataRow[] drMeterReader     = dtMeterReader.Select("LOGINID='" + strMeterReaderID + "'");
                            object    objMeterReaderTel = drMeterReader[0]["TELEPHONENO"];
                            if (objMeterReaderTel != null && objMeterReaderTel != DBNull.Value)
                            {
                                strMeterReaderTel = objMeterReaderTel.ToString();
                            }
                        }

                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["meterReaderName"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strMeterReaderName = objWaterUser.ToString();
                        }

                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["chargerName"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strChargerName = objWaterUser.ToString();
                        }

                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["CHARGERID"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strChargeID = objWaterUser.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterUserHouseTypeS"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserHouseType = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["ordernumber"].Value;
                        if (Information.IsNumeric(objWaterUserMes))
                        {
                            intOrderNumber = Convert.ToInt16(objWaterUserMes);
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["WATERUSERPEOPLECOUNT"].Value;
                        if (Information.IsNumeric(objWaterUserMes))
                        {
                            intPepleCount = Convert.ToInt16(objWaterUserMes);
                        }
                        #endregion

                        MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                        MODELWATERFEECHARGE.CHARGEID     = GETTABLEID.GetTableID(strLoginID, "WATERFEECHARGE");
                        MODELWATERFEECHARGE.CHARGETYPEID = cmbChargeType.SelectedValue.ToString();
                        if (cmbChargeType.SelectedValue.ToString() == "2")
                        {
                            MODELWATERFEECHARGE.POSRUNNINGNO = txtJYLSH.Text;
                        }
                        MODELWATERFEECHARGE.CHARGEClASS      = "2";//收费类型是水费预收
                        MODELWATERFEECHARGE.CHARGEBCSS       = Convert.ToDecimal(txtBCYC.Text);
                        MODELWATERFEECHARGE.CHARGEYSQQYE     = decQQYE;
                        MODELWATERFEECHARGE.CHARGEYSBCSZ     = Convert.ToDecimal(txtBCYC.Text);
                        MODELWATERFEECHARGE.CHARGEYSJSYE     = decJSYE;
                        MODELWATERFEECHARGE.CHARGEWORKERID   = strLoginID;
                        MODELWATERFEECHARGE.CHARGEWORKERNAME = strLoginName;
                        MODELWATERFEECHARGE.CHARGEDATETIME   = mes.GetDatetimeNow();
                        MODELWATERFEECHARGE.INVOICEPRINTSIGN = "0";
                        if (chkReceipt.Checked)
                        {
                            MODELWATERFEECHARGE.RECEIPTPRINTCOUNT = 1;
                            MODELWATERFEECHARGE.RECEIPTNO         = txtReceiptNO.Text;
                        }
                        if (BLLWATERFEECHARGE.Insert(MODELWATERFEECHARGE))
                        {
                            try
                            {
                                MODELPRESTORERUNNINGACCOUNT MODELPRESTORERUNNINGACCOUNT = new MODELPRESTORERUNNINGACCOUNT();
                                MODELPRESTORERUNNINGACCOUNT.PRESTORERUNNINGACCOUNTID = GETTABLEID.GetTableID(strLoginID, "PRESTORERUNNINGACCOUNT");
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERID       = strWaterUserID;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERNO       = strWaterUserNO;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERNAME     = strWaterUserName;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERNAMECODE = strWaterUserNameCode;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERPHONE    = strTelNO;
                                if (strWaterUserPhone != "")
                                {
                                    if (strTelNO != "")
                                    {
                                        MODELPRESTORERUNNINGACCOUNT.WATERUSERPHONE = strTelNO + ";" + strWaterUserPhone;
                                    }
                                    else
                                    {
                                        MODELPRESTORERUNNINGACCOUNT.WATERUSERPHONE = strWaterUserPhone;
                                    }
                                }

                                MODELPRESTORERUNNINGACCOUNT.WATERUSERADDRESS     = strWaterUserAddress;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERPEOPLECOUNT = intPepleCount;
                                MODELPRESTORERUNNINGACCOUNT.AREANO        = strAreaNO;
                                MODELPRESTORERUNNINGACCOUNT.PIANNO        = strPianNO;
                                MODELPRESTORERUNNINGACCOUNT.DUANNO        = strDuanNO;
                                MODELPRESTORERUNNINGACCOUNT.COMMUNITYID   = strCommunityID;
                                MODELPRESTORERUNNINGACCOUNT.COMMUNITYNAME = strCommunityName;

                                MODELPRESTORERUNNINGACCOUNT.ORDERNUMBER             = intOrderNumber;
                                MODELPRESTORERUNNINGACCOUNT.BUILDINGNO              = strBuildingNO;
                                MODELPRESTORERUNNINGACCOUNT.UNITNO                  = strUnitNO;
                                MODELPRESTORERUNNINGACCOUNT.METERREADERID           = strMeterReaderID;
                                MODELPRESTORERUNNINGACCOUNT.METERREADERNAME         = strMeterReaderName;
                                MODELPRESTORERUNNINGACCOUNT.CHARGERID               = strLoginID;
                                MODELPRESTORERUNNINGACCOUNT.CHARGERNAME             = strLoginName;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERTYPEID         = strWaterUserTypeID;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERTYPENAME       = strWaterUserTypeName;
                                MODELPRESTORERUNNINGACCOUNT.waterMeterTypeId        = strWaterMeterTypeID;
                                MODELPRESTORERUNNINGACCOUNT.waterMeterTypeValue     = strWaterMeterTypeName;
                                MODELPRESTORERUNNINGACCOUNT.WATERMETERTYPECLASSID   = strWaterMeterTypeClassID;
                                MODELPRESTORERUNNINGACCOUNT.WATERMETERTYPECLASSNAME = strWaterMeterTypeClassName;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERTYPENAME       = strWaterUserTypeName;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERTYPENAME       = strWaterUserTypeName;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERHOUSETYPE      = strWaterUserHouseType;
                                MODELPRESTORERUNNINGACCOUNT.CREATETYPE              = strCreateType;
                                MODELPRESTORERUNNINGACCOUNT.MEMO     = txtMemo.Text;
                                MODELPRESTORERUNNINGACCOUNT.CHARGEID = MODELWATERFEECHARGE.CHARGEID;
                                if (BLLPRESTORERUNNINGACCOUNT.Insert(MODELPRESTORERUNNINGACCOUNT))
                                {
                                    //txtYSQQYE.Text = txtJSYE.Text;
                                    //txtWaterFeeReal.Text =( Convert.ToDecimal(txtWaterFee.Text) - Convert.ToDecimal(txtYSQQYE.Text)).ToString();
                                    //txtBCYC.Text = "0";

                                    //更新余额
                                    string strUpdatePrestore = "UPDATE waterUser SET prestore=" + MODELWATERFEECHARGE.CHARGEYSJSYE + " WHERE waterUserId='" + strWaterUserID + "'";
                                    if (!BLLwaterUser.UpdateSQL(strUpdatePrestore))
                                    {
                                        string strError = "更新用户编号为'" + strWaterUserNO + "'的余额失败,请重新收费!";
                                        mes.Show(strError);
                                        log.Write(strError, MsgType.Error);
                                        //回滚预存流水表
                                        BLLPRESTORERUNNINGACCOUNT.Delete(MODELPRESTORERUNNINGACCOUNT.PRESTORERUNNINGACCOUNTID);
                                        //回滚收费记录表
                                        BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                    }
                                    else
                                    {
                                        decimal decUserArearage = 0, decWaterUserPrestore = 0;
                                        object  objUserArearage = dgWaterUser.SelectedRows[i].Cells["USERAREARAGE"].Value;
                                        if (Information.IsNumeric(objUserArearage))
                                        {
                                            decUserArearage = Convert.ToDecimal(objUserArearage);
                                        }
                                        object objUserPrestore = dgWaterUser.SelectedRows[i].Cells["prestore"].Value;
                                        if (Information.IsNumeric(objUserPrestore))
                                        {
                                            decWaterUserPrestore = Convert.ToDecimal(objUserPrestore);
                                        }
                                        decWaterUserPrestore = decWaterUserPrestore + MODELWATERFEECHARGE.CHARGEBCSS;
                                        decUserArearage      = decUserArearage + MODELWATERFEECHARGE.CHARGEBCSS;
                                        dgWaterUser.SelectedRows[i].Cells["USERAREARAGE"].Value = decUserArearage.ToString("F2");
                                        dgWaterUser.SelectedRows[i].Cells["prestore"].Value     = decWaterUserPrestore.ToString("F2");
                                    }
                                    //如果勾选了打收据,打印收据
                                    if (chkReceipt.Checked)
                                    {
                                        //--打印收据
                                        #region
                                        FastReport.Report report1 = new FastReport.Report();
                                        try
                                        {
                                            DataTable dtLastRecord = BLLwaterUser.QuerySQL("SELECT TOP 1 readMeterRecordId,readMeterRecordYearAndMonth,waterMeterLastNumber," +
                                                                                           "(CASE chargeState WHEN 0  THEN waterMeterLastNumber " +
                                                                                           "ELSE waterMeterEndNumber END) AS waterMeterEndNumber " +
                                                                                           "FROM readMeterRecord " +
                                                                                           "WHERE WATERUSERID='" +
                                                                                           strWaterUserID + "' ORDER BY readMeterRecordYearAndMonth DESC,readMeterRecordDate DESC");
                                            DataTable dtTemp = dtLastRecord.Clone();
                                            dtTemp.Columns["readMeterRecordYearAndMonth"].DataType = typeof(string);
                                            if (dtLastRecord.Rows.Count > 0)
                                            {
                                                dtTemp.ImportRow(dtLastRecord.Rows[0]);
                                                object objReadMeterRecordYearAndMonth = dtTemp.Rows[0]["readMeterRecordYearAndMonth"];
                                                if (Information.IsDate(objReadMeterRecordYearAndMonth))
                                                {
                                                    dtTemp.Rows[0]["readMeterRecordYearAndMonth"] = Convert.ToDateTime(objReadMeterRecordYearAndMonth).ToString("yyyy-MM");
                                                }
                                            }
                                            //DataTable dtTemp = dtLastRecord.Copy();
                                            DataSet ds = new DataSet();
                                            dtTemp.TableName = "营业坐收收据模板";
                                            ds.Tables.Add(dtTemp);
                                            // load the existing report
                                            report1.Load(Application.StartupPath + @"\PRINTModel\收据模板\预存收费收据模板.frx");

                                            (report1.FindObject("txtDateTime") as FastReport.TextObject).Text = MODELWATERFEECHARGE.CHARGEDATETIME.ToString("yyyy-MM-dd HH:mm:ss");
                                            //if (cmbChargeType.SelectedValue.ToString() == "2")
                                            //{
                                            //    (report1.FindObject("Cell45") as FastReport.Table.TableCell).Text = txtWaterUserNO.Text + "   交易流水号:" + txtJYLSH.Text;
                                            //}
                                            //else
                                            (report1.FindObject("CellWaterUserNO") as FastReport.Table.TableCell).Text      = strWaterUserNO;
                                            (report1.FindObject("CellWaterUserName") as FastReport.Table.TableCell).Text    = strWaterUserName;
                                            (report1.FindObject("CellWaterUserAddress") as FastReport.Table.TableCell).Text = strWaterUserAddress;

                                            (report1.FindObject("txtQQYE") as FastReport.TextObject).Text = "前期余额: " + MODELWATERFEECHARGE.CHARGEYSQQYE.ToString("F2");
                                            string strBCSS = MODELWATERFEECHARGE.CHARGEBCSS.ToString("F2");
                                            (report1.FindObject("txtBCJF") as FastReport.TextObject).Text = "本次预存:         " + strBCSS;
                                            (report1.FindObject("txtJSYE") as FastReport.TextObject).Text = "结算余额: " + MODELWATERFEECHARGE.CHARGEYSJSYE.ToString("F2");

                                            //if (cmbChargeType.SelectedValue.ToString() == "2")
                                            //{
                                            //    (report1.FindObject("txtPOSRUNNINGNO") as FastReport.TextObject).Text = "交易流水号: " + MODELWATERFEECHARGE.POSRUNNINGNO;
                                            //}
                                            (report1.FindObject("txtChargeWorkerName") as FastReport.TextObject).Text = strLoginName;
                                            (report1.FindObject("txtReceiptNO") as FastReport.TextObject).Text        = "NO." + txtReceiptNO.Text;

                                            (report1.FindObject("txtMeterReader") as FastReport.TextObject).Text    = strMeterReaderName;
                                            (report1.FindObject("txtMeterReaderTel") as FastReport.TextObject).Text = strMeterReaderTel;

                                            string strCapMoney = RMBToCapMoney.CmycurD(strBCSS);
                                            if (cmbChargeType.SelectedValue.ToString() == "2")
                                            {
                                                (report1.FindObject("txtCapMoney") as FastReport.TextObject).Text = "金额大写:" + strCapMoney + Environment.NewLine + "交易流水号:" + txtJYLSH.Text;
                                            }
                                            else
                                            {
                                                (report1.FindObject("txtCapMoney") as FastReport.TextObject).Text = "金额大写:" + strCapMoney;
                                            }

                                            // register the dataset
                                            report1.RegisterData(ds);
                                            report1.GetDataSource("营业坐收收据模板").Enabled = true;
                                            report1.PrintSettings.ShowDialog          = false;
                                            report1.Prepare();
                                            report1.Print();

                                            //获取新的收据号码,8位收据号
                                            if (Information.IsNumeric(txtReceiptNO.Text))
                                            {
                                                txtReceiptNO.Text = (Convert.ToInt64(txtReceiptNO.Text) + 1).ToString().PadLeft(8, '0');
                                            }
                                        }
                                        catch (Exception exx)
                                        {
                                            MessageBox.Show(exx.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                            return;
                                        }
                                        finally
                                        {
                                            // free resources used by report
                                            report1.Dispose();
                                        }
                                        #endregion
                                    }
                                }
                            }
                            catch (Exception exx)
                            {
                                mes.Show("插入预收流水表失败!原因:" + exx.Message);
                                log.Write(exx.ToString(), MsgType.Error);
                                return;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        mes.Show("预收失败!原因:" + ex.Message);
                        log.Write(ex.ToString(), MsgType.Error);
                        return;
                    }
                }
                btCharge.Enabled = false;
                //dgWaterList.DataSource = null;
            }
            catch (Exception ex)
            {
                mes.Show(ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
                return;
            }
        }
        private void btCharge_Click(object sender, EventArgs e)
        {
            if (txtWaterUserID.Text.Trim() == "")
            {
                mes.Show("未找到用户ID信息,请重新查询后重试!");
                txtWaterUserNOSearch.Focus();
                return;
            }

            //如果用户存在欠费金额,则不允退费
            object objWaterUserQF = BLLreadMeterRecord.QueryQFByWaterUser(txtWaterUserID.Text.Trim());

            if (Information.IsNumeric(objWaterUserQF))
            {
                txtWaterFee.Text = Convert.ToDecimal(objWaterUserQF).ToString("F2");
                if (Convert.ToDecimal(objWaterUserQF) > 0)
                {
                    mes.Show("当前用户存在欠费余额,无法执行退费操作!");
                    return;
                }
            }
            else
            {
                txtWaterFee.Text = "0";
            }

            if (Convert.ToDecimal(txtYSQQYE.Text) <= 0)
            {
                mes.Show("用户预存余额为0,无需退费!");
                txtYSQQYE.Focus();
                return;
            }

            if (chkReceipt.Checked)
            {
                if (txtReceiptNO.Text.Trim() == "")
                {
                    mes.Show("请输入收据号!");
                    txtReceiptNO.Focus();
                    return;
                }
                if (!Information.IsNumeric(txtReceiptNO.Text))
                {
                    mes.Show("收据号只能由数字组成!");
                    txtReceiptNO.SelectAll();
                    return;
                }
                txtReceiptNO.Text = txtReceiptNO.Text.PadLeft(8, '0');
                if (BLLWATERFEECHARGE.IsExistReceiptNO(txtReceiptNO.Text))
                {
                    if (mes.ShowQ("系统检测到号码为'" + txtReceiptNO.Text + "'的收据已使用,确定使用此号码吗?") != DialogResult.OK)
                    {
                        txtReceiptNO.SelectAll();
                        return;
                    }
                }
            }

            try
            {
                MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                MODELWATERFEECHARGE.CHARGEID         = GETTABLEID.GetTableID(strLoginID, "WATERFEECHARGE");
                MODELWATERFEECHARGE.CHARGETYPEID     = "1";
                MODELWATERFEECHARGE.CHARGEClASS      = "6";//收费类型是用户余额退费
                MODELWATERFEECHARGE.CHARGEYSQQYE     = Convert.ToDecimal(txtYSQQYE.Text);
                MODELWATERFEECHARGE.CHARGEBCSS       = 0 - MODELWATERFEECHARGE.CHARGEYSQQYE;
                MODELWATERFEECHARGE.CHARGEYSBCSZ     = 0 - MODELWATERFEECHARGE.CHARGEYSQQYE;
                MODELWATERFEECHARGE.CHARGEYSJSYE     = 0;
                MODELWATERFEECHARGE.CHARGEWORKERID   = strLoginID;
                MODELWATERFEECHARGE.CHARGEWORKERNAME = strLoginName;
                MODELWATERFEECHARGE.CHARGEDATETIME   = mes.GetDatetimeNow();
                MODELWATERFEECHARGE.INVOICEPRINTSIGN = "0";
                if (chkReceipt.Checked)
                {
                    MODELWATERFEECHARGE.RECEIPTPRINTCOUNT = 1;
                    MODELWATERFEECHARGE.RECEIPTNO         = txtReceiptNO.Text;
                }
                MODELWATERFEECHARGE.INVOICEPRINTSIGN = "0";
                MODELWATERFEECHARGE.MEMO             = txtMemo.Text;
                if (BLLWATERFEECHARGE.Insert(MODELWATERFEECHARGE))
                {
                    try
                    {
                        MODELPRESTORERUNNINGACCOUNT MODELPRESTORERUNNINGACCOUNT = new MODELPRESTORERUNNINGACCOUNT();
                        MODELPRESTORERUNNINGACCOUNT.PRESTORERUNNINGACCOUNTID = GETTABLEID.GetTableID(strLoginID, "PRESTORERUNNINGACCOUNT");
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERID       = txtWaterUserID.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERNO       = txtWaterUserNO.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERNAME     = txtWaterUserName.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERNAMECODE = txtNameCode.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERPHONE    = txtWaterUserPhone.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERADDRESS  = txtWaterUserAddress.Text;
                        if (Information.IsNumeric(txtWaterUserPeopleCount.Text))
                        {
                            MODELPRESTORERUNNINGACCOUNT.WATERUSERPEOPLECOUNT = Convert.ToInt16(txtWaterUserPeopleCount.Text);
                        }
                        MODELPRESTORERUNNINGACCOUNT.AREANO        = txtAreaNO.Text;
                        MODELPRESTORERUNNINGACCOUNT.PIANNO        = txtPianNO.Text;
                        MODELPRESTORERUNNINGACCOUNT.DUANNO        = txtDuanNO.Text;
                        MODELPRESTORERUNNINGACCOUNT.COMMUNITYID   = txtCommunityID.Text;
                        MODELPRESTORERUNNINGACCOUNT.COMMUNITYNAME = txtCommunity.Text;
                        if (Information.IsNumeric(txtOrderNumber.Text))
                        {
                            MODELPRESTORERUNNINGACCOUNT.ORDERNUMBER = Convert.ToInt16(txtOrderNumber.Text);
                        }
                        //MODELPRESTORERUNNINGACCOUNT.BUILDINGNO = txtBuildingNO.Text;
                        //MODELPRESTORERUNNINGACCOUNT.UNITNO = txtUnitNO.Text;
                        MODELPRESTORERUNNINGACCOUNT.METERREADERID           = txtMeterReaderID.Text;
                        MODELPRESTORERUNNINGACCOUNT.METERREADERNAME         = txtMeterReader.Text;
                        MODELPRESTORERUNNINGACCOUNT.CHARGERID               = txtChargerID.Text;
                        MODELPRESTORERUNNINGACCOUNT.CHARGERNAME             = txtCharger.Text;
                        MODELPRESTORERUNNINGACCOUNT.waterMeterTypeId        = txtWaterMeterTypeID.Text;
                        MODELPRESTORERUNNINGACCOUNT.waterMeterTypeValue     = txtWaterMeterTypeValue.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERMETERTYPECLASSID   = txtWaterMeterTypeClassID.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERMETERTYPECLASSNAME = txtWaterMeterTypeClassName.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERTYPEID         = txtWaterUserTypeID.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERTYPENAME       = txtWaterUserType.Text;
                        //MODELPRESTORERUNNINGACCOUNT.WATERUSERHOUSETYPE = txtWaterUserHouseType.Text;
                        //MODELPRESTORERUNNINGACCOUNT.CREATETYPE = txtCreateType.Text;
                        //MODELPRESTORERUNNINGACCOUNT.MEMO = txtMemo.Text;
                        MODELPRESTORERUNNINGACCOUNT.CHARGEID = MODELWATERFEECHARGE.CHARGEID;
                        if (BLLPRESTORERUNNINGACCOUNT.Insert(MODELPRESTORERUNNINGACCOUNT))
                        {
                            //txtYSQQYE.Text = txtJSYE.Text;
                            //txtWaterFeeReal.Text =( Convert.ToDecimal(txtWaterFee.Text) - Convert.ToDecimal(txtYSQQYE.Text)).ToString();
                            //txtBCYC.Text = "0";
                            btCharge.Enabled = false;
                            btSearchLS_Click(null, null);

                            //更新余额
                            string strUpdatePrestore = "UPDATE waterUser SET prestore=" + MODELWATERFEECHARGE.CHARGEYSJSYE + " WHERE waterUserId='" + txtWaterUserID.Text + "'";
                            if (!BLLwaterUser.UpdateSQL(strUpdatePrestore))
                            {
                                string strError = "更新用户编号为'" + txtWaterUserID.Text + "'的余额失败,请手动添加预收余额!";
                                mes.Show(strError);
                                log.Write(strError, MsgType.Error);
                            }
                            //如果勾选了打收据,打印收据
                            else if (chkReceipt.Checked)
                            {
                                //--打印收据
                                #region
                                FastReport.Report report1 = new FastReport.Report();
                                try
                                {
                                    report1.Load(Application.StartupPath + @"\PRINTModel\收据模板\退费收据模板.frx");

                                    (report1.FindObject("txtDateTime") as FastReport.TextObject).Text = MODELWATERFEECHARGE.CHARGEDATETIME.ToString("yyyy-MM-dd HH:mm:ss");
                                    //if (cmbChargeType.SelectedValue.ToString() == "2")
                                    //{
                                    //    (report1.FindObject("Cell45") as FastReport.Table.TableCell).Text = txtWaterUserNO.Text + "   交易流水号:" + txtJYLSH.Text;
                                    //}
                                    //else
                                    (report1.FindObject("CellWaterUserNO") as FastReport.Table.TableCell).Text      = txtWaterUserNO.Text;
                                    (report1.FindObject("CellWaterUserName") as FastReport.Table.TableCell).Text    = txtWaterUserName.Text;
                                    (report1.FindObject("CellWaterUserAddress") as FastReport.Table.TableCell).Text = txtWaterUserAddress.Text;

                                    (report1.FindObject("txtQQYE") as FastReport.TextObject).Text = "前期余额: " + MODELWATERFEECHARGE.CHARGEYSQQYE.ToString("F2");
                                    (report1.FindObject("txtBCTF") as FastReport.TextObject).Text = "本次退费:         " + MODELWATERFEECHARGE.CHARGEYSBCSZ;
                                    (report1.FindObject("txtJSYE") as FastReport.TextObject).Text = "结算余额: " + MODELWATERFEECHARGE.CHARGEYSJSYE.ToString("F2");

                                    //if (cmbChargeType.SelectedValue.ToString() == "2")
                                    //{
                                    //    (report1.FindObject("txtPOSRUNNINGNO") as FastReport.TextObject).Text = "交易流水号: " + MODELWATERFEECHARGE.POSRUNNINGNO;
                                    //}
                                    (report1.FindObject("txtChargeWorkerName") as FastReport.TextObject).Text = strLoginName;
                                    (report1.FindObject("txtReceiptNO") as FastReport.TextObject).Text        = "NO." + txtReceiptNO.Text;

                                    (report1.FindObject("txtMeterReader") as FastReport.TextObject).Text    = txtMeterReader.Text;
                                    (report1.FindObject("txtMeterReaderTel") as FastReport.TextObject).Text = txtMeterReaderTel.Text;

                                    report1.PrintSettings.ShowDialog = false;
                                    report1.Prepare();
                                    report1.Print();

                                    //获取新的收据号码,8位收据号
                                    if (Information.IsNumeric(txtReceiptNO.Text))
                                    {
                                        txtReceiptNO.Text = (Convert.ToInt64(txtReceiptNO.Text) + 1).ToString().PadLeft(8, '0');
                                    }
                                }
                                catch (Exception exx)
                                {
                                    MessageBox.Show(exx.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                                finally
                                {
                                    // free resources used by report
                                    report1.Dispose();
                                }
                                #endregion
                            }
                        }
                    }
                    catch (Exception exx)
                    {
                        mes.Show("插入预收流水表失败!原因:" + exx.Message);
                        log.Write(exx.ToString(), MsgType.Error);
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                mes.Show("预收失败!原因:" + ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
                return;
            }
        }