Example #1
0
        public bool UndoDiscardSlip(DiscardSlip DiscardSlip)
        {
            int    API   = 9;
            string token = HttpContext.Current.Request.Headers.Get("token");

            if (Models.UniversalModels.User.IsValidToken(token))
            {
                User CurrentUser = Models.UniversalModels.User.GetUserByToken(token);

                if (Models.UniversalModels.User.IsContainsCurrentAPIPermission(CurrentUser.UserID, API))
                {
                    Log log = new Log(API, CurrentUser);
                    log.Add(token + "|" + nameof(DiscardSlip) + ":" + JsonConvert.SerializeObject(DiscardSlip));

                    try
                    {
                        bool s = new GageServiceImpl().UndoDiscardSlip(DiscardSlip);
                        return(s);
                    }
                    catch (Exception ex)
                    {
                        log.Add("Exception:" + ex.Message + "|" + ex.StackTrace);
                        return(false);
                    }
                }
            }
            throw new HttpResponseException(HttpStatusCode.Forbidden);
        }//9
        public virtual bool AddDiscardSlip(DiscardSlip discardSlip, User CurrentUser)
        {
            using (SqlConnection conn = new SqlConnection(Common.SQLHelper.Asset_strConn))
            {
                conn.Open();
                SqlTransaction sqlTransaction = conn.BeginTransaction();
                try
                {
                    Asset asset = Asset.GetBy(discardSlip.AssetID);

                    if (asset == null)
                    {
                        throw new Exception("资产不存在");
                    }
                    if (asset.Status.Contains("报废"))
                    {
                        throw new Exception("资产处于报废状态");
                    }
                    if (asset.Status != "在库")
                    {
                        throw new Exception("资产未处于在库状态");
                    }


                    discardSlip.AssetName      = asset.AssetName;
                    discardSlip.AssetCategory  = asset.AssetCategory;
                    discardSlip.DiscardDate    = DateTime.Now;
                    discardSlip.TransactorName = CurrentUser.Name;
                    discardSlip.Add();

                    asset.Status = asset.AddStatus("报废");

                    asset.sqlTransaction = discardSlip.sqlTransaction = sqlTransaction;
                    asset.Update();

                    sqlTransaction.Commit();
                    return(true);
                }
                catch
                {
                    sqlTransaction.Rollback();
                    throw;
                }
            }
        }
        public virtual bool UndoDiscardSlip(DiscardSlip paras)
        {
            using (SqlConnection conn = new SqlConnection(Common.SQLHelper.Asset_strConn))
            {
                conn.Open();
                SqlTransaction sqlTransaction = conn.BeginTransaction();
                try
                {
                    DiscardSlip discardSlip = DiscardSlip.GetBy(paras.ID);

                    Asset asset = Asset.GetBy(discardSlip.AssetID);
                    if (asset == null)
                    {
                        throw new Exception("资产不存在");
                    }
                    if (asset.Status != "报废")
                    {
                        throw new Exception("资产未被报废");
                    }


                    asset.RemoveStatus("报废");
                    asset.RefreshPosition();

                    asset.sqlTransaction = discardSlip.sqlTransaction = sqlTransaction;
                    asset.Update();
                    discardSlip.Delete();
                    sqlTransaction.Commit();
                    return(true);
                }
                catch
                {
                    sqlTransaction.Rollback();
                    throw;
                }
            }
        }
 public virtual IEnumerable <DiscardSlip> GetDiscardSlipsOf(string AssetID)
 {
     return(DiscardSlip.GetBy(AssetID));
 }