class="code">
public string adddata_collect_shoufu(MODEL.M_data_collect M_data_collect, SqlConnection conn, SqlTransaction transaction) { StringBuilder result = new StringBuilder(""); DataTable dtfact = sqlhelp.getresult("select * from data_shoufu_fact where data_id = " + M_data_collect.Data_id + " order by id desc", conn, transaction).Tables[0]; DataTable dtcontract = sqlhelp.getresult("select * from data_shoufu_contract where data_id = " + M_data_collect.Data_id + " order by promise_date", conn, transaction).Tables[0]; MODEL.M_data_detail M_data_detail = B_data_detail.GetDataCreditInfo(M_data_collect.Data_id, conn, transaction); MODEL.M_data_shoufu_fact M_data_shoufu_fact = new M_data_shoufu_fact(); M_data_shoufu_fact.Data_id = M_data_collect.Data_id; M_data_shoufu_fact.Fact_date = M_data_collect.Fact_date; M_data_shoufu_fact.Fact_money = M_data_collect.Fact_money; M_data_shoufu_fact.Collect_id = M_data_collect.Id; M_data_shoufu_fact.Remark = M_data_collect.Remark; M_data_shoufu_fact.Createtime = DateTime.Now; M_data_shoufu_fact.Updatetime = DateTime.Now; M_data_shoufu_fact.Createuser = M_data_collect.Createuser; if (dtfact.Rows.Count == 0) { result.Append(addfact(dtcontract, M_data_shoufu_fact, conn, transaction)); } else { float left_debt = float.Parse(dtfact.Rows[0]["left_debt"].ToString()); int shoufu_id = Convert.ToInt32(dtfact.Rows[0]["shoufu_id"].ToString()); if (left_debt == 0) { DataTable dtcontractsurplus = new DataTable(); dtcontractsurplus = dtcontract.Clone(); DataRow[] drs = dtcontract.Select("id>" + shoufu_id + ""); for (int k = 0; k < drs.Length; k++) { dtcontractsurplus.ImportRow((DataRow)drs[k]); } result.Append(addfact(dtcontractsurplus, M_data_shoufu_fact, conn, transaction)); } else { if (M_data_shoufu_fact.Fact_money < left_debt) { M_data_shoufu_fact.Shoufu_id = shoufu_id; M_data_shoufu_fact.Left_debt = left_debt - M_data_shoufu_fact.Fact_money; //DateTime promise_date = DateTime.Parse(dtfact.Rows[0]["fact_date"].ToString()); DateTime promise_date = DateTime.Parse((dtcontract.Select(" id=" + shoufu_id + ""))[0]["promise_date"].ToString()); if (M_data_shoufu_fact.Fact_date > promise_date) { //M_data_shoufu_fact.Late_punitive = M_data_shoufu_fact.Fact_date.Subtract(promise_date).Days * left_debt / 10000 * 3; //M_data_shoufu_fact.Late_punitive = M_data_shoufu_fact.Fact_date.Subtract(promise_date).Days * M_data_shoufu_fact.Fact_money / 10000 * 3; M_data_shoufu_fact.Late_punitive = commenBLL.GetPunitive(promise_date, M_data_shoufu_fact.Fact_date, M_data_shoufu_fact.Fact_money); } else { M_data_shoufu_fact.Late_punitive = 0; } D_data_excel.adddata_shoufu_fact(M_data_shoufu_fact, conn, transaction); } else { MODEL.M_data_shoufu_fact M_data_shoufu_fact1 = new M_data_shoufu_fact(); M_data_shoufu_fact1.Data_id = M_data_shoufu_fact.Data_id; M_data_shoufu_fact1.Shoufu_id = shoufu_id; M_data_shoufu_fact1.Collect_id = M_data_shoufu_fact.Collect_id; M_data_shoufu_fact1.Left_debt = 0; M_data_shoufu_fact1.Fact_date = M_data_shoufu_fact.Fact_date; M_data_shoufu_fact1.Fact_money = left_debt; M_data_shoufu_fact1.Createtime = M_data_shoufu_fact.Createtime; M_data_shoufu_fact1.Updatetime = M_data_shoufu_fact.Updatetime; M_data_shoufu_fact1.Createuser = M_data_shoufu_fact.Createuser; M_data_shoufu_fact1.Remark = M_data_shoufu_fact.Remark; //DateTime promise_date = DateTime.Parse(dtfact.Rows[0]["fact_date"].ToString()); DateTime promise_date = DateTime.Parse((dtcontract.Select(" id=" + shoufu_id + ""))[0]["promise_date"].ToString()); if (M_data_shoufu_fact1.Fact_date > promise_date) { //M_data_shoufu_fact1.Late_punitive = M_data_shoufu_fact1.Fact_date.Subtract(promise_date).Days * M_data_shoufu_fact1.Fact_money / 10000 * 3; //M_data_shoufu_fact1.Late_punitive = M_data_shoufu_fact1.Fact_date.Subtract(promise_date).Days * M_data_shoufu_fact1.Fact_money / 10000 * 3; M_data_shoufu_fact1.Late_punitive = commenBLL.GetPunitive(promise_date, M_data_shoufu_fact.Fact_date, M_data_shoufu_fact.Fact_money); } else { M_data_shoufu_fact1.Late_punitive = 0; } D_data_excel.adddata_shoufu_fact(M_data_shoufu_fact1, conn, transaction); M_data_shoufu_fact.Fact_money -= left_debt; DataTable dtcontractsurplus = new DataTable(); dtcontractsurplus = dtcontract.Clone(); DataRow[] drs = dtcontract.Select("id>" + shoufu_id + ""); for (int k = 0; k < drs.Length; k++) { dtcontractsurplus.ImportRow((DataRow)drs[k]); } result.Append(addfact(dtcontractsurplus, M_data_shoufu_fact, conn, transaction)); } } } M_data_detail.Createtime = DateTime.Now; M_data_detail.Total_shoufu_leftmoney = D_data.GetTotalShoufuLeftMoney(M_data_collect.Data_id, conn, transaction); M_data_detail.Left_debt = M_data_detail.Total_shoufu_leftmoney + M_data_detail.Total_com_leftmoney; M_data_detail.Total_leftmoney = M_data_detail.Left_debt + M_data_detail.Bank_left_debt + M_data_detail.Com_left_debt; M_data_detail.ChangeStatus = B_data_detail.ChangeMoneyStatus(M_data_detail.ChangeStatus, "total_shoufu_leftmoney"); M_data_detail.ChangeStatus = B_data_detail.ChangeMoneyStatus(M_data_detail.ChangeStatus, "left_debt"); M_data_detail.ChangeStatus = B_data_detail.ChangeMoneyStatus(M_data_detail.ChangeStatus, "total_leftmoney"); D_data_detail.AddDataDetail(M_data_detail, conn, transaction); DataTable dtfactnew = sqlhelp.getresult("select * from data_shoufu_fact where data_id = " + M_data_collect.Data_id + "", conn, transaction).Tables[0]; float moneyresult = B_data.updashou_fact(dtfactnew, M_data_collect.Late_Punitive, conn, transaction); if (moneyresult > 0) { result.Append("罚息金额大于需要还的罚息金额,收款失败!"); } return result.ToString(); }
private DataTable ExcelToDataTableFirstRowAsHeader(HSSFSheet sheet, HSSFFormulaEvaluator evaluator) { using (DataTable dt = new DataTable()) { HSSFRow firstRow = sheet.GetRow(0) as HSSFRow; int cellCount = GetCellCount(sheet); for (int i = 0; i < cellCount; i++) { if (firstRow.GetCell(i) != null) { dt.Columns.Add(firstRow.GetCell(i).StringCellValue ?? string.Format("F{0}", i + 1), typeof(string)); } else { dt.Columns.Add(string.Format("F{0}", i + 1).Trim(), typeof(string)); } } for (int i = 1; i <= sheet.LastRowNum; i++) { HSSFRow row = sheet.GetRow(i) as HSSFRow; DataRow dr = dt.NewRow(); FillDataRowByHSSFRow(row, evaluator, ref dr); dt.Rows.Add(dr); } dt.TableName = sheet.SheetName; return dt; } }