public static void Insert() { Bill bill = new Bill(5, DateTime.Parse("8-Dec-15"), 450.0, 400, 3); BillDAL.Insert(bill); Console.WriteLine("Inserted"); }
/// <summary> /// 获取所有款项统计信息 /// isCurrent: true:当期欠费科目集合 false:逾期欠费集合 /// </summary> /// <returns></returns> public virtual List <BillItem> GetStatisticsItems(bool?isCurrent = false) { var bills = BillDAL.GetNormalBills(Business.Bills); List <BillItem> billItems = new List <BillItem>(); bills.ForEach(o => { if (o.BillItems != null) { billItems.AddRange(o.BillItems); } }); List <BillItem> tempItems = new List <BillItem>(); var pdtItems = GetProductItems(); foreach (var pdtItem in pdtItems) { BillItem item = new BillItem(); var filterItems = billItems.Where(p => p.Subject == pdtItem.Key).ToList(); if (isCurrent != null) { filterItems = filterItems.Where(p => p.IsCurrent == isCurrent.Value).ToList(); } item.Amount = filterItems.Sum(p => p.Amount); item.DueAmt = filterItems.Sum(p => p.DueAmt); item.ReceivedAmt = filterItems.Sum(p => p.ReceivedAmt); item.StrSubject = pdtItem.Value.Replace("月", string.Empty); item.Subject = pdtItem.Key; tempItems.Add(item); } return(tempItems); }
private void GetAllMessage(string bankPhone, string timeStamp) { smsCount = 0; if (bankPhone != null) { var smsResolver = this.ContentResolver; var uri = Android.Provider.Telephony.Sms.Inbox.ContentUri; System.String[] projection = new System.String[] { "_id", "address", "person", "body", "date", "type" }; ICursor cur = smsResolver.Query(uri, projection, "date>? and type=1 and address in (" + bankPhone + ")", new string[] { timeStamp }, "date desc"); if (cur.MoveToFirst()) { System.String name; System.String phoneNumber; System.String smsbody; System.String date; int nameColumn = cur.GetColumnIndex("person"); int phoneNumberColumn = cur.GetColumnIndex("address"); int smsbodyColumn = cur.GetColumnIndex("body"); int dateColumn = cur.GetColumnIndex("date"); BillDAL billDal = new BillDAL(); do { name = cur.GetString(nameColumn); phoneNumber = cur.GetString(phoneNumberColumn); smsbody = cur.GetString(smsbodyColumn); date = cur.GetString(dateColumn); Analysis(smsbody, date); } while (cur.MoveToNext()); } } }
/// <summary> /// 获取可足科填充科目(自动填帐规则) /// </summary> /// <param name="amount"></param> /// <returns></returns> public override List <BillItem> GetFillItems(decimal amount) { List <Bill> bills = BillDAL.GetArrearsBills(Business.Bills).OrderBy(o => o.CreateTime).ToList(); List <BillItem> items = new List <BillItem>(); foreach (Bill bill in bills) { foreach (var subject in Subjects) { var item = bill.BillItems.Where(p => subject.Contains(p.Subject.ValueToEnum <EnumCostSubject>()) && !p.IsShelve); var amt = item.Sum(p => p.DueAmt - p.ReceivedAmt); if (amt <= 0) { continue; } if (amount >= amt) { amount -= amt; items.AddRange(item); } if (amount == 0) { break; } } if (amount == 0) { break; } } return(items); }
public static List <Bill> GetAll() { List <Bill> bills = BillDAL.GetAll(); return(bills); }
/// <summary> /// 为提前清贷订单进行自动填帐收款 /// </summary> /// <param name="business"></param> /// <param name="payid"></param> /// <param name="filter"></param> /// <param name="lstUpdateItem"></param> /// <param name="lstReceived"></param> protected void AutoReceivedByCLoan(Business business, int payid, PayAccountFilter filter , List <UpdateItem> lstUpdateItem, List <Received> lstReceived) { var bills = BillDAL.GetArrearsBills(business.Bills); CloanApply apply = null; var lstApply = Singleton <CloanApplyDetailDAL <CloanApply> > .Instance.SearchData(filter); if (lstApply == null || lstApply.Count == 0) { return; } apply = lstApply[0]; IEnumerable <CloanApplyItem> items = new List <CloanApplyItem>(); if (apply != null) { filter.CloanApplyID = apply.CloanApplyID; apply.CloanApplyItems = Singleton <CloanApplyItemDetailDAL <CloanApplyItem> > .Instance.SearchData(filter); items = apply.CloanApplyItems.Where(p => p.IsAnnul); } if (bills.Count > 0) { if (items.Count() > 0)//有减免项,先做减免 { //提前清贷服务费重置为不包括减免金额 Bill advbill = bills.FirstOrDefault(p => p.BillType == (byte)EnumBillKind.Advance); BillItem billitem = advbill.BillItems.FirstOrDefault(p => p.Subject == (byte)EnumCostSubject.AdvServiceFee); billitem.DueAmt = billitem.DueAmt + items.Sum(p => p.Amount); lstUpdateItem.Add(new UpdateItem { Id = billitem.BillItemID, Amount = billitem.DueAmt, Type = 2 }); //billItemDAL.Update(billitem); foreach (var item in items) { AnnulBillItemBySubAndAmount(bills, item.Subject, item.Amount, payid, DateTime.Now, lstReceived, lstUpdateItem); } } foreach (var bill in bills) { FtpAdvRecevied(bill.BillItems.Where(p => p.DueAmt - p.ReceivedAmt > 0).ToList(), payid, DateTime.Now , filter.UserId, filter.Explain, lstReceived, lstUpdateItem, EnumAdjustKind.Transfer); } //apply.CloanApplyStatus = (byte)EnumCloanApplyStatus.Success; //cLoanApplyDAL.Update(apply); } else { m_Logger.Error("提前清贷出错,未找到相应账单:" + business.BusinessID);; } }
private void button3_Click(object sender, EventArgs e) { string billId = "BI001"; int billPayment = 10; BillDTO billDTO = new BillDTO(billId, billPayment); string TableQuery = "insert into BILL values('" + billDTO.BillId + "','" + billDTO.BillPayment + "');"; BillDAL billDAL = new BillDAL(); billDAL.InsertBill(billDTO); }
/// <summary> /// 剩余利息 /// </summary> /// <param name="business"></param> /// <returns></returns> private decimal GetInter(Business business) { //月利息 decimal monthacoumt = business.LoanCapital * business.InterestRate; //剩余期数 int hadPeriod = BillDAL.GetNormalBills(business.Bills).Count; int qs = business.LoanPeriod - hadPeriod; //剩余总利息 decimal sum = monthacoumt * qs; return(sum); }
private void AddMessage() { if (MessageList.BillList.Count == 0) { BillDAL billDAL = new BillDAL(); var data = billDAL.FindList(1, 10); foreach (var item in data) { MessageList.BillList.Add(item); } } }
private void btnFood_Click(object sender, EventArgs e) { dtpFrom.Enabled = true; dtpTo.Enabled = true; btnFillter.Enabled = true; chartRevenue.DataSource = BillDAL.GetRevenueByFood(); chartRevenue.Series["Doanh Thu"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie; chartRevenue.Series["Doanh Thu"].YValueMembers = "Doanh Thu"; chartRevenue.Series["Doanh Thu"].YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.String; chartRevenue.Series["Doanh Thu"].XValueMember = "Tên Món"; chartRevenue.Series["Doanh Thu"].XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.String; }
/// <summary> /// 创建罚息科目(因逾期而产生的上期帐单罚息) /// 费用算法:一次性为上期帐单生成上月20日至今的罚息合计 /// </summary> /// <param name="business">订单对象</param> /// <returns>返回罚息款项</returns> public override BillItem CreatePunitiveInterest(DateTime limitTime, List <PenaltyInt> penaltyInts) { // 获取当期帐单,为NULL或已在第三次扣失日前全额付清则继续循环 var nbills = BillDAL.GetNormalBills(Business.Bills); var prevBill = nbills.FirstOrDefault(p => p.BillMonth == _PrevMonth); var curBill = nbills.FirstOrDefault(p => p.BillMonth == _CurMonth); // 判断是否存在原因帐单或当期帐单,不存在则返回NULL if (prevBill == null || curBill == null || Business.Bills.Count == 1 || (limitTime >= prevBill.FullPaidTime && prevBill.FullPaidTime != null)) { return(null); } // 获取本金、利息、管理费等参与科目,计算上期所欠本息或租金 var subjects = new List <byte> { (byte)EnumCostSubject.Capital, (byte)EnumCostSubject.Interest }; // 获取上期帐单的本息欠费 decimal debtsPrincipal = prevBill.BillItems.Where(p => subjects.Contains(p.Subject)) .Sum(s => s.DueAmt - s.ReceivedAmt); // 判断上期帐单是否存在未归还所欠本息或租金,无则不生成罚息 if (debtsPrincipal <= 0) { return(null); } var beginDay = DateTime.Now.AddMonths(-1).SetDay(21); // 在罚息表中计算罚息金额 CalculatPenaltyInt(penaltyInts, debtsPrincipal, prevBill.BillID, curBill.BillID, beginDay); // 当所欠本息大于零时,计算从上月21日至今天数的罚息 var totalDays = DateTime.Now - beginDay; debtsPrincipal = SubjectFormula.CalculatPunitiveInterest(debtsPrincipal, Business.PenaltyRate, totalDays.Days); // 判断欠费帐单是否存在未归还所欠本息或租金,无则不生成罚息 if (debtsPrincipal <= 0) { return(null); } // 创建罚息科目(科目名称、金额) return(CreateBillItem(EnumCostSubject.PunitiveInterest, debtsPrincipal, false, curBill.BillID)); }
private void btnBack_Click(object sender, EventArgs e) { if (dgvBillDetail.Columns.Count >= 5) { dgvBillDetail.Columns.RemoveAt(5); } dgvBillDetail.DataSource = ""; dgvBillDetail.DataSource = BillDAL.GetRevenueDetails(); DataGridViewButtonColumn btnViewColumn = new DataGridViewButtonColumn(); btnViewColumn.Name = "btnViewColumn"; btnViewColumn.HeaderText = "Chi Tiết Hóa Đơn"; btnViewColumn.UseColumnTextForButtonValue = true; btnViewColumn.Text = "Xem"; dgvBillDetail.Columns.Add(btnViewColumn); }
private void dgvBillDetail_CellClick(object sender, DataGridViewCellEventArgs e) { try { if (dgvBillDetail.Columns[e.ColumnIndex].Name == "btnViewColumn") { int id = (int)dgvBillDetail.Rows[e.RowIndex].Cells["Mã Hóa Đơn"].Value; dgvBillDetail.Columns.RemoveAt(e.ColumnIndex); dgvBillDetail.DataSource = ""; dgvBillDetail.DataSource = BillDAL.GetDetailsByBillId(id); } } catch (Exception ex) { } }
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { if (tabControl1.SelectedIndex == 1) { if (dgvBillDetail.Columns.Count >= 5) { dgvBillDetail.Columns.RemoveAt(5); } dgvBillDetail.DataSource = ""; btnBack.Enabled = true; dgvBillDetail.DataSource = BillDAL.GetRevenueDetails(); DataGridViewButtonColumn btnViewColumn = new DataGridViewButtonColumn(); btnViewColumn.Name = "btnViewColumn"; btnViewColumn.HeaderText = "Chi Tiết Hóa Đơn"; btnViewColumn.UseColumnTextForButtonValue = true; btnViewColumn.Text = "Xem"; dgvBillDetail.Columns.Add(btnViewColumn); } else { btnBack.Enabled = false; } }
/// <summary> /// 剩余本金 /// </summary> /// <param name="business"></param> /// <returns></returns> private decimal GetSum(Business business) { //未出帐本金 decimal wczlxamout = 0; //已出期数 string HadPeriod = business == null ? string.Empty : BillDAL.GetNormalBills(business.Bills).Count.ToString(); var product = ProductFactory.Instance.GetProduct(business); var subjectItems = product.GetBaseItemsByMonth(); //var dirItems = product.GetProductItems(); // 未到期的未收 var subjectItem = subjectItems.FirstOrDefault(p => p.Subject == (byte)EnumCostSubject.Capital); if (subjectItem != null && int.Parse(HadPeriod) < business.LoanPeriod && business.CLoanStatus == (byte)EnumCLoanStatus.Refunding) { wczlxamout = business.LoanCapital - (subjectItem.Amount * int.Parse(HadPeriod)); } return(wczlxamout); }
/// <summary> /// 创建扣失科目(因逾期而产生的本息扣失、服务费扣失) /// </summary> public override List <BillItem> CreateBuckleFail(DateTime limitTime) { List <BillItem> items = new List <BillItem>(); // 获取当期帐单 var curBill = BillDAL.GetNormalBills(Business.Bills).FirstOrDefault(p => p.BillMonth == _CurMonth); // 无当期帐单 或者 有全额支付时间且全额支付时间是在扣失日之前(包括当天)的则不生成扣失 if (curBill == null || (limitTime >= curBill.FullPaidTime && curBill.FullPaidTime != null)) { return(items); } // 判断当期帐单是否应生成本息扣失 List <byte> subjects = new List <byte> { (byte)EnumCostSubject.Capital, (byte)EnumCostSubject.Interest, (byte)EnumCostSubject.Manage }; if (IsCreateBuckleFail(subjects, curBill)) { items.Add(CreateBillItem(EnumCostSubject.InterestBuckleFail, Business.PrincipalPunish.Value, true, curBill.BillID)); } // 判断当期帐单是否应生成服务费担保费扣失 subjects = new List <byte> { (byte)EnumCostSubject.ServiceFee, (byte)EnumCostSubject.GuaranteeFee }; if (IsCreateBuckleFail(subjects, curBill)) { items.Add(CreateBillItem(EnumCostSubject.ServiceBuckleFail, Business.ServicePunish.Value, true, curBill.BillID)); } return(items); }
public List <Bill> GetListBillByUserID(int UserId) { return(BillDAL.GetListBillByUserId(UserId)); }
public BillBLL() { this.BillDAL = new BillDAL(); }
public static bool Delete() { bool status = BillDAL.Delete(4); return(status); }
/// <summary> /// 创建罚息科目 /// </summary> public override BillItem CreatePunitiveInterest(DateTime limitTime, List <PenaltyInt> penaltyInts) { // 获取当期帐单,为NULL或已在第三次扣失日前全额付清则继续循环 var nbills = BillDAL.GetNormalBills(Business.Bills); var prevBill = nbills.FirstOrDefault(p => p.BillMonth == _PrevMonth); var curBill = nbills.FirstOrDefault(p => p.BillMonth == _CurMonth); // 判断是否存在原因帐单或当期帐单,不存在则返回NULL if (prevBill == null || curBill == null || Business.Bills.Count == 1 || (limitTime >= prevBill.FullPaidTime && prevBill.FullPaidTime != null)) { return(null); } // 获取本金、利息或租金等参与科目,计算上期所欠本息或租金 var subjects = new List <byte> { (byte)EnumCostSubject.Capital, (byte)EnumCostSubject.Interest, (byte)EnumCostSubject.Rent }; // 是否为渤海订单, 渤海订单一次性生成一个月的罚息, 其他合同都按日罚息千分之一计算 bool isBoHai = Business.LendingSideKey.EndsWith(EnumCompanyKey.BHXT_LENDING.ToEnumName()); decimal debtsPrincipal = 0; if (isBoHai) { // 获取普通帐单的所欠本息 var bills = BillDAL.GetArrearsBills(Business.Bills, true); foreach (var bill in bills) { debtsPrincipal += bill.BillItems.Where(p => subjects.Contains(p.Subject) && !p.IsCurrent) .Sum(p => p.DueAmt - p.ReceivedAmt); } // 判断欠费帐单是否存在未归还所欠本息或租金,无则不生成罚息 if (debtsPrincipal <= 0) { return(null); } debtsPrincipal = SubjectFormula.CalculatPunitiveInterest(debtsPrincipal, 0.03m); } else { // 获取上期帐单的本息欠费 debtsPrincipal = prevBill.BillItems.Where(p => subjects.Contains(p.Subject)) .Sum(s => s.DueAmt - s.ReceivedAmt); // 判断上期帐单是否存在未归还所欠本息或租金,无则不生成罚息 if (debtsPrincipal <= 0) { return(null); } var beginDay = DateTime.Now.AddMonths(-1).SetDay(21); // 在罚息表中计算罚息金额 CalculatPenaltyInt(penaltyInts, debtsPrincipal, prevBill.BillID, curBill.BillID, beginDay); // 当所欠本息大于零时,计算从上月21日至今天数的罚息 var totalDays = DateTime.Now - beginDay; debtsPrincipal = SubjectFormula.CalculatPunitiveInterest(debtsPrincipal, Business.PenaltyRate, totalDays.Days); } // 创建罚息科目(科目名称、金额) return(CreateBillItem(EnumCostSubject.PunitiveInterest, debtsPrincipal, false, curBill.BillID)); }
/// <summary> /// 检索数据 /// </summary> /// <param name="filter"></param> /// <param name="responseEntity"></param> public void PayAccount(PayAccountFilter filter, ResponseEntity responseEntity) { if (filter == null) { ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.RequestCommandError); return; } string message = ""; string guid = Guid.NewGuid().ToString(); if (!string.IsNullOrEmpty(filter.JsonString)) { if (!BusinessHelper.JsonToReceivedItem(filter, guid)) { message = "错误,实收金额不允许大于应收金额!"; ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.Others, message); m_Logger.Info(message); return; } } if (filter.Amout > 0) { // 获取订单信息 Business business = BusinessHelper.GetBusinessInfo(filter); List <UpdateItem> lstUpdateItem = new List <UpdateItem>(); List <Received> lstReceived = new List <Received>(); // 根据不同订单清贷状态分别处理 if (business.CLoanStatus == (byte)EnumCLoanStatus.AdvanceProcess) { #region 提前清贷自动填帐 var bills = BillDAL.GetArrearsBills(business.Bills); var countAmout = bills.Sum(b => b.BillItems.Sum(i => i.DueAmt - i.ReceivedAmt)); // 提前清贷订单自定义付款金额必须大于等于提前清贷总额 if (filter.Amout < countAmout) { message = "抱歉,您的输入金额不足,提前清贷订单【欠费:" + countAmout + "】必须足额支付!"; ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.Others, message); m_Logger.Info(message); return; } AutoReceivedByCLoan(business, 0, filter, lstUpdateItem, lstReceived); // 插入临时表数据 BusinessHelper.SaveUpdateItemTempDataBase(guid, lstUpdateItem); BusinessHelper.SaveReceivedTempDataBase(guid, lstReceived); // 更新订单、帐单信息 filter.UpdateCloanApplyStatus = 1; filter.Guid = guid; Singleton <BusinessPayAccountDAL> .Instance.Update(filter); // 更新订单、帐单信息 //UpdateBusinessInfo(filter, responseEntity); //decimal losAmt = filter.Amout - countAmout; var result = new PayAccountResultViewData(); result.LostAmt = filter.Amout - countAmout; var responseResult = new ResponseListResult <PayAccountResultViewData>(); responseResult.TotalCount = 1; responseResult.LstResult = new List <PayAccountResultViewData>(); responseResult.LstResult.Add(result); responseEntity.Results = responseResult; responseEntity.ResponseStatus = (int)EnumResponseState.Success; return; #endregion } else if (business.CLoanStatus == (byte)EnumCLoanStatus.Refunding) { #region 普通账单自动填帐 VcreditProduct s = null; if (business.ProductType == 8) { s = new JingAnMortgageLoan(business); } else if (business.ProductType == 9) { s = new JingAnUnMortgageLoan(business); } else { s = new UnsecuredLoan(business); } //成都填充项判断 List <BillItem> list = s.GetFillItems(filter.Amout); if (list == null || list.Count < 1) { message = "金额不足,无法填充款项!"; ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.Others, message); m_Logger.Info(message); return; } decimal couAcmou = 0; //余额 foreach (var item in list) { decimal ssrmt = item.DueAmt - item.ReceivedAmt; couAcmou += ssrmt; item.ReceivedAmt = item.DueAmt; item.FullPaidTime = filter.Dectime; lstUpdateItem.Add(new UpdateItem { Id = item.BillItemID, Amount = item.DueAmt, FullPaidTime = filter.Dectime, Type = 3 }); //_FinanceFactory.CreateBillItemDAL().Update(item); //_FinanceContext.SaveChanges(); lstReceived.Add(new Received { BillID = item.BillID, BillItemID = item.BillItemID, Amount = ssrmt, CreateTime = DateTime.Now, OperatorID = filter.UserId, PayID = 0, ReceivedTime = filter.Dectime, ReceivedType = (byte)EnumAdjustKind.Transfer, DeductionID = 0, Explain = "" }); } // 插入临时表数据 BusinessHelper.SaveUpdateItemTempDataBase(guid, lstUpdateItem); BusinessHelper.SaveReceivedTempDataBase(guid, lstReceived); // 更新订单、帐单信息 filter.UpdateCloanApplyStatus = 0; filter.Guid = guid; Singleton <BusinessPayAccountDAL> .Instance.Update(filter); // 更新订单、帐单信息 //UpdateBusinessInfo(filter, responseEntity); //decimal losAmt = filter.Amout - couAcmou; var result = new PayAccountResultViewData(); result.LostAmt = filter.Amout - couAcmou; var responseResult = new ResponseListResult <PayAccountResultViewData>(); responseResult.TotalCount = 1; responseResult.LstResult = new List <PayAccountResultViewData>(); responseResult.LstResult.Add(result); responseEntity.Results = responseResult; responseEntity.ResponseStatus = (int)EnumResponseState.Success; //ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.Success); #endregion } else { message = "抱歉,当前的订单状态不允许手工扣款!"; ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.Others, message); m_Logger.Info(message); return; } } }
//huy public static DataTable LayDSHoaDon() { DataTable _ds = BillDAL.LayDSHoaDon(); return(_ds); }
public static bool XoaHDTheoSoHD(string SoHD) { bool kq = BillDAL.XoaHDTheoSoHD(SoHD); return(kq); }
public bool CreateBill(Bill bill) { return(BillDAL.CreateBill(bill)); }
public static void Update() { Bill bill = new Bill(4, DateTime.Parse("3-Oct-15"), 500.0000, 400.0000, 4); BillDAL.Update(bill); }
public static List <string> LayDSKHChuaThanhToan() { List <string> _ds = BillDAL.LayDSKHChuaThanhToan(); return(_ds); }
public static string LaySoHDTuMaKH(string maKH) { string soHD = BillDAL.LaySoHoaDonTuMaKH(maKH); return(soHD); }
public static Bill Get() { Bill bill = BillDAL.Get(2); return(bill);; }