예제 #1
0
        public void TestEventCRUD()
        {
            IEvent e    = CreateEvent(EventType.Wedding);
            var    ep   = new EventProcessor(e);
            var    save = ep.Create().Result;

            Assert.IsTrue(save.Data != null && save.Data.Id != Guid.Empty, "Event save failed.");

            var one = ep.FetchById().Result;

            Assert.IsTrue(one.Data != null, "Event fetch failed.");

            var delete = ep.Delete().Result;

            one = ep.FetchById().Result;
            Assert.IsTrue(one.Data == null, "Event delete failed.");

            var vp = new VendorProcessor(e.Arrangements[0].Vendor.Id);
            var d  = vp.Delete().Result;
            var o  = vp.FetchById().Result;

            Assert.IsTrue(o.Data == null, "Vendor delete failed.");

            var uHelper = new UserProcessor(e.Arrangements[0].Vendor.Id);
            var uOne    = uHelper.FetchById().Result;

            Assert.IsTrue(uOne.Data == null, "User not deleted from vendor delete.");
        }
예제 #2
0
        public List <VendorHistoryLog> LoadVendorHistoryLogBySysNo(int vendorSysNo)
        {
            VendorInfo newVendorInfo = new VendorInfo()
            {
                SysNo = vendorSysNo
            };

            return(VendorProcessor.LoadVendorHistoryLogInfo(newVendorInfo));
        }
 private dynamic GetProcessorById(UserRequest req)
 {
     dynamic proc = null;
     if (!req.IsVendor)
     {
         proc = new UserProcessor(req.Id);
     }
     else
     {
         proc = new VendorProcessor(req.Id);
     }
     return proc;
 }
 private dynamic GetSaveProcessor(UserRequest req)
 {
     dynamic proc = null;
     if (!req.IsVendor)
     {
         IUser u = new User();
         req.CopyRequestToUser(u);
         proc = new UserProcessor(u);
     }
     else
     {
         IVendor v = VendorBase.GetVendorFromType(req.VendorType);
         req.CopyRequestToUser(v);
         proc = new VendorProcessor(v);
     }
     return proc;
 }
예제 #5
0
        private IEvent CreateEvent(EventType type)
        {
            IEvent e = EventBase.GetEventFromType(type);

            e.Name      = "Wedding Sample";
            e.StartTime = DateTime.Today.AddMonths(1);
            e.EndTime   = e.StartTime.AddHours(6);
            e.Contact.Clone(CreateContact());
            e.Venue.Clone(e.Contact.Address);
            var     a      = CreateArrangement();
            IVendor vendor = CreateVendor(VendorType.Photographer);

            var h = new VendorProcessor(vendor);
            var s = h.Create().Result;

            a.Vendor = s.Data;
            e.Arrangements.Add(a);

            return(e);
        }
예제 #6
0
        public void TestProjectCRUD()
        {
            IProject p = CreateProject();

            var pp   = new ProjectProcessor(p);
            var save = pp.Create().Result;

            Assert.IsTrue(save.Data != null && save.Data.Id != Guid.Empty, "Project save failed.");

            var one = pp.FetchById().Result;

            Assert.IsTrue(one.Data != null, "Project fetch failed.");

            var eHelper = new EventProcessor(p.Events[0].Id);
            var eOne    = eHelper.FetchById().Result;

            Assert.IsTrue(eOne.Data != null, "Event fetch failed.");

            var delete = pp.Delete().Result;

            one = pp.FetchById().Result;
            Assert.IsTrue(one.Data == null, "Project delete failed.");

            eOne = eHelper.FetchById().Result;
            Assert.IsTrue(eOne.Data == null, "Event delete failed from Project.");

            var vhelper = new VendorProcessor(p.Events[0].Arrangements[0].Vendor.Id);

            delete = vhelper.Delete().Result;

            var vendor = vhelper.FetchById().Result;

            Assert.IsTrue(one.Data == null, "Vendor delete failed.");

            var uHelper = new UserProcessor(p.Events[0].Arrangements[0].Vendor.Id);
            var user    = uHelper.FetchById().Result;

            Assert.IsTrue(user.Data == null, "User not deleted from vendor delete.");
        }
