/// <summary> /// 添加账单收费项 /// </summary> /// <param name="content"></param> /// <returns></returns> public static int BillContentInsert(Am_BillContent content) { using (var conn = GetOpenConnection()) { var sql = @"INSERT INTO [dbo].[Am_BillContent] ([Number],[Bill_Number],[Bill_Code],[ChargeItem_Number],[ChargeItem_Title],[ChargeItem_ChargeType],[Money],[UMark],[Remark]) VALUES(@Number,@Bill_Number,@Bill_Code ,@ChargeItem_Number ,@ChargeItem_Title ,@ChargeItem_ChargeType ,@Money ,@UMark ,@Remark)"; return(conn.Execute(sql, content)); } }
/// <summary> /// 账单生成 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BillTimerdEvent(object sender, System.Timers.ElapsedEventArgs e) { BillTimer.Stop(); var config = database.FindEntityByWhere <Fx_WebConfig>(""); if (config != null && config.BillDate > 0) { var time = DateTime.Now.Date.AddDays(config.BillDate.Value); var pList = DbHelper.GetAmmeterPermissionList(time); foreach (var item in pList) { List <DbParameter> par2 = new List <DbParameter>(); par2.Add(DbFactory.CreateDbParameter("@AmmeterNumber", item.Ammeter_Number)); par2.Add(DbFactory.CreateDbParameter("@Status", "1")); var contract = database.FindCount <Am_Contract>(" and AmmeterNumber=@AmmeterNumber and Status=@Status ", par2.ToArray()); if (contract == 0) { //未签订合同 continue; } List <DbParameter> par1 = new List <DbParameter>(); par1.Add(DbFactory.CreateDbParameter("@Number", item.Ammeter_Number)); var ammeter = database.FindEntityByWhere <Am_Ammeter>(" and Number=@Number ", par1.ToArray()); if (ammeter != null) { List <DbParameter> par = new List <DbParameter>(); par.Add(DbFactory.CreateDbParameter("@Ammeter_Number", ammeter.Number)); var templateContentList = database.FindList <Am_TemplateContent>(" and Template_Number =(select top(1) number from Am_Template where Ammeter_Number=@Ammeter_Number ) ", par.ToArray()); double money = 0.00; foreach (var centent in templateContentList) { //一次性账单 if (centent.ChargeItem_ChargeType == 1) { if (item.BeginTime == item.LastPayBill) { money = money + centent.Money.Value; } } else { money = money + centent.Money.Value; } } //推送时间 var sendTime = DateTime.Now; if (item.BeginTime == item.LastPayBill) { sendTime = item.BeginTime.Value; } else { sendTime = item.LastPayBill.Value.AddDays(-config.SendBillDate.Value); } var bill = new LeaRun.Entity.Am_Bill { Address = ammeter.Address, AmmeterCode = item.Ammeter_Code, AmmeterNumber = item.Ammeter_Number, Cell = ammeter.Cell, City = ammeter.City, County = ammeter.County, CreateTime = DateTime.Now, Floor = ammeter.Floor, F_UserName = item.UY_UserName, F_U_Name = item.UY_Name, F_U_Number = item.UY_Number, Money = money, Number = CommonHelper.GetGuid, OtherFees = 0, PayTime = DateTime.Now, Province = ammeter.Province, Remark = "", Room = ammeter.Room, SendTime = sendTime, Status = 0, StatusStr = "待支付", T_UserName = item.UserName, T_U_Name = item.U_Name, T_U_Number = item.U_Number, BeginTime = item.LastPayBill, EndTime = item.LastPayBill.Value.AddMonths(item.BillCyc.Value) }; var count = 100000 + database.FindCount <Am_Bill>() + 1; var code = item.LastPayBill.Value.ToString("yyyyMMdd") + "-" + count; bill.BillCode = code; if (database.Insert <Am_Bill>(bill) > 0) { //账单收费项 foreach (var content in templateContentList) { var contentModel = new Am_BillContent { ChargeItem_ChargeType = content.ChargeItem_ChargeType, ChargeItem_Number = content.ChargeItem_Number, ChargeItem_Title = content.ChargeItem_Title, Money = content.Money, Bill_Code = bill.BillCode, Bill_Number = bill.Number, Number = CommonHelper.GetGuid, Remark = "", UMark = "" }; database.Insert <Am_BillContent>(contentModel); } if (item.BeginTime != item.LastPayBill) { item.LastPayBill = item.LastPayBill.Value.AddMonths(item.BillCyc.Value); database.Update <Am_AmmeterPermission>(item); } } } } } BillTimer.Start(); }