Example #1
0
        /// <summary>
        /// 扫描到耗材条码时
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bsCons_BarcodeScanned(object sender, BarcodeResultArgs e)
        {
            try
            {
                if (String.IsNullOrEmpty(e.error))
                {
                    String      cId = e.Value;
                    Consumables con = autofacConfig.consumablesService.GetConsById(cId);
                    if (con == null)
                    {
                        throw new Exception("不存在此耗材");
                    }
                    String[] locData = ((frmConInventoryResult)Form).locData;

                    ConInventoryResult result = autofacConfig.ConInventoryService.GetResultBySL(
                        ((frmConInventoryResult)Form).IID, e.Value,
                        locData[0], locData[1], locData[2]);
                    if (result == null)
                    {
                        throw new Exception("不存在该盘点行项");
                    }

                    lblName.Text   = con.NAME;
                    lblName.Tag    = con.CID;
                    lblNumber.Text = result.TOTAL.ToString();
                }
            }
            catch (Exception ex)
            {
                Toast(ex.Message);
            }
        }
Example #2
0
 /// <summary>
 /// 耗材扫描
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void barcodeScanner1_BarcodeScanned(object sender, BarcodeResultArgs e)
 {
     try
     {
         string CID  = e.Value.ToUpper();
         var    con  = _autofacConfig.consumablesService.GetConsById(CID);
         String STID = (lblST.Tag == null) ? null : lblST.Tag.ToString();
         String SLID = (lblSL.Tag == null) ? null : lblSL.Tag.ToString();
         if (con != null)
         {
             ConInventoryResult result = _autofacConfig.ConInventoryService.GetResultByCID(IID, CID);
             if (result != null)
             {
                 if (result.RESULT.ToString() != "0")
                 {
                     throw new Exception("该耗材已盘点完毕,请勿重复盘点!");
                 }
                 frmCIResultTotalLayout frm = new frmCIResultTotalLayout();
                 ConQuant conq = _autofacConfig.consumablesService.GetQuants(lblWareHouse.Tag.ToString(), STID, SLID, CID);
                 frm.lblNumber.Text = conq.QUANTITY.ToString();
                 frm.CID            = CID;
                 Form.ShowDialog(frm);
             }
             else        //盘盈
             {
                 frmCIResultTotalLayout frm = new frmCIResultTotalLayout();
                 ConQuant conq = _autofacConfig.consumablesService.GetQuants(lblWareHouse.Tag.ToString(), STID, SLID, CID);
                 frm.plNumber.Visible = false;
                 frm.Height           = 120;
                 frm.CID = CID;
                 Form.ShowDialog(frm);
             }
         }
         else
         {
             Toast("未找到对应的耗材!");
         }
     }
     catch (Exception ex)
     {
         Toast(ex.Message);
     }
 }
Example #3
0
        /// <summary>
        /// 开始盘点
        /// </summary>
        /// <param name="inputDto">开始盘点时,传给后台的数据</param>
        /// <returns></returns>
        public ReturnInfo AddConInventoryResult(AddCIResultInputDto inputDto)
        {
            ReturnInfo    RInfo = new ReturnInfo();
            StringBuilder sb    = new StringBuilder();

            if (IsExist(inputDto.IID))
            {
                RInfo.IsSuccess = true;
                RInfo.ErrorInfo = sb.ToString();
                return(RInfo);
            }
            else
            {
                try
                {
                    //更新盘点单状态为盘点中
                    var inventory = _conInventoryRepository.GetConInventoryByID(inputDto.IID).FirstOrDefault();
                    if (inventory != null)
                    {
                        //添加当前的盘点单行项
                        List <string> conList = _conQuantRepository.GetInventoryCons(inventory.LOCATIONID).Select(a => a.CID).ToList();
                        inventory.STATUS      = (int)InventoryStatus.盘点中;
                        inventory.TOTAL       = conList.Count;
                        inventory.RESULTCOUNT = 0;
                        _unitOfWork.RegisterDirty(inventory);

                        foreach (var con in conList)
                        {
                            ConQuant           conQuant = _conQuantRepository.GetByCID(con, inventory.LOCATIONID).FirstOrDefault();
                            ConInventoryResult result   = new ConInventoryResult
                            {
                                IID        = inputDto.IID,
                                CID        = con,
                                RESULT     = 0,
                                TOTAL      = conQuant.QUANTITY,
                                CREATEDATE = DateTime.Now,
                                CREATEUSER = inputDto.UserId,
                                MODIFYDATE = DateTime.Now,
                                MODIFYUSER = inputDto.UserId
                            };
                            _unitOfWork.RegisterNew(result);

                            //更新盘点的物品状态为锁定
                            var conq = _conQuantRepository.GetQuants(inputDto.LocationId, con).FirstOrDefault();
                            if (conq != null)
                            {
                                conq.ISLOCKED = 1;
                                _unitOfWork.RegisterDirty(conq);
                            }
                        }
                    }
                    _unitOfWork.Commit();
                    RInfo.IsSuccess = true;
                    RInfo.ErrorInfo = sb.ToString();
                    return(RInfo);
                }
                catch (Exception ex)
                {
                    _unitOfWork.Rollback();
                    sb.Append(ex.Message);
                    RInfo.IsSuccess = false;
                    RInfo.ErrorInfo = sb.ToString();
                    return(RInfo);
                }
            }
        }