예제 #7
0
        public void TestVendorCRUD()
        {
            IVendor vendor = CreateVendor(VendorType.Photographer);

            var vp   = new VendorProcessor(vendor);
            var save = vp.Create().Result;

            Assert.IsTrue(save.Data != null && save.Data.Id != Guid.Empty, "Vendor save failed.");

            var one = vp.FetchById().Result;

            one.Data.Password = "******";
            Assert.IsTrue(one.Data != null && JsonConvert.SerializeObject(one.Data, Formatting.None).Equals(JsonConvert.SerializeObject(save.Data, Formatting.None)), "Vendor fetch failed.");

            var uHelper = new UserProcessor(save.Data.Id);
            var uOne    = uHelper.FetchById().Result;

            Assert.IsTrue(uOne.Data != null, "User not populated from vendor save.");

            var loggedIn = vp.Login().Result;

            Assert.IsTrue(loggedIn != null && loggedIn.Data != Guid.Empty, "Vendor login failed.");

            var delete = vp.Delete().Result;

            one = vp.FetchById().Result;
            Assert.IsTrue(one.Data == null, "Vendor delete failed.");

            uOne = uHelper.FetchById().Result;
            Assert.IsTrue(uOne.Data == null, "User not deleted from vendor delete.");

            var tp     = new TokenProcessor(loggedIn.Data);
            int result = tp.Delete().Result;
            var t      = tp.FetchById().Result;

            Assert.IsTrue(t.Data == null, "Token delete failed.");
        }
예제 #8
0
 public int UnHoldVendor(VendorInfo vendorInfo)
 {
     return(VendorProcessor.UnHoldVendor(vendorInfo));
 }
예제 #9
0
 public VendorInfo CreateNewVendor(VendorInfo newVendorInfo)
 {
     return(VendorProcessor.CreateVendor(newVendorInfo));
 }
예제 #10
0
 public VendorModifyRequestInfo WithDrawVendorFinanceInfo(VendorModifyRequestInfo info)
 {
     return(VendorProcessor.WithDrawVendorFinanceInfo(info));
 }
