Beispiel #1
0
 /// <summary>
 /// 获取行项数据
 /// </summary>
 /// <returns></returns>
 public AssTransferOrderRow getData()
 {
     if (Check.Checked)
     {
         AssTransferOrderRow Data = new AssTransferOrderRow();
         Data.TOROWID = Check.BindDataValue.ToString();
         Data.IMAGE   = imgAss.BindDisplayValue.ToString();
         Data.ASSID   = lblName.BindDataValue.ToString();
         Data.SN      = lblSN.BindDataValue.ToString();
         if (((frmAssTransferDeal)Form).Type == PROCESSMODE.调拨确认)
         {
             Data.TRANSFEREDQTY = 1;
             Data.STATUS        = 1;
         }
         else
         {
             Data.TRANSFERCANCELQTY = 1;
             Data.STATUS            = 2;
         }
         return(Data);
     }
     else
     {
         return(null);
     }
 }
Beispiel #2
0
 /// <summary>
 /// 得到选中行数据
 /// </summary>
 public AssTransferOrderRow getData()
 {
     if (Check.Checked == true)
     {
         if (numNumber.Value > Convert.ToDouble(lblNumber.BindDataValue))
         {
             if (((frmTransferDeal)Form).Type == PROCESSMODE.调拨确认)
             {
                 throw new Exception("确认数量不能超过调拨数量!");
             }
             else
             {
                 throw new Exception("取消数量不能超过调拨数量!");
             }
         }
         AssTransferOrderRow Data = new AssTransferOrderRow();
         Data.TOROWID = Check.BindDataValue.ToString();
         Data.IMAGE   = imgAss.BindDisplayValue.ToString();
         Data.CID     = lblName.BindDataValue.ToString();
         if (((frmTransferDeal)Form).Type == PROCESSMODE.调拨确认)
         {
             if (numNumber.Value == 0 || (decimal)numNumber.Value == Convert.ToDecimal(lblNumber.BindDataValue))
             {
                 Data.STATUS        = 1;
                 Data.TRANSFEREDQTY = Convert.ToDecimal(lblNumber.BindDataValue);
             }
             else
             {
                 Data.TRANSFEREDQTY = Convert.ToDecimal(numNumber.Value);
                 Data.STATUS        = 0;
             }
         }
         else
         {
             if (numNumber.Value == 0 || (decimal)numNumber.Value == Convert.ToDecimal(lblNumber.BindDataValue))
             {
                 Data.STATUS            = 2;
                 Data.TRANSFERCANCELQTY = Convert.ToDecimal(lblNumber.BindDataValue);
             }
             else
             {
                 Data.TRANSFERCANCELQTY = Convert.ToDecimal(numNumber.Value);
                 Data.STATUS            = 0;
             }
         }
         Data.SLID = lblLocation.BindDataValue.ToString();
         return(Data);
     }
     else
     {
         return(null);
     }
 }