Example #4
0
        /// <summary>
        /// 更新盘点单
        /// </summary>
        /// <param name="inputDto">盘点单信息</param>
        /// <returns></returns>
        public ReturnInfo UpdateInventory(ConInventoryInputDto inputDto)
        {
            ReturnInfo    rInfo     = new ReturnInfo();
            StringBuilder sb        = new StringBuilder();
            var           inventory = _conInventoryRepository.GetConInventoryByID(inputDto.IID).FirstOrDefault();

            if (inventory == null)
            {
                sb.Append("未找到该编号的盘点单.");
                rInfo.IsSuccess = false;
                rInfo.ErrorInfo = sb.ToString();
                return(rInfo);
            }
            else
            {
                if (inventory.STATUS == (int)InventoryStatus.盘点结束)
                {
                    sb.Append("该盘点单已经盘点结束.");
                    rInfo.IsSuccess = false;
                    rInfo.ErrorInfo = sb.ToString();
                    return(rInfo);
                }
                try
                {
                    List <string> assList = _conInventoryResultRepository.GetResultsByStatus(inputDto.IID, null).Select(a => a.CID).ToList();
                    int           count   = inputDto.ConDictionary.Count;
                    //更新盘点单结果行项
                    foreach (var key in inputDto.ConDictionary.Keys)
                    {
                        if (assList.Contains(key))
                        {
                            //更新
                            var inventoryresult = _conInventoryResultRepository.GetResultsByCID(inputDto.IID, key)
                                                  .FirstOrDefault();
                            if (inventoryresult != null)
                            {
                                inventoryresult.RESULT     = Convert.ToInt32(inputDto.ConDictionary[key][1]);
                                inventoryresult.REALAMOUNT = inputDto.ConDictionary[key][0];
                                if (inventoryresult.RESULT == (int)ResultStatus.待盘点)
                                {
                                    count--;
                                }
                            }

                            _unitOfWork.RegisterDirty(inventoryresult);
                        }
                        else
                        {
                            //添加
                            ConInventoryResult result = new ConInventoryResult
                            {
                                IID        = inputDto.IID,
                                CID        = key,
                                REALAMOUNT = inputDto.ConDictionary[key][0],
                                RESULT     = Convert.ToInt32(inputDto.ConDictionary[key][1]),
                                CREATEDATE = DateTime.Now,
                                MODIFYDATE = DateTime.Now,
                                CREATEUSER = inputDto.MODIFYUSER,
                                MODIFYUSER = inputDto.MODIFYUSER
                            };
                            _unitOfWork.RegisterNew(result);
                        }
                        if (inputDto.IsEnd)
                        {
                            //如果盘点结束,就更新资产状态为非锁定
                            var conqs = _conQuantRepository.GetQuants(inputDto.LOCATIONID, key).FirstOrDefault();
                            if (conqs != null)
                            {
                                conqs.ISLOCKED = 0;
                                _unitOfWork.RegisterDirty(conqs);
                            }

                            AssLocation loc = _assLocationRepository.GetByID(inputDto.LOCATIONID).FirstOrDefault();
                            if (loc != null)
                            {
                                loc.ISLOCKED = 0;
                                _unitOfWork.RegisterDirty(loc);
                            }
                        }
                    }
                    //如果盘点结束,就更新盘点单状态
                    inventory.MODIFYUSER  = inputDto.MODIFYUSER;
                    inventory.MODIFYDATE  = DateTime.Now;
                    inventory.RESULTCOUNT = count;
                    if (inputDto.IsEnd)
                    {
                        inventory.STATUS = (int)InventoryStatus.盘点结束;
                    }
                    _unitOfWork.RegisterDirty(inventory);

                    _unitOfWork.Commit();
                    rInfo.IsSuccess = true;
                    rInfo.ErrorInfo = sb.ToString();
                    return(rInfo);
                }
                catch (Exception ex)
                {
                    _unitOfWork.Rollback();
                    sb.Append(ex.Message);
                    rInfo.IsSuccess = false;
                    rInfo.ErrorInfo = sb.ToString();
                    return(rInfo);
                }
            }
        }
