Пример #1
0
 /// <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));
     }
 }
Пример #2
0
        /// <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();
        }