예제 #1
0
 /// <summary>
 /// 创建出库单
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnSave_Press(object sender, EventArgs e)
 {
     try
     {
         GetRows();
         int TId = int.Parse(TypeId);
         OutboundOrderInputDto outboundOrderInput = new OutboundOrderInputDto()
         {
             BUSINESSDATE = DPickerCO.Value,
             MODIFYUSER   = UserId,
             CREATEUSER   = UserId,
             HANDLEDATE   = DateTime.Now,
             LOCATIONID   = LocationId,
             NOTE         = txtNote.Text,
             HANDLEMAN    = HManId,
             RowInputDtos = rowsInputDtos,
             TYPE         = TId
         };
         ReturnInfo returnInfo = _autofacConfig.ConsumablesService.AddOutboundOrder(outboundOrderInput);
         if (returnInfo.IsSuccess)
         {
             ShowResult = ShowResult.Yes;
             Toast("添加成功");
             Close();
         }
         else
         {
             Toast(returnInfo.ErrorInfo);
         }
     }
     catch (Exception ex)
     {
         Toast(ex.Message);
     }
 }
예제 #2
0
        /// <summary>
        /// 添加出库单
        /// </summary>
        /// <param name="inputDto">出库单信息</param>
        /// <returns></returns>
        public ReturnInfo AddOutboundOrder(OutboundOrderInputDto inputDto)
        {
            ReturnInfo    rInfo = new ReturnInfo();
            StringBuilder sb    = new StringBuilder();
            string        maxId = _outboundOrderRepository.GetMaxId();
            string        OoId  = Helper.GenerateIDEx("OO", maxId);

            inputDto.OOID = OoId;
            sb.Append(Helper.BasicValidate(inputDto).ToString());
            if (sb.Length == 0)
            {
                var outbound = Mapper.Map <OutboundOrderInputDto, OutboundOrder>(inputDto);
                outbound.CREATEDATE = DateTime.Now;
                outbound.MODIFYDATE = DateTime.Now;
                try
                {
                    _unitOfWork.RegisterNew(outbound);

                    foreach (var rowInput in inputDto.RowInputDtos)
                    {
                        OutboundOrderRow row = new OutboundOrderRow
                        {
                            CID        = rowInput.CID,
                            MONEY      = rowInput.MONEY,
                            CREATEUSER = inputDto.CREATEUSER,
                            CREATEDATE = DateTime.Now,
                            MODIFYUSER = inputDto.MODIFYUSER,
                            MODIFYDATE = DateTime.Now,
                            NOTE       = rowInput.NOTE,
                            OOID       = OoId,
                            QUANTITY   = rowInput.QUANTITY
                        };
                        _unitOfWork.RegisterNew(row);

                        //修改库存
                        ConQuant quant = _conQuantRepository.GetQuants(inputDto.LOCATIONID, rowInput.CID)
                                         .FirstOrDefault();
                        if (quant != null)
                        {
                            quant.QUANTITY   = quant.QUANTITY - rowInput.QUANTITY;
                            quant.MODIFYDATE = DateTime.Now;
                            quant.MODIFYUSER = inputDto.MODIFYUSER;
                            _unitOfWork.RegisterDirty(quant);
                        }
                        //添加处理记录
                        var pr = new AssProcessRecord
                        {
                            ASSID          = "",
                            CID            = rowInput.CID,
                            CREATEDATE     = DateTime.Now,
                            CREATEUSER     = inputDto.CREATEUSER,
                            HANDLEDATE     = DateTime.Now,
                            HANDLEMAN      = inputDto.HANDLEMAN,
                            MODIFYDATE     = DateTime.Now,
                            MODIFYUSER     = inputDto.MODIFYUSER,
                            PROCESSCONTENT = inputDto.CREATEUSER + "出库了" + row.CID + ",数量为" + rowInput.QUANTITY,
                            PROCESSMODE    = (int)PROCESSMODE.出库,
                            QUANTITY       = rowInput.QUANTITY
                        };
                        _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);
            }
        }