예제 #1
0
 /// <summary>
 /// 添加退库单
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnConfirm_Press(object sender, EventArgs e)
 {
     try
     {
         AssRestoreOrderInputDto assRestoreOrder = new AssRestoreOrderInputDto()
         {
             AssIds      = AssIdList,
             RESTOREDATE = DPickerRs.Value,
             RESTORER    = RtoManId,
             HANDLEMAN   = HManId,
             CREATEUSER  = UserId,
             PLACE       = txtPlace.Text,
             LOCATIONID  = LocationId,
             MODIFYUSER  = UserId,
             NOTE        = txtNote.Text
         };
         ReturnInfo returnInfo = _autofacConfig.AssetsService.AddAssRestoreOrder(assRestoreOrder);
         if (returnInfo.IsSuccess)
         {
             ShowResult = ShowResult.Yes;
             Toast("添加成功");
             Close();
         }
         else
         {
             Toast(returnInfo.ErrorInfo);
         }
     }
     catch (Exception ex)
     {
         Toast(ex.Message);
     }
 }
예제 #2
0
        /// <summary>
        /// 添加退库单
        /// </summary>
        /// <param name="restoreOrderInput">退库单信息</param>
        /// <returns></returns>
        public ReturnInfo AddAssRestoreOrder(AssRestoreOrderInputDto restoreOrderInput)
        {
            //验证
            ReturnInfo rInfo = new ReturnInfo();
            StringBuilder sb = new StringBuilder();
            string maxId = _assRestoreOrderRepository.GetMaxID();
            string rsoId = Helper.GenerateIDEx("RS", maxId);
            restoreOrderInput.RSOID = rsoId;
            sb.Append(Helper.BasicValidate(restoreOrderInput).ToString());
            if (sb.Length == 0)
            {
                var assrso = Mapper.Map<AssRestoreOrderInputDto, AssRestoreOrder>(restoreOrderInput);
                assrso.CREATEDATE = DateTime.Now;
                assrso.MODIFYDATE = DateTime.Now;
                try
                {
                    _unitOfWork.RegisterNew(assrso);

                    foreach (var assId in restoreOrderInput.AssIds)
                    {
                        //修改Asset的状态
                        Assets assets = _assetsRepository.GetByID(assId).FirstOrDefault();
                        if (assets != null)
                        {
                            assets.STATUS = (int)STATUS.闲置;
                            assets.CURRENTUSER = "";
                            _unitOfWork.RegisterDirty(assets);
                        }
                        //添加行项
                        var corow = new AssRestoreOrderRow
                        {
                            ASSID = assId,
                            RSOID = rsoId,
                            CREATEDATE = DateTime.Now,
                            CREATEUSER = restoreOrderInput.CREATEUSER,
                            MODIFYDATE = DateTime.Now,
                            MODIFYUSER = restoreOrderInput.MODIFYUSER
                        };
                        _unitOfWork.RegisterNew(corow);

                        //添加处理记录
                        var pr = new AssProcessRecord
                        {
                            ASSID = assId,
                            CREATEDATE = DateTime.Now,
                            CREATEUSER = restoreOrderInput.CREATEUSER,
                            HANDLEDATE = DateTime.Now,
                            HANDLEMAN = restoreOrderInput.HANDLEMAN,
                            MODIFYDATE = DateTime.Now,
                            MODIFYUSER = restoreOrderInput.MODIFYUSER,
                            PROCESSCONTENT = restoreOrderInput.HANDLEMAN + "退库了" + assId,
                            PROCESSMODE = (int)PROCESSMODE.退库,
                            QUANTITY = 1
                        };
                        _unitOfWork.RegisterNew(pr);
                    }
                    bool result = _unitOfWork.Commit();
                    rInfo.IsSuccess = result;
                    rInfo.ErrorInfo = sb.ToString();
                    return rInfo;
                }
                catch (Exception ex)
                {
                    _unitOfWork.Rollback();
                    sb.Append(ex.Message);
                    rInfo.IsSuccess = false;
                    rInfo.ErrorInfo = sb.ToString();
                    return rInfo;
                }
            }
            else
            {
                rInfo.IsSuccess = false;
                rInfo.ErrorInfo = sb.ToString();
                return rInfo;
            }
        }