Beispiel #3
0
        public String CID;                                                            //耗材编号
        #endregion
        /// <summary>
        /// 创建调拨单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Press(object sender, EventArgs e)
        {
            try
            {
                if (btnDealInMan.Tag == null)
                {
                    throw new Exception("调入管理员不能为空");
                }
                else
                {
                    TransferData.MANAGER = btnDealInMan.Tag.ToString();     //调入管理员
                }
                if (btnLocation.Tag == null)
                {
                    throw new Exception("调入区域不能为空");
                }
                else
                {
                    TransferData.DESLOCATIONID = btnLocation.Tag.ToString();     //调入区域
                }
                if (btnDealMan.Tag == null)
                {
                    throw new Exception("处理人不能为空");
                }
                else
                {
                    TransferData.HANDLEMAN = btnDealMan.Tag.ToString();          //处理人
                }
                TransferData.TRANSFERDATE = DatePicker.Value;                    //维修花费
                TransferData.NOTE         = txtNote.Text;                        //备注
                TransferData.STATUS       = 0;                                   //维修单状态
                TransferData.CREATEUSER   = Client.Session["UserID"].ToString(); //创建用户
                TransferData.CREATEDATE   = DateTime.Now;

                List <AssTransferOrderRow> Data = new List <AssTransferOrderRow>();
                if (ListAssets.Rows.Count == 0)
                {
                    throw new Exception("调拨行项不能为空!");
                }
                foreach (ListViewRow Row in ListAssets.Rows)
                {
                    frmOrderCreateLayout Layout  = Row.Control as frmOrderCreateLayout;
                    ConsumablesOrderRow  RowData = Layout.getData();
                    AssTransferOrderRow  assRow  = new AssTransferOrderRow();

                    assRow.IMAGE         = RowData.IMAGE;
                    assRow.CID           = RowData.CID;
                    assRow.INTRANSFERQTY = RowData.QTY;
                    assRow.LOCATIONID    = RowData.LOCATIONID;
                    assRow.STATUS        = RowData.STATUS;
                    assRow.CREATEDATE    = DateTime.Now;
                    Data.Add(assRow);
                }
                TransferData.Rows = Data;
                ReturnInfo r = autofacConfig.assTransferOrderService.AddAssTransferOrder(TransferData, OperateType.耗材);
                if (r.IsSuccess)
                {
                    ShowResult = ShowResult.Yes;
                    Form.Close();          //创建成功
                    Toast("创建调拨单成功!");
                }
                else
                {
                    throw new Exception(r.ErrorInfo);
                }
            }
            catch (Exception ex)
            {
                Toast(ex.Message);
            }
        }
Beispiel #4
0
        /// <summary>
        /// 创建ProcessRecorder表数据
        /// </summary>
        /// <param name="Data"></param>
        /// <param name="RowData"></param>
        /// <param name="Type"></param>
        public void CreatePR(TOInputDto Data, AssTransferOrderRow RowData, PROCESSMODE Type)
        {
            AssProcessRecord assProcessRecord = new AssProcessRecord
            {
                ASSID      = RowData.ASSID,     //资产条码
                CID        = RowData.CID,       //耗材编号
                CREATEDATE = DateTime.Now,      //创建时间
                CREATEUSER = Data.CREATEUSER,   //创建用户
                HANDLEDATE = DateTime.Now,      //处理时间
                MODIFYDATE = DateTime.Now,      //修改时间
                MODIFYUSER = Data.MODIFYUSER,   //修改用户
            };

            switch (Type)
            {
            case PROCESSMODE.调拨:
                assProcessRecord.QUANTITY    = RowData.INTRANSFERQTY;
                assProcessRecord.PROCESSMODE = (Int32)PROCESSMODE.调拨;
                assProcessRecord.HANDLEMAN   = Data.CREATEUSER;
                break;

            case PROCESSMODE.调拨确认:
                assProcessRecord.QUANTITY    = Convert.ToDecimal(RowData.TRANSFEREDQTY);
                assProcessRecord.PROCESSMODE = (Int32)PROCESSMODE.调拨确认;
                assProcessRecord.HANDLEMAN   = Data.MODIFYUSER;
                break;

            case PROCESSMODE.调拨取消:
                assProcessRecord.QUANTITY    = Convert.ToDecimal(RowData.TRANSFERCANCELQTY);
                assProcessRecord.PROCESSMODE = (Int32)PROCESSMODE.调拨取消;
                assProcessRecord.HANDLEMAN   = Data.MODIFYUSER;
                break;
            }
            if (String.IsNullOrEmpty(RowData.ASSID) == false)
            {
                switch (Type)         //根据操作模式,输入操作内容
                {
                case PROCESSMODE.调拨:
                    assProcessRecord.PROCESSCONTENT = Data.CREATEUSER + "调拨了物品编号为" + RowData.ASSID + "的资产";
                    break;

                case PROCESSMODE.调拨确认:
                    assProcessRecord.PROCESSCONTENT = Data.CREATEUSER + "确认调拨了物品编号为" + RowData.ASSID + "的资产";
                    break;

                case PROCESSMODE.调拨取消:
                    assProcessRecord.PROCESSCONTENT = Data.CREATEUSER + "取消调拨了物品编号为" + RowData.ASSID + "的资产";
                    break;
                }
            }
            else
            {
                assProcessRecord.CID = RowData.CID;
                switch (Type)         //根据操作模式,输入操作内容
                {
                case PROCESSMODE.调拨:
                    assProcessRecord.PROCESSCONTENT = Data.CREATEUSER + "调拨了耗材编号为" + RowData.CID + ",数量为" + RowData.INTRANSFERQTY;
                    break;

                case PROCESSMODE.调拨确认:
                    assProcessRecord.PROCESSCONTENT = Data.CREATEUSER + "确认调拨了耗材编号为" + RowData.CID + ",数量为" + RowData.TRANSFEREDQTY;
                    break;

                case PROCESSMODE.调拨取消:
                    assProcessRecord.PROCESSCONTENT = Data.CREATEUSER + "取消调拨了耗材编号为" + RowData.CID + ",数量为" + RowData.TRANSFERCANCELQTY;
                    break;
                }
            }
            _unitOfWork.RegisterNew(assProcessRecord);
        }
