Exemple #1
0
 /// <summary>
 /// 查询条件
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 WhereClip GetWhereClip(ORD_PurchaseReturnParam param)
 {
     this.CheckSession();
     WhereClip where = ORD_PurchaseReturn._.IsDeleted == 0;
     if (param.PRGuid != null)
     {
         where = where && ORD_PurchaseReturn._.PRGuid == param.PRGuid;
     }
     if (param.PRGuids != null && param.PRGuids.Length > 0)
     {
         where = where && ORD_PurchaseReturn._.PRGuid.In(param.PRGuids);
     }
     if (!string.IsNullOrEmpty(param.BillNo))
     {
         where = where && ORD_PurchaseReturn._.BillNo.Like("%" + param.BillNo + "%");
     }
     if (!string.IsNullOrEmpty(param.SupplierName))
     {
         where = where && ORD_PurchaseReturn._.SupplierName.Like("%" + param.SupplierName + "%");
     }
     if (!string.IsNullOrEmpty(param.OperEmpName))
     {
         where = where && ORD_PurchaseReturn._.OperEmpName.Like("%" + param.OperEmpName + "%");
     }
     if (!string.IsNullOrEmpty(param.Status))
     {
         where = where && ORD_PurchaseReturn._.Status == param.Status;
     }
     if (param.StatusArr != null && param.StatusArr.Length > 0)
     {
         where = where && ORD_PurchaseReturn._.Status.In(param.StatusArr);
     }
     return(where);
 }
Exemple #2
0
        /// <summary>
        /// 删除实体
        /// </summary>
        /// <param name="param">删除条件实体</param>
        /// <returns></returns>
        public WCFAddUpdateResult DelInfo(ORD_PurchaseReturnParam param)
        {
            this.CheckSession();
            WCFAddUpdateResult ret = new WCFAddUpdateResult();
            int affect             = 0;

            try
            {
                #region 判断
                if (param.PRGuid == null)
                {
                    throw new WarnException("请指定要删除的退货单ID!");
                }
                #endregion
                WhereClip whereClip           = GetWhereClip(param);
                ORD_PurchaseReturnResult info = new ORD_PurchaseReturnResult();
                info.IsDeleted = true;
                affect         = this.Update <ORD_PurchaseReturnResult>(info, whereClip);
                #region 设置返回值
                ret.Key = affect;
                #endregion
            }
            catch (WarnException exp)
            {
                throw exp;
            }
            catch (System.Exception exp)
            {
                LogInfoBLL.WriteLog(this.SessionInfo, exp);
                throw exp;
            }
            return(ret);
        }
        public WCFAddUpdateResult DelInfo(ORD_PurchaseReturnParam param)
        {
            WCFAddUpdateResult ret = new WCFAddUpdateResult();
            ExeResult          rst = new ExeResult();

            rst = this.Execute("ZNLCRM.BLL.PPM.ORD_PurchaseReturnBLL", "DelInfo", param);
            ret = (rst == null ? new WCFAddUpdateResult() : rst.Result as WCFAddUpdateResult);
            return(ret);
        }
        public ORD_PurchaseReturnResult GetInfo(ORD_PurchaseReturnParam param)
        {
            ORD_PurchaseReturnResult ret = new ORD_PurchaseReturnResult();
            ExeResult rst = new ExeResult();

            rst = this.Execute("ZNLCRM.BLL.PPM.ORD_PurchaseReturnBLL", "GetInfo", param);
            ret = rst == null ? new ORD_PurchaseReturnResult() : rst.Result as ORD_PurchaseReturnResult;
            return(ret);
        }
        public bool AuditPurchaseReturnBill(ORD_PurchaseReturnParam param)
        {
            bool      ret = true;
            ExeResult rst = new ExeResult();

            rst = this.Execute("ZNLCRM.BLL.PPM.ORD_PurchaseReturnBLL", "AuditPurchaseReturnBill", param);
            ret = (rst == null ? false : (bool)rst.Result);
            return(ret);
        }
        public PageList <ORD_PurchaseReturnResult> GetPageList(ORD_PurchaseReturnParam param)
        {
            ExeResult rst = new ExeResult();

            rst = this.Execute("ZNLCRM.BLL.PPM.ORD_PurchaseReturnBLL", "GetPageList", param);
            PageList <ORD_PurchaseReturnResult> pageList = new PageList <ORD_PurchaseReturnResult>();

            pageList = (rst == null ? new PageList <ORD_PurchaseReturnResult>() : rst.Result as PageList <ORD_PurchaseReturnResult>);
            return(pageList);
        }
        public List <ORD_PurchaseReturnResult> GetList(ORD_PurchaseReturnParam param)
        {
            ExeResult rst = new ExeResult();

            rst = this.Execute("ZNLCRM.BLL.PPM.ORD_PurchaseReturnBLL", "GetList", param);
            List <ORD_PurchaseReturnResult> list = new List <ORD_PurchaseReturnResult>();

            list = (rst == null ? new List <ORD_PurchaseReturnResult>() : rst.Result as List <ORD_PurchaseReturnResult>);
            return(list);
        }