예제 #11
0
        /// <summary>
        /// 批量创建PO单:
        /// </summary>
        /// <param name="list"></param>
        public virtual BatchCreateBasketResultInfo BatchCreatePurchaseOrder(List <BasketItemsInfo> list)
        {
            List <ProductPMLine> tPMLineList = ExternalDomainBroker.GetProductLineInfoByPM(ServiceContext.Current.UserSysNo);
            bool tIsManager = list[0].IsManagerPM.Value;

            //如果没有产品线权限并且不是高级PM,则不允许创建
            //if ((tPMLineList == null || tPMLineList.Count == 0) && !tIsManager)
            //{
            //    throw new BizException(GetMessageString("Basket_PMNoLine"));
            //}
            FillProductLineInfo(list);
            string     createCompanyCode = string.Empty;
            var        conditionList     = new List <BasketItemsInfo>();
            List <int> POSysNo           = new List <int>();
            string     errorMsg          = "";
            //根据编号加载商品信息:
            string exceptionMsg = CheckBasketInfo(ref list);

            errorMsg += exceptionMsg;
            List <PurchaseOrderInfo> POs = new List <PurchaseOrderInfo>();

            //if (!string.IsNullOrEmpty(exceptionMsg) || exceptionMsg.Length > 0)
            //{
            //    throw new BizException(exceptionMsg);
            //}
            list.ForEach(x =>
            {
                //是否中转:
                if (x.IsTransfer == 1)
                {
                    x.StockSysNo = 5000 + x.StockSysNo;
                }
                createCompanyCode = x.CompanyCode;
            });

            //默认采购单类型为:正常;增值税率:0.17;结算货币:人民币(1);送货类型:厂房直送(12)
            var group = from item in list
                        group item by new { item.IsConsign, item.StockSysNo, item.VendorSysNo, item.PMSysNo, item.IsTransfer, item.ProductLine_SysNo }
            into g
                select new
            {
                Key        = g.Key,
                ResultList = g
            };

            foreach (var item in group)
            {
                POs.Clear();
                var ZPO = from i in item.ResultList
                          where i.Quantity >= 0
                          select i;
                var FPO = from i in item.ResultList
                          where i.Quantity < 0
                          select i;
                //正采购
                #region ZPO
                if (ZPO.Count() > 0)
                {
                    PurchaseOrderInfo modelPO = GetInitPO(createCompanyCode);
                    modelPO.VendorInfo = VendorProcessor.LoadVendorInfo(item.Key.VendorSysNo.Value);

                    modelPO.PurchaseOrderBasicInfo.ConsignFlag = (PurchaseOrderConsignFlag)Enum.Parse(typeof(PurchaseOrderConsignFlag), item.Key.IsConsign.Value.ToString());
                    if (null == modelPO.PurchaseOrderBasicInfo.StockInfo)
                    {
                        modelPO.PurchaseOrderBasicInfo.StockInfo = new BizEntity.Inventory.StockInfo();
                    }
                    modelPO.PurchaseOrderBasicInfo.StockInfo.SysNo = item.Key.StockSysNo;
                    if (null == modelPO.PurchaseOrderBasicInfo.ProductManager)
                    {
                        modelPO.PurchaseOrderBasicInfo.ProductManager = new BizEntity.IM.ProductManagerInfo();
                    }
                    //注释原因:因加入产品线验证,此处的归属PM应为产品线的PM
                    //modelPO.PurchaseOrderBasicInfo.ProductManager.SysNo = item.Key.PMSysNo;
                    modelPO.PurchaseOrderBasicInfo.PurchaseOrderType = PurchaseOrderType.Normal;
                    modelPO.PurchaseOrderBasicInfo.PayType.SysNo     = VendorDA.LoadVendorPayPeriodType(item.Key.VendorSysNo);
                    string companyCode = string.Empty;
                    foreach (var POitem in ZPO)
                    {
                        modelPO.PurchaseOrderBasicInfo.PurchaseOrderType = PurchaseOrderType.Normal;
                        //增加产品线和主PM字段回写
                        modelPO.PurchaseOrderBasicInfo.IsManagerPM          = POitem.IsManagerPM;
                        modelPO.PurchaseOrderBasicInfo.ProductManager.SysNo = POitem.PMSysNo;
                        modelPO.PurchaseOrderBasicInfo.ProductLineSysNo     = POitem.ProductLine_SysNo;
                        modelPO.POItems.Add(new PurchaseOrderItemInfo()
                        {
                            ItemSysNo      = POitem.ItemSysNo,
                            ProductSysNo   = POitem.ProductSysNo,
                            Quantity       = 0,
                            ReadyQuantity  = POitem.ReadyQuantity,
                            OrderPrice     = POitem.OrderPrice,
                            ProductID      = POitem.ProductID,
                            PurchaseQty    = POitem.Quantity,
                            UnitCost       = Decimal.Round(POitem.OrderPrice.Value * modelPO.PurchaseOrderBasicInfo.ExchangeRate.Value, 2),
                            Weight         = POitem.Weight,
                            ApportionAddOn = 0,
                            ReturnCost     = 0,
                            BriefName      = POitem.BriefName,
                            AvailableQty   = BasketDA.AvailableQtyByProductSysNO(POitem.ProductSysNo.Value),
                            M1             = BasketDA.M1ByProductSysNO(POitem.ProductSysNo.Value),
                            JingDongPrice  = BasketDA.JDPriceByProductSysNO(POitem.ProductSysNo.Value),
                            CompanyCode    = POitem.CompanyCode
                        });
                        companyCode = POitem.CompanyCode;
                    }
                    modelPO.CompanyCode = companyCode;
                    POs.Add(modelPO);
                }
                #endregion

                //负采购
                #region FPO
                if (FPO.Count() > 0)
                {
                    PurchaseOrderInfo modelPO = GetInitPO(createCompanyCode);
                    modelPO.VendorInfo = VendorProcessor.LoadVendorInfo(item.Key.VendorSysNo.Value);
                    modelPO.PurchaseOrderBasicInfo.ConsignFlag          = (PurchaseOrderConsignFlag)Enum.Parse(typeof(PurchaseOrderConsignFlag), item.Key.IsConsign.Value.ToString());
                    modelPO.PurchaseOrderBasicInfo.StockInfo.SysNo      = item.Key.StockSysNo;
                    modelPO.PurchaseOrderBasicInfo.ProductManager.SysNo = item.Key.PMSysNo;
                    modelPO.PurchaseOrderBasicInfo.PurchaseOrderType    = PurchaseOrderType.Negative;
                    modelPO.PurchaseOrderBasicInfo.PayType.SysNo        = VendorDA.LoadVendorPayPeriodType(item.Key.VendorSysNo);
                    modelPO.PurchaseOrderBasicInfo.MemoInfo.Memo        = GetMessageString("Basket_Memo_FPO");
                    string companyCode = string.Empty;
                    foreach (var POitem in FPO)
                    {
                        //增加产品线和主PM字段回写
                        modelPO.PurchaseOrderBasicInfo.IsManagerPM          = POitem.IsManagerPM;
                        modelPO.PurchaseOrderBasicInfo.ProductManager.SysNo = POitem.ProductLine_PMSysNo;
                        modelPO.PurchaseOrderBasicInfo.ProductLineSysNo     = POitem.ProductLine_SysNo;
                        modelPO.POItems.Add(new PurchaseOrderItemInfo()
                        {
                            ItemSysNo      = POitem.ItemSysNo,
                            ProductSysNo   = POitem.ProductSysNo,
                            Quantity       = 0,
                            OrderPrice     = POitem.OrderPrice,
                            ProductID      = POitem.ProductID,
                            PurchaseQty    = POitem.Quantity,
                            UnitCost       = Decimal.Round(POitem.OrderPrice.Value * modelPO.PurchaseOrderBasicInfo.ExchangeRate.Value, 2),
                            Weight         = POitem.Weight,
                            ApportionAddOn = 0,
                            ReturnCost     = 0,
                            BriefName      = POitem.BriefName,
                            AvailableQty   = BasketDA.AvailableQtyByProductSysNO(POitem.ProductSysNo.Value),
                            M1             = BasketDA.M1ByProductSysNO(POitem.ProductSysNo.Value),
                            JingDongPrice  = BasketDA.JDPriceByProductSysNO(POitem.ProductSysNo.Value),
                            CompanyCode    = POitem.CompanyCode
                        });
                        companyCode = POitem.CompanyCode;
                    }
                    modelPO.CompanyCode = companyCode;
                    POs.Add(modelPO);
                }
                #endregion
                int poItemCountNumber = 80;

                if (!string.IsNullOrEmpty(AppSettingManager.GetSetting("PO", "PoItemCountNumber")))
                {
                    poItemCountNumber = int.Parse(AppSettingManager.GetSetting("PO", "PoItemCountNumber"));
                }
                foreach (var poentity in POs)
                {
                    try
                    {
                        if (poentity.PurchaseOrderBasicInfo.MemoInfo == null)
                        {
                            poentity.PurchaseOrderBasicInfo.MemoInfo = new PurchaseOrderMemoInfo();
                        }
                        if (poentity.PurchaseOrderBasicInfo.ETATimeInfo == null)
                        {
                            poentity.PurchaseOrderBasicInfo.ETATimeInfo = new PurchaseOrderETATimeInfo();
                        }
                        if (poentity.EIMSInfo == null)
                        {
                            poentity.EIMSInfo = new PurchaseOrderEIMSInfo()
                            {
                                EIMSInfoList = new List <EIMSInfo>()
                            };
                        }
                        if (poentity.ReceivedInfoList == null)
                        {
                            poentity.ReceivedInfoList = new List <PurchaseOrderReceivedInfo>();
                        }
                        //如果在一个po单中Item超过80种,则自动拆分 每80种商品一单
                        if (poentity.POItems.Count > poItemCountNumber)
                        {
                            //string listvalue = SerializeHelper.JsonSerializer(poentity);
                            PurchaseOrderInfo posResult = poentity;
                            //SerializeHelper.JsonDeserialize<IPP.Oversea.CN.POASNMgmt.WebModel.ViewModels.PO.POModel>(listvalue);
                            var poitems = new List <PurchaseOrderItemInfo>();
                            for (int i = 1; i <= poentity.POItems.Count; i++)
                            {
                                poitems.Add(poentity.POItems[i - 1]);
                                if ((i % poItemCountNumber == 0 && i != 0) || i == poentity.POItems.Count)
                                {
                                    posResult.POItems = poitems;
                                    var poResult = PurchaseOrderProcessor.CreatePO(posResult);
                                    POSysNo.Add(poResult.SysNo.Value);
                                    poitems.Clear();
                                }
                            }
                        }
                        else
                        {
                            var poResult = PurchaseOrderProcessor.CreatePO(poentity);
                            POSysNo.Add(poResult.SysNo.Value);
                        }
                    }
                    catch (Exception ex)
                    {
                        errorMsg += ex.Message + Environment.NewLine;
                    }
                }
            }
            return(new BatchCreateBasketResultInfo()
            {
                SucessPOSysNos = POSysNo, ErrorMsg = errorMsg
            });
        }
