/// <summary> /// 审核通过 /// </summary> /// <param name="poInfo"></param> public static PurchaseOrderInfo ValidPO(PurchaseOrderInfo poInfo) { if (poInfo == null || !poInfo.SysNo.HasValue) { throw new BusinessException(L("采购单不能为空!")); } PurchaseOrderInfo localEntity = ProductPurchaseDA.LoadPOMaster(poInfo.SysNo.Value, poInfo.SellerSysNo.Value); if (localEntity == null) { throw new BusinessException(L("采购单不存在!")); } if (localEntity.PurchaseOrderBasicInfo.PurchaseOrderStatus != PurchaseOrderStatus.WaitingAudit) { throw new BusinessException(L("采购单不为待审核状态,不能审核通过!")); } using (ITransaction trans = ECommerce.Utility.TransactionManager.Create()) { localEntity.PurchaseOrderBasicInfo.PurchaseOrderStatus = PurchaseOrderStatus.WaitingReport; localEntity.PurchaseOrderBasicInfo.AuditDate = DateTime.Now; localEntity.PurchaseOrderBasicInfo.AuditUserSysNo = poInfo.EditUserSysNo; localEntity.PurchaseOrderBasicInfo.AuditUserName = poInfo.EditUserName; ProductPurchaseDA.UpdatePOStatus(localEntity); PurchaseOrderETATimeInfo poetaEntity = new PurchaseOrderETATimeInfo(); poetaEntity.Status = 2; poetaEntity.POSysNo = poInfo.SysNo; poetaEntity.EditUser = poInfo.EditUserName; ProductPurchaseDA.UpdatePOETAInfo(poetaEntity); trans.Complete(); } return(localEntity); }
/// <summary> /// 提交审核 /// </summary> /// <returns></returns> public static PurchaseOrderInfo Submit(PurchaseOrderInfo poInfo) { if (poInfo == null || !poInfo.SysNo.HasValue) { throw new BusinessException(L("采购单不能为空!")); } PurchaseOrderInfo localEntity = ProductPurchaseDA.LoadPOMaster(poInfo.SysNo.Value, poInfo.SellerSysNo.Value); if (localEntity == null) { throw new BusinessException(L("采购单不存在!")); } if (!(localEntity.PurchaseOrderBasicInfo.PurchaseOrderStatus == PurchaseOrderStatus.Created || localEntity.PurchaseOrderBasicInfo.PurchaseOrderStatus == PurchaseOrderStatus.Returned)) { throw new BusinessException(L("该PO单已经提交审核,不能重复提交!")); } if (string.IsNullOrEmpty(poInfo.PurchaseOrderBasicInfo.MemoInfo.PMRequestMemo)) { throw new BusinessException(L("申请理由不能为空!")); } localEntity.PurchaseOrderBasicInfo.MemoInfo.PMRequestMemo = poInfo.PurchaseOrderBasicInfo.MemoInfo.PMRequestMemo + "[" + poInfo.EditUserName + ":" + DateTime.Now.ToString() + "]"; localEntity.PurchaseOrderBasicInfo.MemoInfo.RefuseMemo = string.Empty; localEntity.PurchaseOrderBasicInfo.PurchaseOrderStatus = PurchaseOrderStatus.WaitingAudit; ProductPurchaseDA.UpdatePOStatus(localEntity); return(localEntity); }
/// <summary> /// 作废 /// </summary> /// <param name="poInfo"></param> public static PurchaseOrderInfo AbandonPO(PurchaseOrderInfo poInfo) { if (poInfo == null || !poInfo.SysNo.HasValue) { throw new BusinessException(L("采购单不能为空!")); } PurchaseOrderInfo localEntity = ProductPurchaseDA.LoadPOMaster(poInfo.SysNo.Value, poInfo.SellerSysNo.Value); if (localEntity == null) { throw new BusinessException(L("采购单不存在!")); } if (localEntity.PurchaseOrderBasicInfo.PurchaseOrderStatus != PurchaseOrderStatus.Created && localEntity.PurchaseOrderBasicInfo.PurchaseOrderStatus != PurchaseOrderStatus.Returned) { throw new BusinessException(L("采购单不为初始状态,不能作废!")); } using (ITransaction trans = ECommerce.Utility.TransactionManager.Create()) { localEntity.PurchaseOrderBasicInfo.PurchaseOrderStatus = PurchaseOrderStatus.Abandoned; ProductPurchaseDA.UpdatePOStatus(localEntity); PurchaseOrderETATimeInfo poetaEntity = new PurchaseOrderETATimeInfo(); poetaEntity.Status = -1; poetaEntity.POSysNo = poInfo.SysNo; poetaEntity.EditUser = poInfo.EditUserName; ProductPurchaseDA.UpdatePOETAInfo(poetaEntity); trans.Complete(); } return(localEntity); }
/// <summary> /// 审核拒绝 /// </summary> /// <param name="poInfo"></param> public static PurchaseOrderInfo RejectPO(PurchaseOrderInfo poInfo) { if (poInfo == null || !poInfo.SysNo.HasValue) { throw new BusinessException(L("采购单不能为空!")); } PurchaseOrderInfo localEntity = ProductPurchaseDA.LoadPOMaster(poInfo.SysNo.Value, poInfo.SellerSysNo.Value); if (localEntity == null) { throw new BusinessException(L("采购单不存在!")); } if (string.IsNullOrEmpty(poInfo.PurchaseOrderBasicInfo.MemoInfo.RefuseMemo)) { throw new BusinessException(L("拒绝理由不能为空!")); } if (localEntity.PurchaseOrderBasicInfo.PurchaseOrderStatus != PurchaseOrderStatus.WaitingAudit) { throw new BusinessException(L("采购单不为待审核状态,不能审核拒绝!")); } localEntity.PurchaseOrderBasicInfo.MemoInfo.RefuseMemo = poInfo.PurchaseOrderBasicInfo.MemoInfo.RefuseMemo + "[" + poInfo.EditUserName + ":" + DateTime.Now.ToString() + "]"; localEntity.PurchaseOrderBasicInfo.PurchaseOrderTPStatus = null; localEntity.PurchaseOrderBasicInfo.PurchaseOrderStatus = PurchaseOrderStatus.Returned; localEntity.PurchaseOrderBasicInfo.AuditDate = null; localEntity.PurchaseOrderBasicInfo.AuditUserSysNo = null; using (ITransaction trans = ECommerce.Utility.TransactionManager.Create()) { ProductPurchaseDA.UpdatePOStatus(localEntity); PurchaseOrderETATimeInfo poetaEntity = new PurchaseOrderETATimeInfo(); poetaEntity.Status = -1; poetaEntity.POSysNo = poInfo.SysNo; poetaEntity.EditUser = poInfo.EditUserName; ProductPurchaseDA.UpdatePOETAInfo(poetaEntity); trans.Complete(); } return(localEntity); }
public static PurchaseOrderInfo LoadPurchaseOrderInfo(int poSysNo, int sellerSysNo) { //1.加载采购单基本信息 PurchaseOrderInfo poInfo = ProductPurchaseDA.LoadPOMaster(poSysNo, sellerSysNo); if (poInfo == null) { return(poInfo); } PurchaseOrderETATimeInfo getCheckETMTimeInfo = ProductPurchaseDA.LoadPOETATimeInfo(poInfo.SysNo.Value); if (null != getCheckETMTimeInfo) { poInfo.PurchaseOrderBasicInfo.ETATimeInfo = getCheckETMTimeInfo; } //2.加载采购单商品列表: poInfo.POItems = ProductPurchaseDA.LoadPOItems(poInfo.SysNo.Value); foreach (var item in poInfo.POItems) { ////获取本地货币: if (poInfo.PurchaseOrderBasicInfo.CurrencyCode.HasValue) { item.CurrencyCode = poInfo.PurchaseOrderBasicInfo.CurrencyCode.Value; CurrencyInfo localCurrency = CommonService.GetCurrencyBySysNo(item.CurrencyCode.Value); item.CurrencySymbol = localCurrency == null ? String.Empty : localCurrency.CurrencySymbol; } } //3.加载采购单供应商信息 poInfo.VendorInfo = StoreService.LoadVendorInfo(sellerSysNo); //4.获取polog的入库总金额 PurchaseOrderLogInfo poLogInfo = ProductPurchaseDA.LoadPOLogInfo(poInfo.SysNo.Value); if (null != poLogInfo) { poInfo.PurchaseOrderBasicInfo.TotalActualPrice = poLogInfo.SumTotalAmt; } if (poInfo.PurchaseOrderBasicInfo.TotalActualPrice == 0) { foreach (PurchaseOrderItemInfo pitem in poInfo.POItems) { poInfo.PurchaseOrderBasicInfo.TotalActualPrice += pitem.OrderPrice.Value * pitem.Quantity; } } //5.加载采购单收货信息: poInfo.ReceivedInfoList = new List <PurchaseOrderReceivedInfo>(); poInfo.ReceivedInfoList = ProductPurchaseDA.LoadPurchaseOrderReceivedInfo(poInfo.SysNo.Value); foreach (PurchaseOrderReceivedInfo revInfo in poInfo.ReceivedInfoList) { foreach (PurchaseOrderItemInfo item in poInfo.POItems) { if (revInfo.ProductSysNo == item.ProductSysNo) { revInfo.PurchaseQty = (item.PurchaseQty.HasValue ? item.PurchaseQty.Value : 0); revInfo.WaitInQty = revInfo.PurchaseQty - revInfo.ReceivedQuantity; } } } //返回PO实体: return(poInfo); }