Exemple #1
0
 public ResponseDocUpdate DocUpdate([FromBody] RequestDocUpdate request)
 {
     try
     {
         DocBLL bll = new DocBLL();
         return(bll.DocUpdate(request));
     }
     catch (Exception ex)
     {
         throw new HttpResponseException(
                   Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
     }
 }
Exemple #2
0
        public ResponseDocUpdate DocUpdate(RequestDocUpdate request)
        {
            ResponseDocUpdate response = new ResponseDocUpdate();

            using (cnn = GetConnection())
            {
                var        ts     = cnn.BeginTransaction();
                BalanceBLL balBLL = new BalanceBLL(cnn);
                try
                {
                    var user = this.UserInfoGet(request.Token, ts);

                    var doc = cnn.QueryFirst <TKS_FAS_Doc>("select * from TKS_FAS_Doc where id=@Id",
                                                           new { Id = request.Head.Id }, ts);
                    PeriodBLL period = new PeriodBLL(cnn);
                    bool      flag   = period.IsPeriodPaid(doc.PeriodId, ts);
                    if (flag)
                    {
                        throw new NormalException("该凭证已经期末结转,无法修改");
                    }

                    flag = period.IsHasPeriod(doc.PeriodId, ts);

                    if (!flag)
                    {
                        throw new NormalException("该凭证期间非激活状态,无法修改");
                    }
                    List <TKS_FAS_DocDetail> Detail = cnn.Query <TKS_FAS_DocDetail>("select *  from TKS_FAS_DocDetail where parentId=@ParentId", new { ParentId = request.Head.Id }, ts).ToList();

                    #region 先回滚余额表 Hero.Zhang
                    RequestDocAdd oldDoc = new RequestDocAdd();
                    oldDoc.Head   = doc;
                    oldDoc.Detail = Detail;
                    foreach (var det in oldDoc.Detail)
                    {
                        det.Money_Debit  = -1 * det.Money_Debit;
                        det.Money_Credit = -1 * det.Money_Credit;
                        det.Quantity     = -1 * det.Quantity;
                    }
                    balBLL.UpdateBalance(oldDoc, ts, user);
                    #endregion

                    string sql = @" delete from TKS_FAS_Doc where id=@Id";

                    cnn.Execute(sql, request.Head, ts);

                    sql = "delete from TKS_FAS_DocDetail where parentId=@ParentId";
                    cnn.Execute(sql, new { ParentId = request.Head.Id }, ts);


                    request.Head.Id     = request.Head.Id;
                    request.Head.Source = "LR";
                    var id = Add(new RequestDocAdd
                    {
                        Token  = request.Token,
                        Head   = request.Head,
                        Detail = request.Detail
                    }, ts, user);

                    #region 更新余额表 Hero.Zhang
                    RequestDocAdd docRequest = new RequestDocAdd();
                    docRequest.Head   = request.Head;
                    docRequest.Detail = request.Detail;
                    docRequest.Type   = request.Type;
                    docRequest.TPLId  = request.TPLId;
                    docRequest.Key    = request.Key;
                    balBLL.UpdateBalance(docRequest, ts, user);
                    #endregion
                    ts.Commit();

                    response.IsSuccess = true;
                    response.Id        = id;
                    response.Message   = "更新成功";



                    return(response);
                }
                catch (Exception ex)
                {
                    ts.Rollback();
                    return(this.DealException(response, ex) as ResponseDocUpdate);
                }
            }
        }