예제 #12
0
 public VendorModifyRequestInfo ApproveVendorFinanceInfo(VendorModifyRequestInfo info)
 {
     return(VendorProcessor.ApproveVendorFinanceInfo(info));
 }
예제 #13
0
 public VendorModifyRequestInfo DeclineVendorFinanceInfo(VendorModifyRequestInfo info)
 {
     return(VendorProcessor.DeclineVendorFinanceInfo(info));
 }
예제 #14
0
 public void ApproveVendor(VendorApproveInfo vendorApproveInfo)
 {
     VendorProcessor.ApproveVendor(vendorApproveInfo);
 }
예제 #15
0
 public VendorModifyRequestInfo RequestForApprovalVendorFinanceInfo(VendorModifyRequestInfo info)
 {
     return(VendorProcessor.RequestForApprovalVendorFinanceInfo(info));
 }
예제 #16
0
 public VendorModifyRequestInfo CancelVendorManufacturer(VendorModifyRequestInfo info)
 {
     return(VendorProcessor.CancelVendorManufacturer(info));
 }
예제 #17
0
 public VendorModifyRequestInfo PassVendorManufacturer(VendorModifyRequestInfo info)
 {
     return(VendorProcessor.PassVendorManufacturer(info));
 }
예제 #18
0
 public VendorInfo EditVendorInfo(VendorInfo info)
 {
     return(VendorProcessor.EditVendor(info));
 }
예제 #19
0
 public VendorHistoryLog CreateVendorHistoryLog(VendorHistoryLog logInfo)
 {
     return(VendorProcessor.CreateVendorHistoryLog(logInfo));
 }
예제 #20
0
 public VendorInfo LoadVendorInfoBySysNo(int vendorSysNo)
 {
     return(VendorProcessor.LoadVendorInfo(vendorSysNo));
 }
예제 #21
0
 public List <int> HoldOrUnholdVendorPM(int vendorSysNo, int holdUserSysNo, string reason, List <int> holdSysNoList, List <int> unHoldSysNoList, string companyCode)
 {
     return(VendorProcessor.HoldOrUnholdVendorPM(vendorSysNo, holdUserSysNo, reason, holdSysNoList, unHoldSysNoList, companyCode));
 }
예제 #22
0
 public void UpdateVendorEmailAddress(VendorInfo vendorInfo)
 {
     VendorProcessor.UpdateVendorEmail(vendorInfo);
 }