/// <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); }
/// <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); }
/// <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); }
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; }); }
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("请选择需要删除的采购退货单!"); } }
/// <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); }
/// <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); }
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); }
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); }