/// <summary> /// 显示发票费用信息 /// </summary> /// <param name="invoiceCombNO"></param> /// <returns>成功 true 失败 false</returns> private bool FillBalanceLists(string invoiceCombNO) { comBalanceLists = outpatientManager.QueryBalanceListsByInvoiceSequence(invoiceCombNO); if (comBalanceLists == null) { return(false); } BalanceList balanceList = new BalanceList(); for (int i = 0; i < comBalanceLists.Count; i++) { balanceList = comBalanceLists[i] as BalanceList; if (i > 4) { this.fpSpread1_Sheet1.Rows.Add(i, 1); } this.fpSpread1_Sheet1.Cells[i, 0].Text = balanceList.FeeCodeStat.Name; this.fpSpread1_Sheet1.Cells[i, 1].Text = balanceList.BalanceBase.FT.OwnCost.ToString(); this.fpSpread1_Sheet1.Cells[i, 2].Text = balanceList.BalanceBase.FT.PayCost.ToString(); this.fpSpread1_Sheet1.Cells[i, 3].Text = balanceList.BalanceBase.FT.PubCost.ToString(); this.fpSpread1_Sheet1.Cells[i, 4].Text = (balanceList.BalanceBase.FT.OwnCost + balanceList.BalanceBase.FT.PayCost + balanceList.BalanceBase.FT.PubCost).ToString(); } return(true); }
public static async Task <BalanceList> BalanceAsync( Services.MasterData.IMasterData masterData, Databases.personal.PersonalDBContext db, string accountAccessToken, long playerId //playerIdの正当性は呼び出し元で保証してください ) { var balanceList = new BalanceList(); //////////////////////// // Coins var requester = new Multiplatform.Inky.GetAccountPlatinumBalance(); var response = await requester.GetAsync(accountAccessToken); if (response.StatusCode == System.Net.HttpStatusCode.OK) { var coinModel = new BalanceModel { type = Type.Coin, assetsId = "", amount = response.Payload.data.total_platinum, }; balanceList.Add(coinModel); } //////////////////////// // Assets var query = db.AssetsInventories.Where(a => a.playerId == playerId ); var inventorySrc = await query.ToListAsync(); inventorySrc.ForEach( a => balanceList.Add(new BalanceModel { type = Type.Assets, assetsId = a.assetsId, amount = a.amount, }) ); return(balanceList); }
/// <summary> /// 生成结算明细信息集合 /// </summary> /// <param name="invoiceNO">发票号</param> /// <param name="operTime">操作时间</param> /// <param name="balanceNO">结算序号</param> /// <param name="list">明细结合</param> /// <param name="errText">错误信息</param> /// <returns>成功: 承载BalanceList的范型集合 失败 null</returns> protected ArrayList MakeBalanceListFromFeeItemList(string invoiceNO, DateTime operTime, int balanceNO, ArrayList list, ref string errText) { ArrayList balanceLists = new ArrayList(); dsInvoice = new DataSet(); if (this.feeIntegrate.GetInvoiceClass("ZY01", ref dsInvoice) == -1) { errText = "获得发票信息出错!" + this.feeIntegrate.Err; return(null); } dsInvoice.Tables[0].PrimaryKey = new DataColumn[] { dsInvoice.Tables[0].Columns["FEE_CODE"] }; foreach (FeeItemList f in list) { DataRow rowFind = dsInvoice.Tables[0].Rows.Find(new object[] { f.Item.MinFee.ID }); if (rowFind == null) { errText = "初始化发票失败,请维护发票对照中最小费用为" + f.Item.MinFee.Name + "的发票项目"; //"最小费用为" + f.Item.MinFee.ID + "的最小费用没有在MZ01的发票大类中维护"; return(null); } rowFind["TOT_COST"] = NConvert.ToDecimal(rowFind["TOT_COST"].ToString()) + f.FT.OwnCost; rowFind["OWN_COST"] = NConvert.ToDecimal(rowFind["OWN_COST"].ToString()) + f.FT.OwnCost; rowFind["PAY_COST"] = NConvert.ToDecimal(rowFind["PAY_COST"].ToString()) + 0; rowFind["PUB_COST"] = NConvert.ToDecimal(rowFind["PUB_COST"].ToString()) + 0; } BalanceList balanceList = null; for (int i = 1; i < 100; i++) { //找到相同打印序号,即同一统计类别的费用集合 DataRow[] rowFind = dsInvoice.Tables[0].Select("SEQ = " + i.ToString(), "SEQ ASC"); //如果没有找到说明已经找过了最大的打印序号,所有费用已经累加完毕. if (rowFind.Length == 0) { } else { balanceList = new BalanceList(); foreach (DataRow row in rowFind) { balanceList.BalanceBase.FT.PubCost += NConvert.ToDecimal(row["PUB_COST"].ToString()); balanceList.BalanceBase.FT.OwnCost += NConvert.ToDecimal(row["OWN_COST"].ToString()); balanceList.BalanceBase.FT.PayCost += NConvert.ToDecimal(row["PAY_COST"].ToString()); } balanceList.BalanceBase.FT.TotCost = balanceList.BalanceBase.FT.OwnCost + balanceList.BalanceBase.FT.PayCost + balanceList.BalanceBase.FT.PubCost; if (balanceList.BalanceBase.FT.TotCost <= 0) { continue; } balanceList.BalanceBase.Invoice.ID = invoiceNO; balanceList.BalanceBase.TransType = Neusoft.HISFC.Models.Base.TransTypes.Positive; balanceList.FeeCodeStat.StatCate.ID = rowFind[0]["FEE_STAT_CATE"].ToString(); balanceList.FeeCodeStat.StatCate.Name = rowFind[0]["FEE_STAT_NAME"].ToString(); balanceList.FeeCodeStat.SortID = i; balanceList.BalanceBase.BalanceOper.ID = this.inpatientManager.Operator.ID; balanceList.BalanceBase.BalanceOper.OperTime = operTime; balanceList.BalanceBase.BalanceType.ID = Neusoft.HISFC.Models.Fee.EnumBalanceType.D; balanceList.BalanceBase.BalanceOper.Dept.ID = ((Neusoft.HISFC.Models.Base.Employee) this.inpatientManager.Operator).Dept.ID; balanceList.BalanceBase.ID = balanceNO.ToString(); balanceLists.Add(balanceList); } } return(balanceLists); }