Exemple #8
0
        /// <summary>
        /// 分页集合
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public PageList <ORD_PurchaseReturnResult> GetPageList(ORD_PurchaseReturnParam param)
        {
            this.CheckSession();
            PageList <ORD_PurchaseReturnResult> ret = new PageList <ORD_PurchaseReturnResult>();

            try
            {
                List <Field> field = new List <Field>()
                {
                    Field.All
                };
                ret = this.SelectList <ORD_PurchaseReturnResult>(param.PageIndex.GetValueOrDefault(1), param.PageSize.GetValueOrDefault(50), field, GetWhereClip(param), ORD_PurchaseReturn._.CreatedTime.Desc);
                if (ret.ResultList != null && ret.ResultList.Count > 0)
                {
                    HR_OrgBLL orgBLL = new HR_OrgBLL();
                    orgBLL.SessionInfo = this.SessionInfo;
                    HR_OrgParam orgParam = new HR_OrgParam();
                    orgParam.OrgIDs = ret.ResultList.Where(a => a.OperOrgID != null).Select(a => a.OperOrgID).Distinct().ToArray();
                    List <HR_OrgResult> orgList = orgBLL.GetOrgTree(orgParam);

                    HR_DepartmentBLL deptBLL = new HR_DepartmentBLL();
                    deptBLL.SessionInfo = this.SessionInfo;
                    HR_DepartmentParam deptParam = new HR_DepartmentParam();
                    deptParam.DeptIDs = ret.ResultList.Where(a => a.OperDeptID != null).Select(a => a.OperDeptID).Distinct().ToArray();
                    List <HR_DepartmentResult> deptList = deptBLL.GetDeptList(deptParam);



                    foreach (ORD_PurchaseReturnResult orderResult in ret.ResultList)
                    {
                        if (orderResult.OperOrgID != null)
                        {
                            orderResult.OperOrgName = orgList.FirstOrDefault(a => a.OrgID == orderResult.OperOrgID).OrgName;
                        }
                        if (orderResult.OperDeptID != null)
                        {
                            orderResult.OperDeptName = deptList.FirstOrDefault(a => a.DeptID == orderResult.OperDeptID).DeptName;
                        }
                        orderResult.AllStatus = orderResult.StkOutStatus;
                    }
                }
            }
            catch (WarnException exp)
            {
                throw exp;
            }
            catch (System.Exception exp)
            {
                LogInfoBLL.WriteLog(this.SessionInfo, exp);
                throw exp;
            }
            return(ret);
        }
