private void 水电气费BindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            this.Validate();
            string v_计费年份 = this.计费年份ToolStripComboBox.Text.Trim();
            string v_计费月份 = this.计费月份ToolStripComboBox.Text.Trim();
            string v_费用类型 = this.费用类型ToolStripComboBox.Text.Trim();
            string v_楼栋名称 = this.楼栋名称ToolStripComboBox.Text.Trim();

            if (string.IsNullOrEmpty(v_计费年份) || string.IsNullOrEmpty(v_计费月份) || string.IsNullOrEmpty(v_费用类型) || string.IsNullOrEmpty(v_楼栋名称))
            {
                new MsgBoxForm("提示", "没有选择正确的计费年份,计费月份,费用类型,楼栋名称等信息!").ShowDialog();
                return;
            }

            try
            {
                foreach (DataGridViewRow gridViewRow in this.水电气费DataGridView.Rows)
                {
                    string v_业主编号 = Helper.GetCellValue(gridViewRow, "业主编号");
                    if (string.IsNullOrEmpty(v_业主编号))
                    {
                        continue;
                    }
                    string v_业主姓名 = Helper.GetCellValue(gridViewRow, "业主姓名");
                    string v_表编号 = Helper.GetCellValue(gridViewRow, "表编号");
                    string v_表底数 = Helper.GetCellValue(gridViewRow, "表底数");
                    string v_表止数 = Helper.GetCellValue(gridViewRow, "表止数");
                    string v_计费单价 = Helper.GetCellValue(gridViewRow, "计费单价");
                    string v_表用量 = string.Empty;
                    float  f_表底数 = 0, f_表止数 = 0, f_计费单价 = 0, f_应交金额;
                    float.TryParse(v_表底数, out f_表底数);
                    float.TryParse(v_表止数, out f_表止数);
                    float.TryParse(v_计费单价, out f_计费单价);

                    if (f_表底数 > f_表止数)
                    {
                        new MsgBoxForm("提示", "表止数不能小于表底数,请重新输入!").ShowDialog();
                        return;
                    }
                    if (f_计费单价 < 0)
                    {
                        new MsgBoxForm("提示", "计费单价不能小于0,请重新输入!").ShowDialog();
                        return;
                    }
                    v_表用量  = (f_表止数 - f_表底数).ToString("N2");
                    f_应交金额 = (f_表止数 - f_表底数) * f_计费单价;
                    string query = "UPDATE 水电气费 SET 表编号='" + v_表编号 + "',表底数=" + v_表底数 + ",表止数=" + v_表止数 + ",表用量=" + v_表用量 + ",计费单价=" + v_计费单价 + ",应交金额=" + f_应交金额 + " WHERE 计费年份=" + v_计费年份 +
                                   " AND 计费月份=" + v_计费月份 + " AND 费用类型='" + v_费用类型 + "' AND 楼栋名称='" + v_楼栋名称 + "' AND 业主编号='" + v_业主编号 + "' AND 业主姓名='" + v_业主姓名 + "'";
                    DataHelper.UpdateOrDeleteRecord(query);
                }
                DataHelper.CommitUpdate();
                SynGasRegisterInfo(v_计费年份, v_计费月份, v_费用类型, v_楼栋名称, "正在登记");
                new MsgBoxForm("提示", "保存成功!").ShowDialog();
            }
            catch (Exception ex)
            {
                new MsgBoxForm("提示", "保存失败,请检查所填数据类型!").ShowDialog();
                LogHelper.LogError(ex);
            }
        }
        private void 新增ToolStripButton_Click(object sender, EventArgs e)
        {//新增水电气费
            string v_计费年份 = this.计费年份ToolStripComboBox.Text.Trim();
            string v_计费月份 = this.计费月份ToolStripComboBox.Text.Trim();
            string v_费用类型 = this.费用类型ToolStripComboBox.Text.Trim();
            string v_楼栋名称 = this.楼栋名称ToolStripComboBox.Text.Trim();

            if (string.IsNullOrEmpty(v_计费年份) || string.IsNullOrEmpty(v_计费月份) || string.IsNullOrEmpty(v_费用类型) || string.IsNullOrEmpty(v_楼栋名称))
            {
                new MsgBoxForm("提示", "没有选择正确的计费年份,计费月份,费用类型,楼栋名称等信息!").ShowDialog();
                return;
            }
            if (new MsgBoxForm("提示", string.Format("现在将新增{0}{1}年{2}月的{3}数据,是否继续?", v_楼栋名称, v_计费年份, v_计费月份, v_费用类型), true).ShowDialog() != DialogResult.OK)
            {
                return;
            }
            string    query = string.Format("select 自动编号 from 水电气费 where 计费年份={0} and 计费月份={1} and 费用类型='{2}' and 楼栋名称='{3}'", v_计费年份, v_计费月份, v_费用类型, v_楼栋名称);
            DataTable dt    = DataHelper.GetDataTable(query);

            if (dt.Rows.Count == 0)
            {//插入新月份费用的业主基本信息
                string insertQuery = "INSERT INTO 水电气费 (楼栋名称,业主编号,业主姓名) SELECT 楼栋名称,业主编号,业主姓名 FROM 业主信息 WHERE (业主编号 NOT IN (SELECT 业主编号 FROM 迁出信息)) AND (楼栋名称='" + v_楼栋名称 + "')";
                DataHelper.UpdateOrDeleteRecord(insertQuery);
                string updateQuery = "UPDATE 水电气费 SET 登记标志='正在登记',费用类型='" + v_费用类型 + "',计费年份=" + v_计费年份 + ",计费月份=" + v_计费月份 + " WHERE 登记标志 IS NULL AND (楼栋名称='" + v_楼栋名称 + "')";
                DataHelper.UpdateOrDeleteRecord(updateQuery);
                int MyLastMonth = Convert.ToInt16(v_计费月份) - 1;
                int MyLastYear  = Convert.ToInt16(v_计费年份);
                if (MyLastMonth == 0)
                {
                    MyLastMonth = 12;
                    MyLastYear  = Convert.ToInt16(v_计费年份) - 1;
                }
                //将上月止数作为新月份底数
                string    lastMonthQuery   = "Select 楼栋名称,业主编号,业主姓名,计费年份,计费月份,费用类型,表编号,表底数,表止数,计费单价 FROM 水电气费 WHERE 计费年份=" + MyLastYear + " AND 计费月份=" + MyLastMonth + " AND 费用类型='" + v_费用类型 + "' AND 楼栋名称='" + v_楼栋名称 + "' AND 登记标志='完成登记'";
                DataTable myLastMonthTable = DataHelper.GetDataTable(lastMonthQuery);
                foreach (DataRow dRow in myLastMonthTable.Rows)
                {
                    string My楼栋名称 = Helper.Obj2String(dRow[0]);
                    string My业主编号 = Helper.Obj2String(dRow[1]);
                    string My计费年份 = Helper.Obj2String(dRow[3]);
                    string My计费月份 = Helper.Obj2String(dRow[4]);
                    string My费用类型 = Helper.Obj2String(dRow[5]);
                    string My表编号  = Helper.Obj2String(dRow[6]);
                    double My表底数  = Helper.Obj2Double(dRow[7]);
                    double My表止数  = Helper.Obj2Double(dRow[8]);
                    double My计费单价 = Helper.Obj2Double(dRow[9]);
                    updateQuery = "UPDATE 水电气费 SET 表编号='" + My表编号 + "',表底数=" + My表止数 + ",计费单价=" + My计费单价 + " WHERE 计费年份=" + v_计费年份 + " AND 计费月份=" + v_计费月份 + " AND 费用类型='" + v_费用类型 + "' AND 楼栋名称='" + v_楼栋名称 + "' AND 业主编号='" + My业主编号 + "'";
                    DataHelper.UpdateOrDeleteRecord(updateQuery);
                }
                DataHelper.CommitUpdate();
                SynGasRegisterInfo(v_计费年份, v_计费月份, v_费用类型, v_楼栋名称, "正在登记");
            }
            else
            {
                new MsgBoxForm("提示", "当月" + v_费用类型 + "已登记!").ShowDialog();
                return;
            }
        }
        private void 物管费用BindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            this.Validate();
            string v_计费年份 = this.计费年份ToolStripComboBox.Text.Trim();
            string v_计费月份 = this.计费月份ToolStripComboBox.Text.Trim();
            string v_楼栋名称 = this.楼栋名称ToolStripComboBox.Text.Trim();

            if (string.IsNullOrEmpty(v_计费年份) || string.IsNullOrEmpty(v_计费月份) || string.IsNullOrEmpty(v_楼栋名称))
            {
                new MsgBoxForm("提示", "没有选择正确的计费年份,计费月份,楼栋名称等信息!").ShowDialog();
                return;
            }

            try
            {
                Dictionary <string, StationFeeInfo> stationFeeDic = GetStationFeeInfo(v_楼栋名称);
                foreach (DataGridViewRow gridViewRow in this.物管费用DataGridView.Rows)
                {
                    string v_业主编号 = Helper.GetCellValue(gridViewRow, "业主编号");
                    if (string.IsNullOrEmpty(v_业主编号))
                    {
                        continue;
                    }
                    string v_业主姓名 = Helper.GetCellValue(gridViewRow, "业主姓名");
                    string v_建筑面积 = Helper.GetCellValue(gridViewRow, "建筑面积");
                    string v_计费单价 = Helper.GetCellValue(gridViewRow, "计费单价");
                    string v_表用量 = string.Empty, v_补充说明 = string.Empty;
                    float  f_建筑面积, f_计费单价 = 0, f_车位费用 = 0, f_应交金额;
                    float.TryParse(v_建筑面积, out f_建筑面积);
                    float.TryParse(v_计费单价, out f_计费单价);
                    if (f_计费单价 < 0)
                    {
                        new MsgBoxForm("提示", "计费单价不能小于0,请重新输入!").ShowDialog();
                        return;
                    }
                    string dicKey = v_业主编号 + v_业主姓名;
                    if (stationFeeDic.ContainsKey(dicKey))
                    {
                        f_车位费用 = (float)stationFeeDic[dicKey].v_费用金额;
                        v_补充说明 = string.Format("车位:{0} 费用:{1}", stationFeeDic[dicKey].v_车位编号, f_车位费用);
                    }
                    f_应交金额 = f_建筑面积 * f_计费单价 + f_车位费用;
                    string query = "UPDATE 物管费用 SET 计费单价=" + v_计费单价 + ",应交金额=" + f_应交金额 + ",补充说明='" + v_补充说明 + "' WHERE 计费年份=" + v_计费年份 +
                                   " AND 计费月份=" + v_计费月份 + " AND 楼栋名称='" + v_楼栋名称 + "' AND 业主编号='" + v_业主编号 + "' AND 业主姓名='" + v_业主姓名 + "'";
                    DataHelper.UpdateOrDeleteRecord(query);
                }
                DataHelper.CommitUpdate();
                SynManageRegisterInfo(v_计费年份, v_计费月份, v_楼栋名称, "正在登记");
                new MsgBoxForm("提示", "保存成功!").ShowDialog();
            }
            catch (Exception ex)
            {
                new MsgBoxForm("提示", "保存失败,请检查所填数据类型!").ShowDialog();
                LogHelper.LogError(ex);
            }
        }
        private void 新增ToolStripButton_Click(object sender, EventArgs e)
        {//新增物管费用信息
            string v_计费年份 = this.计费年份ToolStripComboBox.Text.Trim();
            string v_计费月份 = this.计费月份ToolStripComboBox.Text.Trim();
            string v_楼栋名称 = this.楼栋名称ToolStripComboBox.Text.Trim();

            if (string.IsNullOrEmpty(v_计费年份) || string.IsNullOrEmpty(v_计费月份) || string.IsNullOrEmpty(v_楼栋名称))
            {
                new MsgBoxForm("提示", "没有选择正确的计费年份,计费月份,楼栋名称等信息!").ShowDialog();
                return;
            }
            if (new MsgBoxForm("提示", string.Format("现在将新增 {0}{1}年{2}月物业管理费数据,是否继续?", v_楼栋名称, v_计费年份, v_计费月份), true).ShowDialog() != DialogResult.OK)
            {
                return;
            }
            string    query   = "Select 自动编号 From 物管费用 WHERE 计费年份=" + v_计费年份 + " AND 计费月份=" + v_计费月份 + " AND 楼栋名称='" + v_楼栋名称 + "'";
            DataTable myTable = DataHelper.GetDataTable(query);

            if (myTable.Rows.Count == 0)
            {
                //插入新月份的物管费用基本信息
                string insertQuery = "INSERT INTO 物管费用 (楼栋名称,业主编号,业主姓名,建筑面积,套内面积) SELECT 楼栋名称,业主编号,业主姓名,建筑面积,套内面积 FROM 业主信息 WHERE (业主编号 NOT IN (SELECT 业主编号 FROM 迁出信息)) AND (楼栋名称='" + v_楼栋名称 + "')";
                DataHelper.UpdateOrDeleteRecord(insertQuery);
                string updateQuery = "UPDATE 物管费用 SET 登记标志='正在登记',计费年份=" + v_计费年份 + ",计费月份=" + v_计费月份 + " WHERE 登记标志 IS NULL AND (楼栋名称='" + v_楼栋名称 + "')";
                DataHelper.UpdateOrDeleteRecord(updateQuery);
                int myLastMonth = Convert.ToInt16(v_计费月份) - 1;
                int myLastYear  = Convert.ToInt16(v_计费年份);
                if (myLastMonth == 0)
                {
                    myLastMonth = 12;
                    myLastYear  = Convert.ToInt16(v_计费年份) - 1;
                }
                //将上月计费单价作为新月物管费用计费单价
                query = "Select 业主编号,计费单价 FROM 物管费用 WHERE 计费年份=" + myLastYear + " AND 计费月份=" + myLastMonth + " AND 楼栋名称='" + v_楼栋名称 + "' AND 登记标志='完成登记'";
                DataTable myComputeTable = DataHelper.GetDataTable(query);
                foreach (DataRow dRow in myComputeTable.Rows)
                {
                    string v_业主编号 = Helper.Obj2String(dRow[0]);
                    double v_计费单价 = Helper.Obj2Double(dRow[1]);
                    query = "UPDATE 物管费用 SET 计费单价=" + v_计费单价 + " WHERE 计费年份=" + v_计费年份 + " AND 计费月份=" + v_计费月份 + " AND 楼栋名称='" + v_楼栋名称 + "' AND 业主编号='" + v_业主编号 + "'";
                    DataHelper.UpdateOrDeleteRecord(query);
                }
                DataHelper.CommitUpdate();
                SynManageRegisterInfo(v_计费年份, v_计费月份, v_楼栋名称, "正在登记");
            }
            else
            {
                new MsgBoxForm("提示", "当月物业管理费已登记!").ShowDialog();
                return;
            }
        }
