Exemple #1
0
        public Response <bool> AddQuotedPrices(AddQuotedPriceRequest request)
        {
            Response <bool> response = new Response <bool>();

            if (request == null || request.QuotedPrices_New == null || !request.QuotedPrices_New.Any())
            {
                ArgumentNullException ex = new ArgumentNullException("AddQuotedPrices request");
                LogError(ex);
                response.ErrorCode = ErrorCode.Argument;
                response.Exception = ex;
                return(response);
            }

            try
            {
                new QuotedPriceAccessor().AddQuotedPrices(request.QuotedPrices_New);
                response.IsSuccess = true;
            }
            catch (Exception ex)
            {
                LogError(ex);
                response.IsSuccess = false;
                response.ErrorCode = ErrorCode.Technical;
            }

            return(response);
        }
        public ActionResult Create(QuotedPriceViewModel vm)
        {
            vm.QuotedPriceDetails  = vm.SettedConfigs.FromJsonStringTo <IEnumerable <QuotedPriceDetail> >();
            vm.RelatedCustomerID   = vm.Target == 0 ? vm.TargetID : vm.RelatedCustomerID;
            vm.RelatedCustomerName = vm.TargetID == 0 ? vm.TargetName : vm.RelatedCustomerName;

            AddQuotedPriceRequest request = new AddQuotedPriceRequest()
            {
                QuotedPrices = vm.QuotedPriceDetails.Select(q => new QuotedPrice()
                {
                    ProjectID            = base.UserInfo.ProjectID,
                    ProjectName          = base.UserInfo.ProjectName,
                    Target               = vm.Target,
                    TargetID             = vm.TargetID,
                    TargetName           = vm.TargetName,
                    ShipperTypeID        = vm.ShipperTypeID,
                    ShipperTypeName      = vm.ShipperTypeName,
                    PodTypeID            = vm.PodTypeID,
                    PodTypeName          = vm.PodTypeName,
                    TplOrTtlID           = vm.TplOrTtlID,
                    TplOrTtlName         = vm.TplOrTtlName,
                    TransportationLineID = vm.TransportationLineID,
                    StartCityID          = vm.StartCityID,
                    StartCityName        = vm.StartCityName,
                    EndCityID            = vm.EndCityID,
                    EndCityName          = vm.EndCityName,
                    SegmentDetailID      = q.SegmentDetailID,
                    StartVal             = q.StartVal,
                    EndVal               = q.EndVal,
                    MinPrice             = vm.MinPrice ?? 0,
                    Point = vm.Point ?? 0,
                    Price = q.Price,
                    EffectiveStartTime = vm.EffectiveStartTime,
                    EffectiveEndTime   = vm.EffectiveEndTime,
                    Creator            = base.UserInfo.Name,
                    CreateTime         = DateTime.Now,
                    Remark             = vm.Remark,
                    State               = true,
                    RelatedCustomerID   = vm.RelatedCustomerID,
                    RelatedCustomerName = vm.RelatedCustomerName,
                    EmptyCarryPrice     = vm.EmptyCarryPrice ?? 0,
                    Decimal1            = vm.Decimal1 ?? 0,
                    Decimal2            = vm.Decimal2 ?? 0
                })
            };

            var response = new QuotedPriceService().AddQuotedPrice(request);

            if (response.IsSuccess)
            {
                ApplicationConfigHelper.RefreshProjectQuotedPrice(base.UserInfo.ProjectID, vm.Target, vm.TargetID, vm.RelatedCustomerID);
                return(RedirectToAction("Create", new { id = vm.Target, message = "新增报价成功,继续增加" }));
            }

            return(Error("新增" + (vm.Target == 0 ? "客户" : "承运商") + "报价失败!"));
        }
        public string ExeclQuotedPrices()
        {
            if (Request.Files.Count > 0)
            {
                HttpPostedFileBase hpf = Request.Files[0] as HttpPostedFileBase;
                if (hpf.ContentLength > 0)
                {
                    //DataSet ds = this.GetDataFromExcel(hpf);
                    DataSet ds = EPPlusOperation.ReadExcelToDataSet(hpf);
                    if (ds != null && ds.Tables[0] != null)
                    {
                        IList <QuotedPrices> qprice = new List <QuotedPrices>();
                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            qprice.Add(new QuotedPrices()
                            {
                                ProjectID           = base.UserInfo.ProjectID,
                                ProjectName         = base.UserInfo.ProjectName,
                                Target              = Convert.ToInt32(ds.Tables[0].Rows[i]["Target"].ToString()),
                                TargetName          = ds.Tables[0].Rows[i]["TargetName"].ToString(),
                                StartCityName       = ds.Tables[0].Rows[i]["StartCityName"].ToString(),
                                EndCityName         = ds.Tables[0].Rows[i]["EndCityName"].ToString(),
                                PodTypeName         = ds.Tables[0].Rows[i]["PodTypeName"].ToString(),
                                ShipperTypeName     = ds.Tables[0].Rows[i]["ShipperTypeName"].ToString(),
                                P200                = Convert.ToDecimal(ds.Tables[0].Rows[i]["P200"].ToString()),
                                P500                = Convert.ToDecimal(ds.Tables[0].Rows[i]["P500"].ToString()),
                                P1000               = Convert.ToDecimal(ds.Tables[0].Rows[i]["P1000"].ToString()),
                                P2000               = Convert.ToDecimal(ds.Tables[0].Rows[i]["P2000"].ToString()),
                                P5000               = Convert.ToDecimal(ds.Tables[0].Rows[i]["P5000"].ToString()),
                                P10000              = Convert.ToDecimal(ds.Tables[0].Rows[i]["P10000"].ToString()),
                                P20000              = Convert.ToDecimal(ds.Tables[0].Rows[i]["P20000"].ToString()),
                                P30000              = Convert.ToDecimal(ds.Tables[0].Rows[i]["P30000"].ToString()),
                                P99999              = Convert.ToDecimal(ds.Tables[0].Rows[i]["P99999"].ToString()),
                                RelatedCustomerName = ds.Tables[0].Rows[i]["RelatedCustomerName"].ToString()
                            });
                        }
                        AddQuotedPriceRequest request = new AddQuotedPriceRequest()
                        {
                            QuotedPrices_New = qprice.Select(q => new QuotedPrices()
                            {
                                ProjectID           = base.UserInfo.ProjectID,
                                ProjectName         = base.UserInfo.ProjectName,
                                Target              = q.Target,
                                TargetName          = q.TargetName,
                                StartCityName       = q.StartCityName,
                                EndCityName         = q.EndCityName,
                                PodTypeName         = q.PodTypeName,
                                ShipperTypeName     = q.ShipperTypeName,
                                P200                = q.P200 ?? 0,
                                P500                = q.P500 ?? 0,
                                P1000               = q.P1000 ?? 0,
                                P2000               = q.P2000 ?? 0,
                                P5000               = q.P5000 ?? 0,
                                P10000              = q.P10000 ?? 0,
                                P20000              = q.P20000 ?? 0,
                                P30000              = q.P30000 ?? 0,
                                P99999              = q.P99999 ?? 0,
                                RelatedCustomerName = q.RelatedCustomerName
                            })
                        };
                        var response = new QuotedPriceService().AddQuotedPrices(request);
                        if (response.IsSuccess)
                        {
                            return(new { result = "导入成功", IsSuccess = true }.ToJsonString());
                        }
                    }

                    return(new { result = "<h3>导入失败!</h3><br/>excel内容有误!", IsSuccess = false }.ToString());
                }

                return(new { result = "文件内容为空", IsSuccess = false }.ToString());
            }

            return(new { result = "请选择文件", IsSuccess = false }.ToString());
        }
        public string ExeclQuotedPrice()
        {
            if (Request.Files.Count > 0)
            {
                HttpPostedFileBase hpf = Request.Files[0] as HttpPostedFileBase;
                if (hpf.ContentLength > 0)
                {
                    //DataSet ds = this.GetDataFromExcel(hpf);
                    DataSet ds = EPPlusOperation.ReadExcelToDataSet(hpf);
                    if (ds != null && ds.Tables[0] != null)
                    {
                        IList <QuotedPrice> Info = new List <QuotedPrice>();
                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            Info.Add(new QuotedPrice()
                            {
                                ProjectID            = base.UserInfo.ProjectID,
                                ProjectName          = base.UserInfo.ProjectName,
                                Target               = Convert.ToInt32(ds.Tables[0].Rows[i]["Target"]),
                                TargetID             = Convert.ToInt32(ds.Tables[0].Rows[i]["TargetID"]),
                                TargetName           = ds.Tables[0].Rows[i]["TargetName"].ToString(),
                                ShipperTypeID        = 0,
                                ShipperTypeName      = ds.Tables[0].Rows[i]["ShipperTypeName"].ToString(),
                                PodTypeID            = 0,
                                PodTypeName          = ds.Tables[0].Rows[i]["PodTypeName"].ToString(),
                                TplOrTtlID           = 0,
                                TplOrTtlName         = ds.Tables[0].Rows[i]["TplOrTtlName"].ToString(),
                                TransportationLineID = 0,
                                StartCityID          = 0,
                                StartCityName        = ds.Tables[0].Rows[i]["StartCityName"].ToString(),
                                EndCityID            = 0,
                                EndCityName          = ds.Tables[0].Rows[i]["EndCityName"].ToString(),
                                SegmentDetailID      = 0,
                                StartVal             = Convert.ToInt32(ds.Tables[0].Rows[i]["StartVal"]),
                                EndVal               = Convert.ToInt32(ds.Tables[0].Rows[i]["EndVal"]),
                                //hjq
                                MinPrice            = 0,
                                Point               = 0,// Convert.ToDecimal(ds.Tables[0].Rows[i]["Point"]),
                                Price               = Convert.ToDecimal(ds.Tables[0].Rows[i]["Price"]),
                                EffectiveStartTime  = Convert.ToDateTime(ds.Tables[0].Rows[i]["EffectiveStartTime"]),
                                EffectiveEndTime    = null,
                                Creator             = base.UserInfo.Name,
                                CreateTime          = DateTime.Now,
                                Remark              = "",
                                State               = true,
                                RelatedCustomerID   = Convert.ToInt32(ds.Tables[0].Rows[i]["RelatedCustomerID"]),
                                RelatedCustomerName = ds.Tables[0].Rows[i]["RelatedCustomerName"].ToString(),
                                //hjq
                                EmptyCarryPrice = 0,
                                Decimal1        = 0,
                                Decimal2        = 0
                            });
                        }
                        AddQuotedPriceRequest request = new AddQuotedPriceRequest()
                        {
                            QuotedPrices = Info.Select(q => new QuotedPrice()
                            {
                                ProjectID            = base.UserInfo.ProjectID,
                                ProjectName          = base.UserInfo.ProjectName,
                                Target               = q.Target,
                                TargetID             = q.TargetID,
                                TargetName           = q.TargetName,
                                ShipperTypeID        = q.ShipperTypeID,
                                ShipperTypeName      = q.ShipperTypeName,
                                PodTypeID            = q.PodTypeID,
                                PodTypeName          = q.PodTypeName,
                                TplOrTtlID           = q.TplOrTtlID,
                                TplOrTtlName         = q.TplOrTtlName,
                                TransportationLineID = q.TransportationLineID,
                                StartCityID          = q.StartCityID,
                                StartCityName        = q.StartCityName,
                                EndCityID            = q.EndCityID,
                                EndCityName          = q.EndCityName,
                                SegmentDetailID      = q.SegmentDetailID,
                                StartVal             = q.StartVal,
                                EndVal               = q.EndVal,
                                MinPrice             = q.MinPrice ?? 0,
                                Point = q.Point ?? 0,
                                Price = q.Price,
                                EffectiveStartTime = q.EffectiveStartTime,
                                EffectiveEndTime   = q.EffectiveEndTime,
                                Creator            = base.UserInfo.Name,
                                CreateTime         = DateTime.Now,
                                Remark             = q.Remark,
                                State               = true,
                                RelatedCustomerID   = q.RelatedCustomerID,
                                RelatedCustomerName = q.RelatedCustomerName,
                                EmptyCarryPrice     = q.EmptyCarryPrice ?? 0,
                                Decimal1            = q.Decimal1 ?? 0,
                                Decimal2            = q.Decimal2 ?? 0
                            })
                        };
                        // var groupedInfos = from g in Info select new QuotedPrice() { ID = g.ID, Remark = g.Remark };
                        var response = new QuotedPriceService().AddQuotedPrice(request);

                        if (response.IsSuccess)
                        {
                            return(new { result = "导入成功!", IsSuccess = true }.ToJsonString());
                        }
                    }

                    return(new { result = "<h3>导入失败!</h3><br/>excel内容有误!", IsSuccess = false }.ToString());
                }

                return(new { result = "文件内容为空", IsSuccess = false }.ToString());
            }

            return(new { result = "请选择文件", IsSuccess = false }.ToString());
        }