Exemple #9
0
        private void BindDataGridView(int pageIndex)
        {
            ORD_PurchaseReturnParam param = new ORD_PurchaseReturnParam();

            param.PageIndex  = pageIndex;
            param.PageSize   = 100;
            param.SupplierID = SupplierID;
            param.BillNo     = txtBillNo.Text.Trim();
            PageList <ORD_PurchaseReturnResult> lstRst = returnLogic.GetPageList(param);

            dgvPurchaseReturn.DataSource = lstRst.ResultList;
            pgPurchaseReturn.RecordCount = lstRst.TotalCount;
            this.SetDataSource <ORD_PurchaseReturnResult>(lstRst.ResultList);
            SetGridCheck(this.dgvPurchaseReturn, _idColName, _chkColName);
        }
        private void BindDataGridView(int pageIndex)
        {
            ORD_PurchaseReturnParam param = new ORD_PurchaseReturnParam();

            param.BillNo       = txtBillNo.Text;
            param.SupplierName = txtSupplierName.Text;
            param.OperEmpName  = txtOperEmpName.Text;
            param.PageIndex    = pageIndex;
            param.PageSize     = 100;
            PageList <ORD_PurchaseReturnResult> pageList = this.AsyncExecute <PageList <ORD_PurchaseReturnResult>, ORD_PurchaseReturnParam>(param, returnLogic.GetPageList, a =>
            {
                dgvPurchaseReturn.DataSource = a.ResultList;
                pgPurchaseReturn.RecordCount = a.TotalCount;
            });
        }
