Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        /// <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);
        }