Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <summary>
        /// 取消审核  -采购单预计到货时间
        /// </summary>
        /// <param name="info"></param>
        /// <param name="callback"></param>
        public void CancelETAInfo(PurchaseOrderETATimeInfo info, EventHandler <RestClientEventArgs <PurchaseOrderETATimeInfo> > callback)
        {
            string relativeUrl = "POService/PurchaseOrder/CancelPurchaseOrderETAInfo";

            info.EditUser = CPApplication.Current.LoginUser.DisplayName;
            restClient.Update <PurchaseOrderETATimeInfo>(relativeUrl, info, callback);
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
        public static void UpdatePOETAInfo(PurchaseOrderETATimeInfo poetaEntity)
        {
            DataCommand command = DataCommandManager.GetDataCommand("UpdatePOETAInfo");

            command.SetParameterValue("@POSysNo", poetaEntity.POSysNo);
            command.SetParameterValue("@Status", poetaEntity.Status);
            command.SetParameterValue("@EditUser", poetaEntity.EditUser);
            command.ExecuteNonQuery();
        }
Beispiel #5
0
        public static PurchaseOrderETATimeInfo LoadPOETATimeInfo(int poSysNo)
        {
            CustomDataCommand dataCommand = DataCommandManager.CreateCustomDataCommandFromConfig("GetPOETA");

            dataCommand.SetParameterValue("@POSysNo", poSysNo);
            PurchaseOrderETATimeInfo poETA = dataCommand.ExecuteEntity <PurchaseOrderETATimeInfo>();

            return(poETA);
        }
Beispiel #6
0
        public static void CreatePOETAInfo(PurchaseOrderETATimeInfo poetaEntity)
        {
            DataCommand command = DataCommandManager.GetDataCommand("CreatePOETAInfo");

            command.SetParameterValue("@POSysNo", poetaEntity.POSysNo);
            command.SetParameterValue("@ETATime", poetaEntity.ETATime);
            command.SetParameterValue("@HalfDay", poetaEntity.HalfDay.ToString());
            command.SetParameterValue("@Status", poetaEntity.Status);
            command.SetParameterValue("@InUser", poetaEntity.InUser);
            command.ExecuteNonQuery();
        }
Beispiel #7
0
        /// <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);
        }
Beispiel #8
0
        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);
        }
 public PurchaseOrderETATimeInfo SubmitPurchaseOrderETAInfo(PurchaseOrderETATimeInfo info)
 {
     return(ObjectFactory <PurchaseOrderAppService> .Instance.SubmitETAInfo(info));
 }
 public PurchaseOrderETATimeInfo CancelPurchaseOrderETAInfo(PurchaseOrderETATimeInfo info)
 {
     return(ObjectFactory <PurchaseOrderAppService> .Instance.CancelETAInfo(info));
 }
Beispiel #11
0
 public virtual PurchaseOrderETATimeInfo CancelETAInfo(PurchaseOrderETATimeInfo etaInfo)
 {
     return(PurchaseOrderProcessor.CancelETAInfo(etaInfo));
 }
Beispiel #12
0
 public virtual PurchaseOrderETATimeInfo PassETAInfo(PurchaseOrderETATimeInfo etaInfo)
 {
     return(PurchaseOrderProcessor.PassETAInfo(etaInfo));
 }
Beispiel #13
0
 public virtual PurchaseOrderETATimeInfo SubmitETAInfo(PurchaseOrderETATimeInfo etaInfo)
 {
     return(PurchaseOrderProcessor.SubmitETAInfo(etaInfo));
 }