Example #1
0
        /// <summary>
        /// 补录情况
        /// </summary>
        /// <param name="para"></param>
        private static void TotalUp2_BuLu(AssetM para)
        {
            // 查询最后更新资产日期
            DateTimeOffset lastUpDay = AssetDal.GetLastUpDay();

            // 表里没有有效更新数据,这种情况也不更新总值.
            if (lastUpDay == default)
            {
                para.ErrorCode = 302;
                para.ErrorMsg  = "没有任何更新记录,不可更新总值!";
                return;
            }
            // 如果日期不是今天,(也就是今天没有更新过资产).再查询这个日期的总值记录,
            // 如果没有记录,那么补录(总值日期为这天).
            // 如果有记录,那么不可以更新.
            int lastday = int.Parse(lastUpDay.ToString("yyyyMMdd"));

            if (lastday < int.Parse(DateTimeOffset.Now.ToString("yyyyMMdd")))
            {
                AssetM totalByDay = TotalDayDal.GetLastValue(lastday);
                if (totalByDay == null)
                {
                    // 补录
                    AssetM totalVal = ValueTotal();
                    if (totalVal.ErrorCode != 200)
                    {
                        para.ErrorCode = 304;
                        para.ErrorMsg  = "补录失败,获取总值出错!";
                        return;
                    }
                    para.Id        = RandHelp.NewGuid();
                    para.Value     = totalVal.Value;
                    para.Ctime     = DateTimeOffset.Now;
                    para.TotalDate = lastday;
                    TotalDayDal.UpdateVal(para);
                    if (para.ErrorCode == 200)
                    {
                        para.ErrorCode = 201;
                        para.ErrorMsg  = "补录成功!";
                    }
                }
                else
                {
                    para.ErrorCode = 303;
                    para.ErrorMsg  = "今天没更新资产,不可更新总值!";
                }
            }
            //
        }
Example #2
0
        /// <summary>
        /// ItemCode值标识同一个资产的更新周期,从首次添加起到清仓止,首次添加资产时生成.
        /// 以后更新这个资产时会传来资产Id,据此查得ItemCode值.
        /// 举例说明:510300这个资产,在第一次添加时生成ItemCode "xxx",后续更新资产时,
        /// 此值都是"xxx",一直到清仓都是.
        /// 假如下一次又添加510300时,会生成新的ItemCode "xxx2".
        /// </summary>
        /// <param name="data"></param>
        private static bool AssetItemCode(AssetM data)
        {
            if (string.IsNullOrWhiteSpace(data.Id))
            {
                data.ItemCode = RandHelp.NewGuid();
                return(true);
            }
            string    sql      = "SELECT itemCode FROM Asset WHERE Id=@Id";
            SQLServer db       = new SQLServer();
            object    itemcode = db.ExecuteScalar(sql, data.Id, 1);

            if (itemcode == null || string.IsNullOrWhiteSpace(itemcode.ToString()))
            {
                return(false);
            }
            data.ItemCode = itemcode.ToString();
            return(true);
        }
Example #3
0
        /// <summary>
        /// 新增资产 资产id设置在para.id,成功返回true,失败返回false
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public static void Add(AssetM para)
        {
            if (FormCheck(para) == false)
            {
                return;
            }
            //
            para.Id     = RandHelp.NewGuid();
            para.Ctime  = DateTime.Now;
            para.Status = 1;
            //
            string    sql = "INSERT INTO Asset(id,title,code,amount,value,positions,price,risk,remark,profit,excorg,kind,valuedate,expdate,rate,action,ctime,itemCode,status)";
            SQLServer db  = new SQLServer();
            int       re  = db.Insert <AssetM>(sql, para);

            if (re == 1)
            {
                para.ErrorCode = 200;
            }
        }
Example #4
0
        /// <summary>
        /// 更新总资产数据表
        /// </summary>
        /// <returns></returns>
        public static AssetM TotalUp()
        {
            AssetM m = new AssetM();

            // 1.过时检查
            TotalUp1_LastTime(m);
            if (m.ErrorCode > 300)
            {
                return(m);
            }
            // 2.补录情况
            TotalUp2_BuLu(m);
            if (m.ErrorCode > 300)
            {
                return(m);
            }
            // 2.1补录成功情况
            if (m.ErrorCode == 201)
            {
                return(m);
            }
            // 写入数据
            AssetM totalVal = ValueTotal();

            if (totalVal.ErrorCode != ErrCode.Success)
            {
                m.ErrorCode = 306;
                m.ErrorMsg  = "更新失败,获取总值出错!";
                return(m);
            }
            m.Id        = RandHelp.NewGuid();
            m.Value     = totalVal.Value;
            m.Ctime     = DateTimeOffset.Now;
            m.TotalDate = int.Parse(DateTimeOffset.Now.ToString("yyyyMMdd"));
            TotalDayDal.UpdateVal(m);
            return(m);
        }
Example #5
0
 /// <summary>
 /// 生成新code 8位
 /// </summary>
 /// <returns></returns>
 public static string NewCode()
 {
     return(RandHelp.NewPassWord(8, 24));
 }