Exemple #11
0
        public bool UpdateStatus(ORD_PurchaseReturnParam param)
        {
            bool flag = true;

            try
            {
                ORD_PurchaseReturnResult orderResult = this.GetInfo(param);
                if (orderResult != null)
                {
                    if (orderResult.ReturnLineList != null && orderResult.ReturnLineList.Count > 0)
                    {
                        List <ORD_PurchaseReturnLineResult> lineList = orderResult.ReturnLineList;
                        if (lineList != null && lineList.Count > 0)
                        {
                            int?qty       = lineList.Where(a => a.Qty != null).Select(a => a.Qty).Sum();
                            int?stkOutQty = lineList.Where(a => a.StkOutQty != null).Select(a => a.StkOutQty).Sum();
                            if (stkOutQty == 0)
                            {
                                orderResult.StkOutStatus = "待出库";
                            }
                            else if (stkOutQty >= qty)
                            {
                                orderResult.StkOutStatus = "全部出库";
                            }
                            else
                            {
                                orderResult.StkOutStatus = "部分出库";
                            }
                            this.AddOrUpdate(orderResult);
                        }
                    }
                }
            }
            catch (WarnException exp)
            {
                flag = false;
                throw exp;
            }
            catch (System.Exception exp)
            {
                flag = false;
                LogInfoBLL.WriteLog(this.SessionInfo, exp);
                throw exp;
            }
            return(flag);
        }
        private void tsbDel_Click(object sender, EventArgs e)
        {
            ORD_PurchaseReturnParam param = new ORD_PurchaseReturnParam();

            param.PRGuid = _PRGuid;

            ORD_PurchaseReturnResult rst = returnLogic.GetInfo(param);

            if (rst != null)
            {
                if (MessageBox.Show("请确认是否要删除采购退货单:【" + rst.BillNo + "】", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                {
                    WCFAddUpdateResult result = this.AsyncExecute <WCFAddUpdateResult, ORD_PurchaseReturnParam>(param, returnLogic.DelInfo, a => { BindDataGridView(pgPurchaseReturn.PageIndex); });
                }
            }
            else
            {
                this.ShowMessage("请选择需要删除的采购退货单!");
            }
        }
Exemple #13
0
        /// <summary>
        /// 获取集合
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public List <ORD_PurchaseReturnResult> GetList(ORD_PurchaseReturnParam param)
        {
            this.CheckSession();
            List <ORD_PurchaseReturnResult> ret = new List <ORD_PurchaseReturnResult>();

            try
            {
                WhereClip whereClip = GetWhereClip(param);
                ret = this.SelectList <ORD_PurchaseReturnResult>(whereClip, ORD_PurchaseReturn._.CreatedTime.Desc);
            }
            catch (WarnException exp)
            {
                throw exp;
            }
            catch (System.Exception exp)
            {
                LogInfoBLL.WriteLog(this.SessionInfo, exp);
                throw exp;
            }
            return(ret);
        }
Exemple #14
0
        /// <summary>
        /// 获取一条信息记录
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public ORD_PurchaseReturnResult GetInfo(ORD_PurchaseReturnParam param)
        {
            this.CheckSession();
            ORD_PurchaseReturnResult rst = new ORD_PurchaseReturnResult();

            #region 判断
            if (param.PRGuid == null)
            {
                throw new WarnException("请指定采购退货单GUID!");
            }
            #endregion
            #region 获取实体

            rst = this.Select <ORD_PurchaseReturnResult>(GetWhereClip(param));
            if (rst != null)
            {
                string[] statusArr = new string[] { rst.StkOutStatus };
                rst.AllStatus = string.Join(",", statusArr);

                ORD_PurchaseReturnLineBLL lineBLL = new ORD_PurchaseReturnLineBLL();
                lineBLL.SessionInfo = this.SessionInfo;
                rst.ReturnLineList  = lineBLL.GetList(new ORD_PurchaseReturnLineParam()
                {
                    PRGuid = rst.PRGuid
                });
                //this.SelectList<ORD_SalesOrderLineResult>(ORD_SalesOrderLine._.SOGuid == rst.SOGuid);

                HR_DepartmentBLL deptBLL = new HR_DepartmentBLL();
                deptBLL.SessionInfo = this.SessionInfo;
                HR_DepartmentResult deptResult = deptBLL.GetInfo(new HR_DepartmentParam()
                {
                    DeptID = rst.OperDeptID
                });
                rst.OperDeptName = deptResult.DeptName;
            }
            #endregion
            return(rst);
        }
Exemple #15
0
        public bool SubmitPurchaseReturnBill(ORD_PurchaseReturnParam param)
        {
            this.CheckSession();
            bool submitFlag = true;

            try
            {
                ORD_PurchaseReturnResult returnResult = this.GetInfo(param);

                if (returnResult != null)
                {
                    #region 判断是否可以提交

                    bool isAllowSubmit = true;

                    if (returnResult.ApproveStatus == "待审核")
                    {
                        isAllowSubmit = false;
                        throw new WarnException("采购退货单当前状态为:【已提交,待审核】,禁止重复提交!");
                    }
                    else if (returnResult.ApproveStatus == "审核完成")
                    {
                        isAllowSubmit = false;
                        throw new WarnException("采购退货单当前状态为:【审核完成】,撤单后才可以再次提交!");
                    }
                    if (isAllowSubmit)
                    {
                        returnResult.Status        = "Approve";
                        returnResult.ApproveStatus = "待审核";
                        WCFAddUpdateResult ret = this.AddOrUpdate(returnResult);
                        if (ret.KeyGuid.ToGuid() == Guid.Empty)
                        {
                            submitFlag = false;
                        }
                        else
                        {
                            #region 定义相关变量
                            ORD_PurchaseOrderBLL purOrderBLL = new ORD_PurchaseOrderBLL();
                            purOrderBLL.SessionInfo = this.SessionInfo;
                            ORD_PurchaseOrderLineBLL purOrderLineBLL = new ORD_PurchaseOrderLineBLL();
                            purOrderLineBLL.SessionInfo = this.SessionInfo;
                            STK_InBLL inBLL = new STK_InBLL();
                            inBLL.SessionInfo = this.SessionInfo;
                            STK_InLineBLL inLineBLL = new STK_InLineBLL();
                            inLineBLL.SessionInfo = this.SessionInfo;
                            ORD_PurchaseReturnLineBLL returnLineBLL = new ORD_PurchaseReturnLineBLL();
                            returnLineBLL.SessionInfo = this.SessionInfo;
                            STK_StockReserveBLL reserveBLL = new STK_StockReserveBLL();
                            reserveBLL.SessionInfo = this.SessionInfo;
                            Guid?[] POLineGuids    = null;
                            Guid?[] StkInLineGuids = null;
                            Guid?[] PRGuids        = null;
                            Guid?[] effPRGuids     = null;
                            Guid?[] POGuids        = null;
                            List <STK_InLineResult>             linkInLineList            = new List <STK_InLineResult>();
                            List <ORD_PurchaseOrderLineResult>  linkPurchaseOrderLineList = new List <ORD_PurchaseOrderLineResult>();
                            List <ORD_PurchaseReturnResult>     linkReturnList            = new List <ORD_PurchaseReturnResult>();
                            List <ORD_PurchaseReturnLineResult> linkReturnLineList        = new List <ORD_PurchaseReturnLineResult>();
                            List <ORD_PurchaseReturnLineResult> effReturnLineList         = new List <ORD_PurchaseReturnLineResult>();
                            #endregion
                            List <ORD_PurchaseReturnLineResult> purReturnLineList = returnLineBLL.GetList(new ORD_PurchaseReturnLineParam()
                            {
                                PRGuid = returnResult.PRGuid
                            });

                            #region 预留库存
                            foreach (ORD_PurchaseReturnLineResult returnLineResult in purReturnLineList)
                            {
                                //创建预留明细
                                STK_StockReserveResult reserveResult = new STK_StockReserveResult();
                                reserveResult.SourceBillGuid     = returnResult.PRGuid;            //采购退货单guid
                                reserveResult.SourceBillNo       = returnResult.BillNo;            //退货单编号
                                reserveResult.SourceBillLineGuid = returnLineResult.PRLineGuid;    //退货明细guid
                                reserveResult.SourceBillType     = "采购退货出库";
                                reserveResult.ReserveType        = 4;                              //退货预留
                                reserveResult.OperType           = false;                          //系统预留
                                reserveResult.StkInLineGuid      = returnLineResult.StkInLineGuid; // 入库明细guid
                                reserveResult.ItemCode           = returnLineResult.ItemCode;
                                reserveResult.OperFlag           = true;                           //增加
                                reserveBLL.OperateReserve(reserveResult);
                            }
                            #endregion

                            #region 更新入库明细的退货数量
                            //获取退货明细关联的入库明细ID集合
                            StkInLineGuids = purReturnLineList.Select(a => a.StkInLineGuid).Distinct().ToArray();
                            if (StkInLineGuids != null && StkInLineGuids.Length > 0)
                            {
                                //退货明细关联的入库明细
                                linkInLineList = inLineBLL.GetList(new STK_InLineParam()
                                {
                                    StkInLineGuids = StkInLineGuids
                                });
                                //关联的入库明细所关联的退货明细
                                linkReturnLineList = returnLineBLL.GetList(new ORD_PurchaseReturnLineParam()
                                {
                                    StkInLineGuids = StkInLineGuids
                                });
                                PRGuids = linkReturnLineList.Select(a => a.PRGuid).Distinct().ToArray();
                                if (PRGuids != null && PRGuids.Length > 0)
                                {
                                    //关联的入库明细所关联的退货明细对应的退货主单
                                    linkReturnList = this.GetList(new ORD_PurchaseReturnParam()
                                    {
                                        PRGuids = PRGuids, StatusArr = new string[] { "Complete", "Approve" }
                                    });
                                    if (linkReturnList != null && linkReturnList.Count > 0)
                                    {
                                        effPRGuids        = linkReturnList.Select(a => (Guid?)a.PRGuid).Distinct().ToArray();
                                        effReturnLineList = linkReturnLineList.Where(a => effPRGuids.Contains(a.PRGuid)).ToList();
                                        foreach (STK_InLineResult inLineResult in linkInLineList)
                                        {
                                            int?qty = effReturnLineList.Where(a => a.StkInLineGuid == inLineResult.StkInLineGuid).Sum(a => a.Qty.ToInt32());
                                            inLineResult.ReturnOccQty = qty;
                                        }
                                    }
                                }
                                //更新退货明细关联的入库明细的退货占有数量
                                inLineBLL.UpdateOrInsertList(linkInLineList);
                            }
                            #endregion

                            #region 更新采购明细的采购占有数量和采购主单的退货占有状态
                            //获取关联采购明细ID集合
                            POLineGuids = purReturnLineList.Select(a => a.POLineGuid).Distinct().ToArray();
                            linkPurchaseOrderLineList = purOrderLineBLL.GetList(new ORD_PurchaseOrderLineParam()
                            {
                                POLineGuids = POLineGuids, IsCancel = false
                            });
                            //获取关联的采购明细所关联的退货明细
                            linkReturnLineList = returnLineBLL.GetList(new ORD_PurchaseReturnLineParam()
                            {
                                POLineGuids = POLineGuids
                            });
                            PRGuids = linkReturnLineList.Select(a => a.PRGuid).Distinct().ToArray();
                            if (PRGuids != null && PRGuids.Length > 0)
                            {
                                //采购明细所关联的退货明细对应的退货主单
                                linkReturnList = this.GetList(new ORD_PurchaseReturnParam()
                                {
                                    PRGuids = PRGuids, StatusArr = new string[] { "Complete", "Approve" }
                                });
                                if (linkReturnList != null && linkReturnList.Count > 0)
                                {
                                    effPRGuids        = linkReturnList.Select(a => (Guid?)a.PRGuid).Distinct().ToArray();
                                    effReturnLineList = linkReturnLineList.Where(a => effPRGuids.Contains(a.PRGuid)).ToList();
                                    foreach (ORD_PurchaseOrderLineResult purLineResult in linkPurchaseOrderLineList)
                                    {
                                        int?qty = effReturnLineList.Where(a => a.POLineGuid == purLineResult.POLineGuid).Sum(a => a.Qty.ToInt32());
                                        purLineResult.ReturnOccQty = qty;
                                    }
                                }
                            }
                            purOrderLineBLL.UpdateOrInsertList(linkPurchaseOrderLineList);
                            POGuids = linkPurchaseOrderLineList.Select(a => a.SOGuid).Distinct().ToArray();
                            foreach (Guid poguid in POGuids)
                            {
                                purOrderBLL.UpdateStatus(new ORD_PurchaseOrderParam()
                                {
                                    POGuid = poguid
                                });
                            }

                            #endregion
                        }
                    }


                    #endregion
                }
                else
                {
                    throw new WarnException("要提交的采购退货单在系统中不存在!");
                }
            }
            catch (WarnException exp)
            {
                throw exp;
            }
            catch (Exception exp)
            {
                LogInfoBLL.WriteLog(this.SessionInfo, exp);
                throw exp;
            }
            return(submitFlag);
        }
Exemple #16
0
        public bool AuditPurchaseReturnBill(ORD_PurchaseReturnParam param)
        {
            bool auditFlag = true;

            try
            {
                ORD_PurchaseReturnResult returnResult = this.GetInfo(param);

                if (returnResult != null)
                {
                    bool isAllowAudit = true;

                    if (returnResult.ApproveStatus == "待提交")
                    {
                        isAllowAudit = false;
                        throw new WarnException("采购退货单当前状态为:【待提交】,请先提交!");
                    }
                    else if (returnResult.ApproveStatus == "审核完成")
                    {
                        isAllowAudit = false;
                        throw new WarnException("采购退货单当前状态为:【审核完成】,禁止重复审核!");
                    }
                    if (isAllowAudit)
                    {
                        returnResult.Status        = "Complete";
                        returnResult.ApproveStatus = "审核完成";
                        WCFAddUpdateResult ret = this.AddOrUpdate(returnResult);
                        if (ret.KeyGuid.ToGuid() == Guid.Empty)
                        {
                            auditFlag = false;
                        }
                        else
                        {
                            #region 定义相关变量
                            ORD_PurchaseOrderBLL purOrderBLL = new ORD_PurchaseOrderBLL();
                            purOrderBLL.SessionInfo = this.SessionInfo;
                            ORD_PurchaseOrderLineBLL purOrderLineBLL = new ORD_PurchaseOrderLineBLL();
                            purOrderLineBLL.SessionInfo = this.SessionInfo;
                            STK_InBLL inBLL = new STK_InBLL();
                            inBLL.SessionInfo = this.SessionInfo;
                            STK_InLineBLL inLineBLL = new STK_InLineBLL();
                            inLineBLL.SessionInfo = this.SessionInfo;
                            ORD_PurchaseReturnLineBLL returnLineBLL = new ORD_PurchaseReturnLineBLL();
                            returnLineBLL.SessionInfo = this.SessionInfo;
                            Guid?[] POLineGuids    = null;
                            Guid?[] StkInLineGuids = null;
                            Guid?[] PRGuids        = null;
                            Guid?[] effPRGuids     = null;
                            Guid?[] POGuids        = null;
                            List <STK_InLineResult>             linkInLineList            = new List <STK_InLineResult>();
                            List <ORD_PurchaseOrderLineResult>  linkPurchaseOrderLineList = new List <ORD_PurchaseOrderLineResult>();
                            List <ORD_PurchaseReturnResult>     linkReturnList            = new List <ORD_PurchaseReturnResult>();
                            List <ORD_PurchaseReturnLineResult> linkReturnLineList        = new List <ORD_PurchaseReturnLineResult>();
                            List <ORD_PurchaseReturnLineResult> effReturnLineList         = new List <ORD_PurchaseReturnLineResult>();
                            #endregion
                            List <ORD_PurchaseReturnLineResult> purReturnLineList = returnLineBLL.GetList(new ORD_PurchaseReturnLineParam()
                            {
                                PRGuid = returnResult.PRGuid
                            });



                            #region 更新采购明细的退货数量和采购主单的退货状态
                            //获取关联的采购明细ID集合
                            POLineGuids = purReturnLineList.Select(a => a.POLineGuid).Distinct().ToArray();
                            linkPurchaseOrderLineList = purOrderLineBLL.GetList(new ORD_PurchaseOrderLineParam()
                            {
                                POLineGuids = POLineGuids
                            });
                            //获取关联的采购明细所关联的退货明细
                            linkReturnLineList = returnLineBLL.GetList(new ORD_PurchaseReturnLineParam()
                            {
                                POLineGuids = POLineGuids
                            });
                            PRGuids = linkReturnLineList.Select(a => a.PRGuid).Distinct().ToArray();
                            if (PRGuids != null && PRGuids.Length > 0)
                            {
                                //采购明细所关联的退货明细对应的退货主单
                                linkReturnList = this.GetList(new ORD_PurchaseReturnParam()
                                {
                                    PRGuids = PRGuids, Status = "Complete"
                                });
                                if (linkReturnList != null && linkReturnList.Count > 0)
                                {
                                    effPRGuids        = linkReturnList.Select(a => (Guid?)a.PRGuid).Distinct().ToArray();
                                    effReturnLineList = linkReturnLineList.Where(a => effPRGuids.Contains(a.PRGuid)).ToList();
                                    foreach (ORD_PurchaseOrderLineResult purLineResult in linkPurchaseOrderLineList)
                                    {
                                        int?qty = effReturnLineList.Where(a => a.POLineGuid == purLineResult.SOLineGuid).Sum(a => a.Qty.ToInt32());
                                        purLineResult.ReturnQty = qty;
                                    }
                                }
                            }
                            purOrderLineBLL.UpdateOrInsertList(linkPurchaseOrderLineList);
                            POGuids = linkPurchaseOrderLineList.Select(a => a.SOGuid).Distinct().ToArray();
                            foreach (Guid poguid in POGuids)
                            {
                                purOrderBLL.UpdateStatus(new ORD_PurchaseOrderParam()
                                {
                                    POGuid = poguid
                                });
                            }

                            #endregion
                        }
                    }
                }
                else
                {
                    throw new WarnException("要审核的采购退货单在系统中不存在!");
                }
            }
            catch (WarnException exp)
            {
                throw exp;
            }
            catch (Exception exp)
            {
                LogInfoBLL.WriteLog(this.SessionInfo, exp);
                throw exp;
            }
            return(auditFlag);
        }