Example #5
0
        /// <summary>
        /// 更新盘点单
        /// </summary>
        /// <param name="inputDto">盘点单信息</param>
        /// <returns></returns>
        public ReturnInfo UpdateInventory(ConInventoryInputDto inputDto)
        {
            ReturnInfo    rInfo     = new ReturnInfo();
            StringBuilder sb        = new StringBuilder();
            var           inventory = _conInventoryRepository.GetConInventoryByID(inputDto.IID).FirstOrDefault();

            if (inventory == null)
            {
                sb.Append("未找到该编号的盘点单.");
                rInfo.IsSuccess = false;
                rInfo.ErrorInfo = sb.ToString();
                return(rInfo);
            }
            else
            {
                if (inventory.STATUS == (int)InventoryStatus.盘点结束)
                {
                    sb.Append("该盘点单已经盘点结束.");
                    rInfo.IsSuccess = false;
                    rInfo.ErrorInfo = sb.ToString();
                    return(rInfo);
                }
                try
                {
                    List <ConInventoryResult> resultList = _conInventoryResultRepository.GetResultsByStatus(inputDto.IID, null).ToList();
                    List <String>             keyList    = new List <string>();
                    if (resultList.Count > 0)
                    {
                        foreach (ConInventoryResult row in resultList)
                        {
                            keyList.Add(row.CID + "/" + row.WAREID + "/" + row.STID + "/" + row.SLID);
                        }
                    }
                    int count = inputDto.ConDictionary.Count;
                    //更新盘点单结果行项
                    foreach (var key in inputDto.ConDictionary.Keys)
                    {
                        if (keyList.Contains(key))
                        {
                            String[] keys = key.Split('/');
                            //更新
                            ConInventoryResult inventoryresult = _conInventoryResultRepository.GetResultBySL
                                                                     (inputDto.IID, keys[0], keys[1], keys[2], keys[3]).FirstOrDefault();
                            if (inventoryresult != null)
                            {
                                inventoryresult.RESULT     = Convert.ToInt32(inputDto.ConDictionary[key][1]);
                                inventoryresult.REALAMOUNT = inputDto.ConDictionary[key][0];
                                if (inventoryresult.RESULT == (int)ResultStatus.待盘点)
                                {
                                    count--;
                                }
                            }
                            _unitOfWork.RegisterDirty(inventoryresult);
                        }
                        else
                        {
                            //添加
                            ConInventoryResult result = new ConInventoryResult
                            {
                                IID        = inputDto.IID,
                                CID        = key.Split('/')[0],
                                WAREID     = key.Split('/')[1],
                                STID       = key.Split('/')[2],
                                SLID       = key.Split('/')[3],
                                REALAMOUNT = inputDto.ConDictionary[key][0],
                                RESULT     = Convert.ToInt32(inputDto.ConDictionary[key][1]),
                                CREATEDATE = DateTime.Now,
                                MODIFYDATE = DateTime.Now,
                                CREATEUSER = inputDto.MODIFYUSER,
                                MODIFYUSER = inputDto.MODIFYUSER
                            };
                            _unitOfWork.RegisterNew(result);
                        }
                        if (inputDto.IsEnd)
                        {
                            //如果盘点结束,就更新资产状态为非锁定
                            var conqs = _conQuantRepository.GetQuants(inputDto.WAREID, key).FirstOrDefault();
                            if (conqs != null)
                            {
                                conqs.ISLOCKED = 0;
                                _unitOfWork.RegisterDirty(conqs);
                            }
                        }
                    }
                    //如果盘点结束,就更新盘点单状态
                    inventory.MODIFYUSER  = inputDto.MODIFYUSER;
                    inventory.MODIFYDATE  = DateTime.Now;
                    inventory.RESULTCOUNT = count;
                    if (inputDto.IsEnd)
                    {
                        inventory.STATUS = (int)InventoryStatus.盘点结束;
                    }
                    _unitOfWork.RegisterDirty(inventory);

                    _unitOfWork.Commit();
                    rInfo.IsSuccess = true;
                    rInfo.ErrorInfo = sb.ToString();
                    return(rInfo);
                }
                catch (Exception ex)
                {
                    _unitOfWork.Rollback();
                    sb.Append(ex.Message);
                    rInfo.IsSuccess = false;
                    rInfo.ErrorInfo = sb.ToString();
                    return(rInfo);
                }
            }
        }