Beispiel #5
0
        /// <summary>
        /// 更新报修单行项
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public void UpdateAssTransferOrderRow(TOInputDto entity, PROCESSMODE ProType, OperateType type)
        {
            AssTransferOrderRow assROR = new AssTransferOrderRow();

            foreach (AssTransferOrderRow Row in entity.Rows)
            {
                assROR = _AssTransferOrderRowRepository.GetByID(entity.TOID, Row.TOROWID).FirstOrDefault();
                if (assROR == null)
                {
                    throw new Exception("调拨单行项:" + Row.TOROWID + "不存在!");
                }
                switch (ProType)
                {
                case PROCESSMODE.调拨确认:
                    assROR.INTRANSFERQTY = assROR.INTRANSFERQTY - Convert.ToDecimal(Row.TRANSFEREDQTY);         //确认调拨数量
                    if (Row.INTRANSFERQTY < 0)
                    {
                        throw new Exception("确认数量不能超过申请调拨数量!");
                    }
                    assROR.TRANSFEREDQTY = Convert.ToDecimal(assROR.TRANSFEREDQTY) + Row.TRANSFEREDQTY;
                    break;

                case PROCESSMODE.调拨取消:
                    assROR.INTRANSFERQTY = assROR.INTRANSFERQTY - Convert.ToDecimal(Row.TRANSFERCANCELQTY);         //取消调拨数量
                    if (Row.INTRANSFERQTY < 0)
                    {
                        throw new Exception("取消数量不能超过申请调拨数量!");
                    }
                    assROR.TRANSFERCANCELQTY = Convert.ToDecimal(assROR.TRANSFERCANCELQTY) + Row.TRANSFERCANCELQTY;
                    break;
                }

                if (assROR.INTRANSFERQTY == 0)       //如果全部调拨完毕,则修改行项状态
                {
                    if (ProType == PROCESSMODE.调拨确认)
                    {
                        assROR.STATUS = 1;        //调拨完成
                    }
                    else
                    {
                        assROR.STATUS = 2;        //调拨取消
                    }
                }

                //更新OrderRow数据
                _unitOfWork.RegisterDirty(assROR);

                if (type == OperateType.资产)
                {
                    Assets SNData = _AssetsRepository.GetByID(Row.ASSID).FirstOrDefault();
                    if (ProType == PROCESSMODE.调拨确认)
                    {
                        SNData.LOCATIONID = entity.DESLOCATIONID;        //区域
                    }
                    //修改AssetsSN表中资产状态
                    SNData.STATUS = (Int32)STATUS.闲置;  //资产状态
                    _unitOfWork.RegisterDirty(SNData); //新建调拨行项
                }
                else
                {
                    ConQuant assQuant = new ConQuant();
                    //修改Quant表数据
                    assQuant.CID = Row.CID;    //资产条码
                    if (ProType == PROCESSMODE.调拨确认)
                    {
                        assQuant.QUANTITY   = Convert.ToDecimal(Row.TRANSFEREDQTY); //确认调入数量
                        assQuant.LOCATIONID = entity.DESLOCATIONID;                 //区域
                    }
                    else
                    {
                        assQuant.QUANTITY   = Convert.ToDecimal(Row.TRANSFERCANCELQTY); //取消调入数量
                        assQuant.LOCATIONID = Row.LOCATIONID;                           //区域
                    }
                    ConQuant aq = _ConQuantRepository.GetByCID(Row.CID, assQuant.LOCATIONID).FirstOrDefault();

                    if (aq == null)     //如果不存在当前库存地数据,则创建一条新数据
                    {
                        assQuant.CREATEDATE = DateTime.Now;
                        assQuant.CREATEUSER = entity.MODIFYUSER;
                        assQuant.MODIFYDATE = DateTime.Now;
                        assQuant.MODIFYUSER = entity.MODIFYUSER;
                        _unitOfWork.RegisterNew(assQuant);
                    }
                    else            //已有数据,修改库存数量
                    {
                        aq.QUANTITY = aq.QUANTITY + assQuant.QUANTITY;
                        _unitOfWork.RegisterDirty(aq);
                    }
                }
                //往AssProcessRecord表添加数据
                CreatePR(entity, Row, ProType);
            }
        }
        /// <summary>
        /// 创建调拨单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Press(object sender, EventArgs e)
        {
            try
            {
                if (btnDealInMan.Tag == null)
                {
                    throw new Exception("调入管理员不能为空");
                }
                else
                {
                    TransferData.MANAGER = btnDealInMan.Tag.ToString();     //调入管理员
                }
                if (lblLocation.Tag == null)
                {
                    throw new Exception("调入库位不能为空");
                }
                else
                {
                    string[] Datas = lblLocation.Tag.ToString().Split('/');
                    TransferData.WAREID  = Datas[0];    //调入仓库
                    TransferData.STID    = Datas[1];    //调入类型
                    TransferData.DESSLID = Datas[2];    //调入库位
                }


                if (btnDealMan.Tag == null)
                {
                    throw new Exception("处理人不能为空");
                }
                else
                {
                    TransferData.HANDLEMAN = btnDealMan.Tag.ToString();          //处理人
                }
                TransferData.TRANSFERDATE = DatePicker.Value;                    //维修花费
                TransferData.NOTE         = txtNote.Text;                        //备注
                TransferData.STATUS       = 0;                                   //维修单状态
                TransferData.ISSNCONTROL  = (Int32)ISSNCONTROL.启用;               //是否属于SN
                TransferData.CREATEUSER   = Client.Session["UserID"].ToString(); //创建用户
                TransferData.CREATEDATE   = DateTime.Now;

                List <AssTransferOrderRow> Data = new List <AssTransferOrderRow>();
                if (ListAssetsSN.Rows.Count == 0)
                {
                    throw new Exception("调拨行项不能为空!");
                }
                foreach (ListViewRow Row in ListAssetsSN.Rows)
                {
                    frmOrderCreateSNLayout Layout  = Row.Control as frmOrderCreateSNLayout;
                    AssetsOrderRow         RowData = Layout.getData();
                    AssTransferOrderRow    assRow  = new AssTransferOrderRow();
                    Assets assets = autofacConfig.orderCommonService.GetAssetsByID(RowData.ASSID);

                    assRow.IMAGE         = RowData.IMAGE;
                    assRow.ASSID         = RowData.ASSID;
                    assRow.INTRANSFERQTY = RowData.QTY;
                    assRow.SN            = RowData.SN;
                    assRow.STATUS        = RowData.STATUS;
                    assRow.WAREID        = assets.WAREID;
                    assRow.STID          = assets.STID;
                    assRow.SLID          = assets.SLID;
                    assRow.CREATEDATE    = DateTime.Now;
                    Data.Add(assRow);
                }
                TransferData.Rows = Data;
                ReturnInfo r = autofacConfig.assTransferOrderService.AddAssTransferOrder(TransferData, OperateType.资产);
                if (r.IsSuccess)
                {
                    ShowResult = ShowResult.Yes;
                    Form.Close();          //创建成功
                    Toast("创建调拨单成功!");
                }
                else
                {
                    throw new Exception(r.ErrorInfo);
                }
            }
            catch (Exception ex)
            {
                Toast(ex.Message);
            }
        }