Beispiel #5
0
        private void 保存Button_Click(object sender, EventArgs e)
        {//保存物管费用交款信息
            string v_收据编号 = Helper.GetTextBoxCtrlValue(this.Controls, "收据编号");

            if (string.IsNullOrEmpty(v_收据编号))
            {
                new MsgBoxForm("提示", "没有输入正确的信息!").ShowDialog();
                return;
            }

            if (new MsgBoxForm("警告", "现在将保存业主交纳的物业管理费数据,是否继续?", true).ShowDialog() != DialogResult.OK)
            {
                return;
            }

            try
            {
                string v_收款日期 = Helper.GetDateCtrlValue(this.Controls, "收款日期");
                string v_交款人员 = Helper.GetTextBoxCtrlValue(this.Controls, "交款人员");
                string v_收款金额 = Helper.GetTextBoxCtrlValue(this.Controls, "收款金额");
                string v_收款形式 = Helper.GetComBoxCtrlValue(this.Controls, "收款形式");
                string v_收款人员 = Helper.GetTextBoxCtrlValue(this.Controls, "收款人员");
                string v_收款事由 = Helper.GetTextBoxCtrlValue(this.Controls, "收款事由");
                string v_补充说明 = Helper.GetTextBoxCtrlValue(this.Controls, "补充说明");
                string query  = string.Format("INSERT INTO 费用收据(收据编号,收款日期,交款人员,收款金额,收款形式,收款人员,收款事由,补充说明) VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')",
                                              v_收据编号, v_收款日期, v_交款人员, v_收款金额, v_收款形式, v_收款人员, v_收款事由, v_补充说明);
                DataHelper.UpdateOrDeleteRecord(query);

                foreach (DataRow dRow in manageTable.Rows)
                {
                    string v_自动编号 = dRow[0].ToString();
                    string My收据编号 = this.收据编号TextBox.Text;
                    query = "UPDATE 物管费用 SET 费用状态='已交费',收据编号='" + My收据编号 + "' WHERE 自动编号=" + v_自动编号;
                    DataHelper.UpdateOrDeleteRecord(query);
                }
                DataHelper.CommitUpdate();
                new MsgBoxForm("提示", "保存成功!").ShowDialog();
            }
            catch (Exception ex)
            {
                new MsgBoxForm("提示", "保存失败,请检查所填数据类型!").ShowDialog();
                LogHelper.LogError(ex);
            }
            查询Button_Click(null, null);
            manageTable.Rows.Clear();
        }
        private void 保存Button_Click(object sender, EventArgs e)
        {//保存水电气费交款信息
            string v_业主编号 = "";

            if (this.业主姓名ComboBox.SelectedValue != null && this.业主姓名ComboBox.SelectedValue.ToString() != "System.Data.DataRowView")
            {
                v_业主编号 = this.业主姓名ComboBox.SelectedValue.ToString();
            }
            string v_楼栋名称 = this.楼栋名称ComboBox.Text;
            string v_收据编号 = Helper.GetTextBoxCtrlValue(this.Controls, "收据编号");

            if (string.IsNullOrEmpty(v_收据编号))
            {
                new MsgBoxForm("提示", "没有输入正确的信息!").ShowDialog();
                return;
            }

            if (new MsgBoxForm("警告", "现在将保存业主交纳的物业费数据,是否继续?", true).ShowDialog() != DialogResult.OK)
            {
                return;
            }
            try
            {
                string v_收款日期 = Helper.GetDateCtrlValue(this.Controls, "收款日期");
                string v_交款人员 = Helper.GetTextBoxCtrlValue(this.Controls, "交款人员");
                string v_应收金额 = Helper.GetTextBoxCtrlValue(this.Controls, "应收金额");
                string v_实收金额 = Helper.GetTextBoxCtrlValue(this.Controls, "实收金额");
                string v_收款形式 = Helper.GetComBoxCtrlValue(this.Controls, "收款形式");
                string v_收款人员 = Helper.GetTextBoxCtrlValue(this.Controls, "收款人员");
                string v_收款事由 = Helper.GetTextBoxCtrlValue(this.Controls, "收款事由");
                string v_补充说明 = Helper.GetTextBoxCtrlValue(this.Controls, "补充说明");
                if (string.IsNullOrEmpty(v_实收金额))
                {
                    new MsgBoxForm("提示", "请输入实收金额!").ShowDialog();
                    return;
                }
                float f_应收金额 = 0, f_实收金额 = 0, f_预存金额 = 0;
                float.TryParse(v_应收金额, out f_应收金额);
                float.TryParse(v_实收金额, out f_实收金额);
                f_预存金额 = (float)Math.Round(f_实收金额 - f_应收金额, 2);
                if (f_实收金额 < f_应收金额)
                {
                    new MsgBoxForm("提示", "实收金额不能小于应收金额!").ShowDialog();
                    return;
                }
                string query = string.Format("INSERT INTO 费用收据(收据编号,收款日期,交款人员,应收金额,实收金额,收款形式,收款人员,收款事由,补充说明) VALUES('{0}','{1}','{2}',{3},{4},'{5}','{6}','{7}','{8}')",
                                             v_收据编号, v_收款日期, v_交款人员, v_应收金额, v_实收金额, v_收款形式, v_收款人员, v_收款事由, v_补充说明);
                DataHelper.UpdateOrDeleteRecord(query);

                foreach (DataRow dRow in dtData.Rows)
                {
                    string v_自动编号 = dRow[0].ToString();
                    string My收据编号 = this.收据编号TextBox.Text;
                    query = "UPDATE 水电气费 SET 费用状态='已交费',收据编号='" + My收据编号 + "' WHERE 自动编号=" + v_自动编号;
                    DataHelper.UpdateOrDeleteRecord(query);
                }

                query = "UPDATE 业主信息 SET 预存金额=" + f_预存金额 + " WHERE 业主编号='" + v_业主编号 + "' AND 楼栋名称='" + v_楼栋名称 + "'";
                int nRet = DataHelper.UpdateOrDeleteRecord(query);
                if (nRet > 0)  //更新预存金额
                {
                    if (ownerInfoDic.ContainsKey(v_业主编号))
                    {
                        ownerInfoDic[v_业主编号].d_预存金额 = f_预存金额;
                    }
                }
                DataHelper.CommitUpdate();
                new MsgBoxForm("提示", "保存成功!").ShowDialog();
            }
            catch (Exception ex)
            {
                new MsgBoxForm("提示", "保存失败,请检查所填数据类型!").ShowDialog();
                LogHelper.LogError(ex);
            }
            string    querySelect = "SELECT 自动编号, 计费年份, 计费月份, 费用类型, 表编号, 上月数, 本月数, 表用量, 计费单价, 应交金额,补充说明 FROM 水电气费 WHERE (业主编号 ='" + v_业主编号 + "') AND (费用状态='未交费') ORDER BY 业主编号,表编号,计费年份,计费月份";
            DataTable myTable     = DataHelper.GetDataTable(querySelect);

            this.未交DataGridView.DataSource = myTable;
            this.交款人员TextBox.Text          = this.业主姓名ComboBox.Text;
            AutoInputFeeInfo(v_业主编号);
        }