public string ToPlanBill(List <XMOrderInfoProductDetails> list, XMOrderInfo Info, int WarehouseID, int type, string msg)
        {
            if (type == 1 || type == 3)
            {
                bool ProductExist = false;
                if (GetPlanBillResult(list, Info, null, WarehouseID, type))//排单成功
                {
                    ProductExist = true;
                }

                if (!ProductExist)
                {
                    msg += "订单:" + Info.OrderCode + "," + ManufacturersCodeRecord + "商品库存不足!<br/>";
                }
            }
            else if (type == 2 || type == 4)
            {
                List <int?> Ids = new List <int?>();
                var         IDs = list.Select(x => x.ID).ToList();
                var         SpareAddressList = base.XMSpareAddressService.GetXMSpareAddressListByIDs(IDs, 709);
                foreach (var info in list)
                {
                    if (Ids.Contains(info.ID))
                    {
                        continue;
                    }
                    var spareAddress = base.XMSpareAddressService.GetXMSpareAddressByParm(info.ID, 709);
                    if (spareAddress != null)
                    {
                        //不同产品,相同地址
                        var SpareAddress        = SpareAddressList.Where(x => x.FullName == spareAddress.FullName && x.Mobile == spareAddress.Mobile && x.DeliveryAddress == spareAddress.DeliveryAddress).ToList();
                        var OrderInfoProductIds = SpareAddress.Select(x => x.OtherID).ToList();
                        var List = list.Where(x => OrderInfoProductIds.Contains(x.ID)).ToList();
                        Ids.AddRange(OrderInfoProductIds);

                        bool ProductExist = false;
                        if (GetPlanBillResult(List, Info, spareAddress, WarehouseID, type))//排单成功
                        {
                            ProductExist = true;
                        }

                        if (!ProductExist)
                        {
                            msg += "订单:" + Info.OrderCode + "," + ManufacturersCodeRecord + "商品库存不足!<br/>";
                        }
                    }
                }
            }
            return(msg);
        }
        public XMOrderInfo GetXMOrderInfoValue(XMOrderInfo OrderInfo)
        {
            XMOrderInfo a = new XMOrderInfo();

            a.AppointDeliveryTime = OrderInfo.AppointDeliveryTime;
            a.FullName            = OrderInfo.FullName;
            a.Mobile = OrderInfo.Mobile;
            a.Tel    = OrderInfo.Tel;
            a.DeliveryAddressSpare = OrderInfo.DeliveryAddressSpare;
            a.Province             = OrderInfo.Province;
            a.City            = OrderInfo.City;
            a.County          = OrderInfo.County;
            a.DeliveryAddress = OrderInfo.DeliveryAddress;
            return(a);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                string   OrderID = CommonHelper.QueryString("ID");
                string[] status  = new string[] { "TRADE_FINISHED", "TRADE_CLOSED", "TRADE_CLOSED_BY_TAOBAO",
                                                  "FINISHED_L", "TRADE_CANCELED", "FINISHED_L", "TRADE_CANCELED", "STATUS_97", "STATUS_25",
                                                  "ORDER_FINISH", "ORDER_CANCEL", "已取消", "30", "40", "DS_DEAL_END_NORMAL", "已完成" };

                XMOrderInfo entityOrderInfo = XMOrderInfoService.GetXMOrderInfoByID(int.Parse(OrderID));
                if (status.Contains(entityOrderInfo.OrderStatus))
                {
                    btn_SaveClick.Enabled        = false;
                    btn_ReCalculateClick.Enabled = false;
                }
            }
        }
        public HozestERP.BusinessLogic.ManageProject.XMDelivery ToInsertDelivery(XMOrderInfo Info, XMSpareAddress SpareAddress, int type)
        {
            HozestERP.BusinessLogic.ManageProject.XMDelivery info = new HozestERP.BusinessLogic.ManageProject.XMDelivery();
            info.DeliveryTypeId = 480;                                        //正常
            info.DeliveryNumber = DateTime.Now.ToString("yyyyMMddHHmmssfff"); //发货单号;
            info.OrderCode      = Info.OrderCode;
            if (type == 1 || type == 3)
            {
                info.FullName        = Info.FullName;
                info.Mobile          = Info.Mobile;
                info.Tel             = Info.Tel;
                info.Province        = Info.Province;
                info.City            = Info.City;
                info.County          = Info.County;
                info.DeliveryAddress = Info.DeliveryAddress;
            }
            else if (type == 2 || type == 4)
            {
                info.FullName        = SpareAddress.FullName;
                info.Mobile          = SpareAddress.Mobile;
                info.Tel             = SpareAddress.Tel;
                info.Province        = SpareAddress.Province;
                info.City            = SpareAddress.City;
                info.County          = SpareAddress.County;
                info.DeliveryAddress = SpareAddress.DeliveryAddress;
            }

            info.OrderRemarks  = Info.CustomerServiceRemark;
            info.Shipper       = 0;
            info.Price         = 0;
            info.PrintBatch    = 0;
            info.PrintQuantity = 0;
            info.IsDelivery    = false;
            info.IsEnabled     = false;
            info.CreateDate    = DateTime.Now;
            info.CreateId      = HozestERPContext.Current.User.CustomerID;
            info.UpdateDate    = DateTime.Now;
            info.UpdateId      = HozestERPContext.Current.User.CustomerID;
            //base.XMDeliveryService.InsertXMDelivery(info);
            return(info);
        }
 public void GetOrderInfoDifference(XMOrderInfo info, XMOrderInfo Info)
 {
     if (info.AppointDeliveryTime != Info.AppointDeliveryTime)
     {
         AddXMOrderInfoOperatingRecord("修改收货人信息-预约发货时间", info.AppointDeliveryTime.ToString(), Info.AppointDeliveryTime.ToString());
     }
     if (info.FullName != Info.FullName)
     {
         AddXMOrderInfoOperatingRecord("修改收货人信息-姓名", info.FullName, Info.FullName);
     }
     if (info.Mobile != Info.Mobile)
     {
         AddXMOrderInfoOperatingRecord("修改收货人信息-手机", info.Mobile, Info.Mobile);
     }
     if (info.Tel != Info.Tel)
     {
         AddXMOrderInfoOperatingRecord("修改收货人信息-电话", info.Tel, Info.Tel);
     }
     if (info.DeliveryAddressSpare != Info.DeliveryAddressSpare)
     {
         AddXMOrderInfoOperatingRecord("修改收货人信息-备用地址", info.DeliveryAddressSpare, Info.DeliveryAddressSpare);
     }
     if (info.Province != Info.Province)
     {
         AddXMOrderInfoOperatingRecord("修改收货人信息-省", info.Province, Info.Province);
     }
     if (info.City != Info.City)
     {
         AddXMOrderInfoOperatingRecord("修改收货人信息-市", info.City, Info.City);
     }
     if (info.County != Info.County)
     {
         AddXMOrderInfoOperatingRecord("修改收货人信息-县", info.County, Info.County);
     }
     if (info.DeliveryAddress != Info.DeliveryAddress)
     {
         AddXMOrderInfoOperatingRecord("修改收货人信息-地址", info.DeliveryAddress, Info.DeliveryAddress);
     }
 }
        public bool GetPlanBillResult(List <XMOrderInfoProductDetails> list, XMOrderInfo Info, XMSpareAddress SpareAddress, int WarehouseID, int type)
        {
            ManufacturersCodeRecord = "";
            bool complete = true;

            HozestERP.BusinessLogic.ManageProject.XMDelivery delivery = ToInsertDelivery(Info, SpareAddress, type);
            delivery.XM_Delivery_Details = new List <XMDeliveryDetails>();

            foreach (var info in list)
            {
                var exist1 = base.XMInventoryInfoService.GetXMInventoryInfoByParm(info.TManufacturersCode, WarehouseID);//库存管理中的数据
                if (type == 1 || type == 2)
                {
                    var exist = base.XMXLMInventoryService.GetXMXLMInventoryListByParm(WarehouseID, info.TManufacturersCode, "");
                    if ((canXMLProject && exist.Count > 0 && exist[0].Inventory >= info.ProductNum) || (!canXMLProject && exist1 != null && exist1.StockNumber >= info.ProductNum))
                    {
                        if (delivery.Shipper == 0)
                        {
                            var product = base.XMProductDetailsService.GetXMProductListByTManufacturersCode(info.TManufacturersCode);
                            if (product != null && product.Count > 0)
                            {
                                delivery.Shipper = product[0].Shipper;
                            }
                        }

                        if (delivery.OrderRemarks == Info.CustomerServiceRemark && !string.IsNullOrEmpty(info.SpareRemarks))
                        {
                            delivery.OrderRemarks = info.SpareRemarks;
                        }

                        delivery.XM_Delivery_Details.Add(GetDeliveryDetails(info, Info.OrderCode, WarehouseID));
                        //减喜临门当日库存
                        if (canXMLProject)
                        {
                            InventoryList.Add((int)exist[0].Inventory - (int)info.ProductNum);
                            XLMInventoryList.Add(exist[0]);
                        }
                        else
                        {
                            InventoryList.Add((int)exist1.StockNumber - (int)info.ProductNum);
                            XMInventoryInfoList.Add(exist1);
                        }
                    }
                    else
                    {
                        complete = false;
                        ManufacturersCodeRecord += "产品编码:" + info.TManufacturersCode + ",";
                    }
                }

                if (type == 3 || type == 4)                                                                               //乳胶枕,U型枕,无备用地址
                {
                    var exist = base.XMXLMInventoryService.GetXMXLMInventoryListByParm(693, info.TManufacturersCode, ""); //南方仓库
                    if ((canXMLProject && exist.Count > 0 && exist[0].Inventory >= info.ProductNum) || (!canXMLProject && exist1 != null && exist1.StockNumber >= info.ProductNum))
                    {
                        if (delivery.Shipper == 0)
                        {
                            var product = base.XMProductDetailsService.GetXMProductListByTManufacturersCode(info.TManufacturersCode);
                            if (product != null && product.Count > 0)
                            {
                                delivery.Shipper = product[0].Shipper;
                            }
                        }

                        if (delivery.OrderRemarks == Info.CustomerServiceRemark && !string.IsNullOrEmpty(info.SpareRemarks))
                        {
                            delivery.OrderRemarks = info.SpareRemarks;
                        }

                        delivery.XM_Delivery_Details.Add(GetDeliveryDetails(info, Info.OrderCode, 693));
                        //减喜临门当日库存
                        if (canXMLProject)
                        {
                            InventoryList.Add((int)exist[0].Inventory - (int)info.ProductNum);
                            XLMInventoryList.Add(exist[0]);
                        }
                        else
                        {
                            InventoryList.Add((int)exist1.StockNumber - (int)info.ProductNum);
                            XMInventoryInfoList.Add(exist1);
                        }
                    }
                    else
                    {
                        complete = false;
                        ManufacturersCodeRecord += "产品编码:" + info.TManufacturersCode + ",";
                    }
                }
            }

            if (complete == true && delivery.XM_Delivery_Details != null && delivery.XM_Delivery_Details.Count > 0)
            {
                DeliveryList.Add(delivery);
            }

            return(complete);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 保存暂支申请信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    try
                    {
                        var hfScalpingId     = this.hfScalpingId.Value;
                        var hfPlatformTypeId = this.hfPlatformTypeId.Value;
                        var hfNickId         = this.hfNickId.Value;
                        var txtOrderCode     = this.txtOrderCode.Text.Trim();
                        var hidOrderCode     = this.hidOrderCode.Value;
                        var txtWantID        = this.txtWantID.Text.Trim();
                        var txtProductName   = this.txtProductName.Text.Trim();
                        var txtSalePrice     = this.txtSalePrice.Text.Trim();
                        var txtFee           = this.txtFee.Text.Trim();
                        //var txtDeduction = this.txtDeduction.Text.Trim() ;
                        //var ddType= this.ddType.SelectedValue;
                        //var txtLeader = this.txtLeader.SelectSingleCustomer.CustomerID;
                        decimal Deduction = 0;

                        if (Convert.ToInt32(hfNickId) > 0 && Convert.ToInt32(hfPlatformTypeId) > 0)
                        {
                            int ProjectId = 0;
                            //根据店铺Id查询  取项目Id
                            var XMNick = base.XMNickService.GetXMNickByID(Convert.ToInt32(hfNickId));
                            if (XMNick != null)
                            {
                                if (XMNick.ProjectId != null)
                                {
                                    ProjectId = XMNick.ProjectId.Value;
                                }
                            }
                            //根据项目Id 平台类型查询 扣点
                            var xMDeductionSetUp = base.XMDeductionSetUpService.GetXMDeductionSetUpByProjectAndPlatformTypeId(ProjectId, 475, Convert.ToInt32(hfPlatformTypeId));

                            if (xMDeductionSetUp != null)
                            {
                                //计算扣点
                                if (xMDeductionSetUp.Deduction != null)
                                {
                                    decimal DeductionD = xMDeductionSetUp.Deduction.Value / 100;

                                    Deduction = Convert.ToDecimal(txtSalePrice) * DeductionD;//扣点
                                }
                            }
                            else
                            {
                                base.ShowMessage("请设置平台扣点!");
                                return;
                            }
                        }
                        //根据订单号查询 刷单记录信息
                        var XMScalpingByOrderCode = base.XMScalpingService.GetXMScalpingByOrderCode(txtOrderCode);

                        // 根据订单号查询 订单信息
                        var xMOrderInfo = base.XMOrderInfoService.GetXMOrderByOrderCode(txtOrderCode);

                        XMOrderInfo           xMOrderInfoNow     = new XMOrderInfo();
                        var                   XMOrderInfoAppList = IoC.Resolve <IXMOrderInfoAppService>().GetXMOrderInfoAppList();
                        List <XMOrderInfoApp> xMorderInfoApp     = new List <XMOrderInfoApp>();

                        int count = 0;//返回记录条数
                        if (xMOrderInfo == null)
                        {
                            #region 各平台订单号同步

                            int TMInsertCount = 0;
                            int TMUpdateCount = 0;

                            int JDInsertCount = 0;
                            int JDUpdateCount = 0;

                            int TMCDInsertCount = 0;
                            int TMCDUpdateCount = 0;

                            int VPHInsertCount = 0;
                            int VPHUpdateCount = 0;

                            int YHDInsertCount = 0;
                            int YHDUpdateCount = 0;

                            int SuningInsertCount = 0;
                            int SuningUpdateCount = 0;
                            for (int i = 0; i < xMorderInfoApp.Count; i++)
                            {
                                if (xMorderInfoApp[i].PlatformTypeId == 251 || xMorderInfoApp[i].PlatformTypeId == 382)// || xMorderInfoApp[i].PlatformTypeId == 310)
                                {
                                    HozestERP.BusinessLogic.JDsingleServiceReference.JDsingleOrderGetSoapClient webserver = new HozestERP.BusinessLogic.JDsingleServiceReference.JDsingleOrderGetSoapClient();
                                    HozestERP.BusinessLogic.JDsingleServiceReference.OrderInfo orderInfo = webserver.WebGetJDOrderInfo(txtOrderCode, xMorderInfoApp[i].AppKey, xMorderInfoApp[i].AppSecret, xMorderInfoApp[i].ServerUrl, xMorderInfoApp[i].AccessToken);
                                    if (orderInfo != null)
                                    {
                                        IoC.Resolve <IXMOrderInfoAPIService>().getOrderInfoJD(orderInfo, ref JDInsertCount, ref JDUpdateCount, xMorderInfoApp[i]);
                                    }
                                }
                                else if (xMorderInfoApp[i].PlatformTypeId == 250 || xMorderInfoApp[i].PlatformTypeId == 381)
                                {
                                    Trade trade = IoC.Resolve <IXMOrderInfoAPIService>().GetTrade(Convert.ToInt64(txtOrderCode), xMorderInfoApp[i]);

                                    if (trade != null)
                                    {
                                        if (xMorderInfoApp[i].PlatformTypeId == 250)
                                        {
                                            IoC.Resolve <IXMOrderInfoAPIService>().getTradeTM(trade, ref TMInsertCount, ref TMUpdateCount, xMorderInfoApp[i]);
                                        }
                                        else if (xMorderInfoApp[i].PlatformTypeId == 381)
                                        {
                                            IoC.Resolve <IXMOrderInfoAPIService>().getTradeTM(trade, ref TMCDInsertCount, ref TMCDUpdateCount, xMorderInfoApp[i]);
                                        }
                                    }
                                }
                                //一号店
                                else if (xMorderInfoApp[i].PlatformTypeId == 375)
                                {
                                    IoC.Resolve <IXMOrderInfoAPIService>().getOrderYHD(txtOrderCode, ref YHDInsertCount, ref YHDUpdateCount, xMorderInfoApp[i]);
                                }
                                //苏宁易购
                                else if (xMorderInfoApp[i].PlatformTypeId == 383)
                                {
                                    IoC.Resolve <IXMOrderInfoAPIService>().getOrderSuning(txtOrderCode, ref SuningInsertCount, ref SuningUpdateCount, xMorderInfoApp[i]);
                                }
                            }

                            if (xMorderInfoApp.Count > 0 && xMorderInfoApp[0].PlatformTypeId == 259)
                            {
                                string payDateStart = Convert.ToDateTime(DateTime.Now).AddDays(-30).ToString("yyyy-MM-dd HH:mm:ss");
                                string payDateEnd   = Convert.ToDateTime(DateTime.Now).AddHours(-1).ToString("yyyy-MM-dd HH:mm:ss");
                                IoC.Resolve <IXMOrderInfoAPIService>().getOrderVPH(payDateStart, payDateEnd, txtOrderCode, ref VPHInsertCount, ref VPHUpdateCount, xMorderInfoApp[0]);
                            }
                            #endregion
                            //同步个平台 返回的记录条数
                            count = JDInsertCount + JDUpdateCount + TMInsertCount + TMUpdateCount + VPHInsertCount + VPHUpdateCount + YHDInsertCount + YHDUpdateCount + TMCDInsertCount + TMCDUpdateCount + SuningInsertCount + SuningUpdateCount;
                        }

                        if (count > 0)
                        {
                            // 修改订单表是否刷单状态 (订单存在IsScalping=true) 并判断订单是否存在
                            xMOrderInfoNow = IoC.Resolve <IXMOrderInfoService>().GetXMOrderByOrderCode(txtOrderCode);
                        }
                        else
                        {
                            xMOrderInfoNow = xMOrderInfo;
                        }

                        if (xMOrderInfoNow == null)
                        {
                            base.ShowMessage(txtOrderCode + "订单号有误,请确认!");
                            return;
                        }

                        var xMScalping = base.XMScalpingService.GetXMScalpingByID(this.ScalpingId);
                        if (xMScalping == null)
                        {
                            if (XMScalpingByOrderCode.Count > 0)
                            {
                                base.ShowMessage(txtOrderCode + "订单号已存在!");
                                return;
                            }

                            XMScalping xMScalpingNew = new XMScalping();
                            int        scalpingId    = 0;
                            int.TryParse(this.hfScalpingId.Value, out scalpingId);
                            var scalping = base.XMScalpingApplicationService.GetXMScalpingApplicationByScalpingId(scalpingId);
                            if (scalping == null)
                            {
                                this.hfScalpingId.Value     = "";
                                this.txtScalpingCode.Value  = "";
                                this.hfNickId.Value         = "";
                                this.txtNickName.Text       = "";
                                this.hfPlatformTypeId.Value = "";
                                this.txtPlatformType.Text   = "";
                                this.Master.ShowMessage("刷单单号有误.");
                                ScriptManager.RegisterStartupScript(this.txtScalpingCode, this.Page.GetType(), "ScalpingAdd", "autoCompleteBindScalpingAdd()", true);
                                return;
                            }
                            xMScalpingNew.ScalpingApplication = Convert.ToInt32(hfScalpingId);
                            xMScalpingNew.PlatformTypeId      = Convert.ToInt32(hfPlatformTypeId);
                            xMScalpingNew.NickId = Convert.ToInt32(hfNickId);
                            //xMScalpingNew.Type = ddType;
                            xMScalpingNew.OrderCode           = txtOrderCode;
                            xMScalpingNew.OrderInfoCreateDate = xMOrderInfoNow.OrderInfoCreateDate;
                            xMScalpingNew.WantID      = txtWantID;
                            xMScalpingNew.ProductName = txtProductName;
                            xMScalpingNew.SalePrice   = Convert.ToDecimal(txtSalePrice);
                            xMScalpingNew.Fee         = Convert.ToDecimal(txtFee);
                            xMScalpingNew.Deduction   = Deduction;
                            //xMScalpingNew.Leader = Convert.ToInt32(txtLeader);
                            xMScalpingNew.IsAbnormal = false;
                            xMScalpingNew.IsEnable   = false;
                            xMScalpingNew.CreateID   = HozestERPContext.Current.User.CustomerID;
                            xMScalpingNew.CreateDate = DateTime.Now;
                            xMScalpingNew.UpdateID   = HozestERPContext.Current.User.CustomerID;
                            xMScalpingNew.UpdateDate = DateTime.Now;

                            #region 修改订单表是否刷单状态 (订单存在IsScalping=true)
                            // var xMOrderInfo = base.XMOrderInfoService.GetXMOrderByOrderCode(txtOrderCode);
                            if (xMOrderInfoNow != null)
                            {
                                xMOrderInfoNow.IsScalping = true;
                                xMOrderInfoNow.UpdateID   = HozestERPContext.Current.User.CustomerID;
                                xMOrderInfoNow.UpdateDate = DateTime.Now;
                                base.XMOrderInfoService.UpdateXMOrderInfo(xMOrderInfoNow);
                            }
                            #endregion

                            base.XMScalpingService.InsertXMScalping(xMScalpingNew);
                            //base.ShowMessage("保存成功");

                            this.Master.JsWrite("alert('保存成功.');window.PopClose();", "");
                            scope.Complete();
                        }
                        else
                        {
                            if (XMScalpingByOrderCode.Count > 0)
                            {
                                if (!txtOrderCode.Equals(hidOrderCode))
                                {
                                    base.ShowMessage(txtOrderCode + "订单号已存在!");
                                    return;
                                }
                            }



                            int scalpingId = 0;
                            int.TryParse(this.hfScalpingId.Value, out scalpingId);
                            var scalping = base.XMScalpingApplicationService.GetXMScalpingApplicationByScalpingId(scalpingId);
                            if (scalping == null)
                            {
                                this.hfScalpingId.Value     = "";
                                this.txtScalpingCode.Value  = "";
                                this.hfNickId.Value         = "";
                                this.txtNickName.Text       = "";
                                this.hfPlatformTypeId.Value = "";
                                this.txtPlatformType.Text   = "";
                                this.Master.ShowMessage("刷单单号有误.");
                                ScriptManager.RegisterStartupScript(this.txtScalpingCode, this.Page.GetType(), "ScalpingAdd", "autoCompleteBindScalpingAdd()", true);
                                return;
                            }
                            xMScalping.ScalpingApplication = Convert.ToInt32(hfScalpingId);
                            xMScalping.PlatformTypeId      = Convert.ToInt32(hfPlatformTypeId);
                            xMScalping.NickId = Convert.ToInt32(hfNickId);
                            //xMScalping.Type = ddType;
                            xMScalping.OrderCode   = txtOrderCode;
                            xMScalping.WantID      = txtWantID;
                            xMScalping.ProductName = txtProductName;
                            xMScalping.SalePrice   = Convert.ToDecimal(txtSalePrice);
                            xMScalping.Fee         = Convert.ToDecimal(txtFee);
                            xMScalping.Deduction   = Deduction;
                            //xMScalping.Leader = Convert.ToInt32(txtLeader);
                            xMScalping.IsAbnormal = false;
                            xMScalping.UpdateID   = HozestERPContext.Current.User.CustomerID;
                            xMScalping.UpdateDate = DateTime.Now;

                            #region 修改订单表是否刷单状态 (订单存在IsScalping=true)
                            //var xMOrderInfo = base.XMOrderInfoService.GetXMOrderByOrderCode(txtOrderCode);
                            if (xMOrderInfoNow != null)
                            {
                                xMOrderInfoNow.IsScalping = true;
                                xMOrderInfoNow.UpdateID   = HozestERPContext.Current.User.CustomerID;
                                xMOrderInfoNow.UpdateDate = DateTime.Now;
                                base.XMOrderInfoService.UpdateXMOrderInfo(xMOrderInfoNow);
                            }
                            #endregion


                            base.XMScalpingService.UpdateXMScalping(xMScalping);
                            //base.ShowMessage("保存成功");

                            this.Master.JsWrite("alert('保存成功.');window.PopClose();", "");
                            scope.Complete();
                        }
                    }
                    catch (Exception err)
                    {
                        this.ProcessException(err);
                    }
                }
            }
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            string   area = "";
            DateTime date = DateTime.Now;
            string   AppointDeliveryTime = this.txtAppointDeliveryTime.Value.Trim();
            string   FullName            = this.txtFullName.Text.Trim();
            string   Mobile          = this.txtMobile.Text.Trim();
            string   Tel             = this.txtTel.Text.Trim();
            string   DeliveryAddress = this.txtDeliveryAddress.Text.Trim();
            //string DeliveryAddressSpare = this.txtDeliveryAddressSpare.Text.Trim();
            var OrderInfo = base.XMOrderInfoService.GetXMOrderInfoByOrderCode(OrderCode);

            if (OrderInfo != null)
            {
                XMOrderInfo record = GetXMOrderInfoValue(OrderInfo);
                if (DateTime.TryParse(AppointDeliveryTime, out date))
                {
                    OrderInfo.AppointDeliveryTime = DateTime.Parse(AppointDeliveryTime);
                }
                else if (string.IsNullOrEmpty(AppointDeliveryTime))
                {
                    OrderInfo.AppointDeliveryTime = null;
                }

                OrderInfo.FullName = FullName;
                OrderInfo.Mobile   = Mobile;
                OrderInfo.Tel      = Tel;
                //OrderInfo.DeliveryAddressSpare = DeliveryAddressSpare;

                if (this.ddlProvince.SelectedValue != "-1")
                {
                    var info = base.AreaCodeService.GetAreaByNumberID(this.ddlProvince.SelectedValue);
                    OrderInfo.Province = this.ddlProvince.SelectedItem.Text.Trim();

                    if (this.ddlCity.SelectedValue != "-2" && this.ddlCity.SelectedValue != "-3" && this.ddlCity.SelectedValue != "-4")
                    {
                        OrderInfo.Province += info.CityType;
                    }
                    area += OrderInfo.Province;
                }

                if (this.ddlCity.SelectedValue == "-2" || this.ddlCity.SelectedValue == "-3" || this.ddlCity.SelectedValue == "-4")
                {
                    OrderInfo.City = OrderInfo.Province;
                    if (this.ddlCity.SelectedValue == "-3" || this.ddlCity.SelectedValue == "-4")
                    {
                        OrderInfo.City += "市";
                    }
                    area += OrderInfo.City;
                }
                else if (this.ddlCity.SelectedValue != "-1" && this.ddlCity.SelectedValue != "-2" && this.ddlCity.SelectedValue != "-3" && this.ddlCity.SelectedValue != "-4" && this.ddlCity.SelectedValue != "")
                {
                    var info = base.AreaCodeService.GetAreaByNumberID(this.ddlCity.SelectedValue);
                    OrderInfo.City = this.ddlCity.SelectedItem.Text.Trim() + info.CityType;
                    area          += OrderInfo.City;
                }

                if (this.ddlCounty.SelectedValue != "-1" && this.ddlCounty.SelectedValue != "")
                {
                    var info = base.AreaCodeService.GetAreaByNumberID(this.ddlCounty.SelectedValue);
                    OrderInfo.County = this.ddlCounty.SelectedItem.Text.Trim() + info.CityType;
                    area            += OrderInfo.County;
                }
                OrderInfo.DeliveryAddress = area + DeliveryAddress;
                OrderInfo.UpdateID        = HozestERPContext.Current.User.CustomerID;
                OrderInfo.UpdateDate      = DateTime.Now;

                GetOrderInfoDifference(record, OrderInfo);
                base.XMOrderInfoService.UpdateXMOrderInfo(OrderInfo);

                base.ShowMessage("保存成功!");
            }
        }
Exemplo n.º 9
0
        public void binddata()
        {
            #region 加载快递单模板
            this.lblMSG.Text = "";
            string ydgs = "EMS";

            if (Rad_EMS.Checked)
            {
                ydgs = "EMS";
            }
            else if (Rad_ZTO.Checked)
            {
                ydgs = "ZTO";
            }
            else if (Rad_STO.Checked)
            {
                ydgs = "STO";
            }
            else if (this.Rad_YTO.Checked)
            {
                ydgs = "YTO";
            }
            Session["CompanyCode"] = ydgs;

            ///读取模板信息
            Encoding      code    = Encoding.GetEncoding("gb2312");
            StringBuilder divHtml = new StringBuilder();
            StringBuilder htmls   = new StringBuilder();
            StreamReader  sr      = new StreamReader(new Page().Server.MapPath("/auth/" + ydgs.ToString() + ".html"), code);
            string        line;
            while ((line = sr.ReadLine()) != null)
            {
                divHtml.Append(line);
            }
            sr.Close();

            #endregion

            //string[] status = new string[3];
            //status[0] = "FINISHED_L";
            //status[1] = "TRADE_FINISHED";
            //status[2] = "ORDERS_HAVE_AUDITED";
            string status = "FINISHED_L,TRADE_FINISHED,ORDERS_HAVE_AUDITED";

            //订单列表
            //List<XMOrderInfo> orderInfoList = new List<XMOrderInfo>();
            //发货单列表
            List <HozestERP.BusinessLogic.ManageProject.XMDelivery> xMDeliveryList = new List <HozestERP.BusinessLogic.ManageProject.XMDelivery>();
            //从发货单管理中取数据源
            if (PrintTypeId == "Delivery")
            {
                #region  新 从发货单管理中取数据源
                if (ids != "")
                {
                    int[] sts = new int[ids.Split(',').Length];
                    for (int i = 0; i < ids.Split(',').Length; i++)
                    {
                        string Id = ids.Split(',')[i];
                        sts[i] = Convert.ToInt32(Id);
                    }
                    xMDeliveryList = base.XMDeliveryService.GetXMDeliveryById(sts);
                    //List<string> OrderCodes = xMDeliveryList.Select(q => q.OrderCode).Distinct().ToList();
                    //orderInfoList = base.XMOrderInfoService.GetXMOrderInfoByOrderCodeList(OrderCodes);//订单信息
                }
                //去掉重复的发货单
                List <HozestERP.BusinessLogic.ManageProject.XMDelivery> temp = xMDeliveryList.Distinct().ToList();

                this.lblcount.Text      = temp.Count().ToString() + "个订单";
                this.lblcount.ForeColor = Color.Red;
                Int64 aa = 0;


                if (txtStartCode.Text != string.Empty && txtEndCode.Text != string.Empty)                     //面单号不允许为空
                {
                    if (Int64.TryParse(txtStartCode.Text, out aa) && Int64.TryParse(txtEndCode.Text, out aa)) //判断输入的面单号是否数字
                    {
                        Int64 len = Int64.Parse(txtEndCode.Text) - Int64.Parse(txtStartCode.Text);
                        if (len >= 0)
                        {
                            if (temp.Count() == len + 1)
                            {
                            }
                            else
                            {
                                this.lblMSG.Text      = "面单数量和发货单数量不符,请确认!";
                                this.lblMSG.ForeColor = Color.Red;
                                return;
                            }
                        }
                        else
                        {
                            this.lblMSG.Text      = "请正确输入打印的面单号码!";
                            this.lblMSG.ForeColor = Color.Red;
                            return;
                        }
                    }
                    else
                    {
                        this.lblMSG.Text      = "请正确输入打印的面单号码!";
                        this.lblMSG.ForeColor = Color.Red;
                        return;
                    }
                }
                else
                {
                    this.lblMSG.Text      = "请正确输入打印的面单号码!";
                    this.lblMSG.ForeColor = Color.Red;
                    return;
                }
                //List<XMOrderInfo> temp = orderInfoList.Distinct(new Comparer()).ToList<XMOrderInfo>();
                #region 相同地址订单合并
                //foreach (var o in temp)
                //{
                //    foreach (var p in orderInfoList)
                //    {
                //        string xaddress = (o.DeliveryAddressSpare == null || o.DeliveryAddressSpare == string.Empty) ? o.DeliveryAddress : o.DeliveryAddressSpare;
                //        string yaddress = (p.DeliveryAddressSpare == null || p.DeliveryAddressSpare == string.Empty) ? p.DeliveryAddress : p.DeliveryAddressSpare;
                //        if (xaddress == yaddress)
                //        {
                //            //if (p.Specifications.IndexOf(o.Specifications) == -1 && p.Specifications != "")//判断是否已包含
                //            //    o.Specifications += ",|," + p.Specifications;//尺寸合并
                //            if (p.CustomerServiceRemark.IndexOf(o.CustomerServiceRemark) == -1 && p.CustomerServiceRemark != "")//判断是否已包含
                //                o.CustomerServiceRemark += ",|," + p.CustomerServiceRemark;//客服备注合并
                //            if (p.Remark.IndexOf(o.Remark) == -1 && p.Remark != "")//判断是否已包含
                //                o.Remark += ",|," + p.Remark;//备注合并
                //        }
                //    }
                //}
                #endregion


                if (temp != null && temp.Count > 0)
                {
                    foreach (var item in temp)
                    {
                        //根据发货单 的订单号查询订单信息
                        XMOrderInfo xmorderinfo = base.XMOrderInfoService.GetXMOrderByOrderCode(item.OrderCode);

                        //根据发货单 Id 查询明细信息
                        List <XMDeliveryDetails> deliverDetailsList = base.XMDeliveryDetailsService.GetXMDeliveryDetailsByDeliveryId(item.Id);

                        List <XMDeliveryDetails_Result> deliverDetailsListGroupy =
                            deliverDetailsList.GroupBy(g => new { g.PlatformMerchantCode, g.PrdouctName, g.Specifications }).
                            Select(group => new XMDeliveryDetails_Result()
                        {
                            PlatformMerchantCode = group.Key.PlatformMerchantCode,
                            PrdouctName          = group.Key.PrdouctName,
                            Specifications       = group.Key.Specifications,
                            ProductNum           = group.Sum(l => l.ProductNum)
                        }).ToList();

                        //赠品信息
                        string displayRemark = "";
                        if (deliverDetailsListGroupy != null && deliverDetailsListGroupy.Count > 0)
                        {
                            foreach (var DetailsList in deliverDetailsListGroupy)
                            {
                                displayRemark += DetailsList.PrdouctName + "(" + DetailsList.Specifications + ")" + "*" + DetailsList.ProductNum + "+";
                            }
                            if (!string.IsNullOrEmpty(displayRemark))
                            {
                                displayRemark = displayRemark.Substring(0, displayRemark.Length - 1);
                            }
                        }

                        string fapiao = "";

                        if (xmorderinfo.CustomerServiceRemark.IndexOf("发票") > -1)
                        {
                            fapiao = "发票";
                        }

                        if (fapiao != "")
                        {
                            displayRemark = displayRemark + "  " + fapiao;
                        }
                        StringBuilder htmltext = new StringBuilder();
                        htmltext.Append(divHtml);

                        string strtel = "0574-55712472/0574-55712170";

                        #region  存在收货地址修改(淘宝订单原始订单收货地址)
                        var customerInfo = HozestERPContext.Current.User.SCustomerInfo;
                        htmltext = htmltext.Replace("$fahuoren$", xmorderinfo.NickName);
                        htmltext = htmltext.Replace("$xingming$", xmorderinfo.FullName.ToString());

                        if (xmorderinfo.Mobile.ToString() != "")
                        {
                            htmltext = htmltext.Replace("$dianhua$", xmorderinfo.Mobile.ToString());
                        }
                        else
                        {
                            htmltext = htmltext.Replace("$dianhua$", xmorderinfo.Tel.ToString());
                        }
                        htmltext = htmltext.Replace("$danwei$", xmorderinfo.WantID.ToString() + "  " + xmorderinfo.OrderCode);

                        //CustomerServiceRemark
                        //赠品更地址
                        string Address = "";
                        string s       = "";
                        if (xmorderinfo.CustomerServiceRemark != "")
                        {
                            if (xmorderinfo.CustomerServiceRemark.IndexOf("更改赠品地址") > -1)
                            {
                                s = xmorderinfo.CustomerServiceRemark.Substring(xmorderinfo.CustomerServiceRemark.IndexOf("更改赠品地址") + 6).Trim();
                            }
                            int f = s.IndexOf("/");
                            if (f > -1)
                            {
                                Address = s.Substring(0, f).Trim();
                            }
                        }


                        if (Address != "")
                        {
                            htmltext = htmltext.Replace("$dizhi$", Address);
                        }
                        else
                        {
                            if (xmorderinfo.DeliveryAddressSpare == "" || xmorderinfo.DeliveryAddressSpare == "NULL" || xmorderinfo.DeliveryAddressSpare == null)
                            {
                                htmltext = htmltext.Replace("$dizhi$", xmorderinfo.DeliveryAddress.ToString());
                            }
                            else
                            {
                                htmltext = htmltext.Replace("$dizhi$", xmorderinfo.DeliveryAddressSpare.ToString());
                            }
                        }

                        if (Rad_EMS.Checked)
                        {
                            htmltext = htmltext.Replace("$youbian$", "315502");
                            htmltext = htmltext.Replace("$richuo$", DateTime.Now.ToString("yyyy.MM.dd.HH"));
                        }
                        #endregion

                        #region 提取备注
                        //string allRemark = item.Remark + "/" + item.CustomerServiceRemark;
                        //string[] remarklist = allRemark.Split('/');
                        //int remarkcount = remarklist.Count();
                        //string displayRemark = "";
                        //for (int i = 0; i < remarklist.Count(); i++)
                        //{
                        //    string contact = remarklist[i].ToString();
                        //    if (contact.IndexOf("赠品") >= 0 || contact.IndexOf("发票") >= 0)
                        //    {
                        //        string displayRemarkReplace = remarklist[i].Replace("赠品:", "");
                        //        displayRemarkReplace = displayRemarkReplace.Replace("赠品:", "");
                        //        displayRemarkReplace = displayRemarkReplace.Replace("赠品", "");
                        //        if (displayRemark.IndexOf(remarklist[i].ToString()) == -1)
                        //            displayRemark += displayRemarkReplace.ToString() + ",";
                        //    }
                        //}
                        #endregion

                        htmltext = htmltext.Replace("$fahuodianhua$", strtel);
                        htmltext = htmltext.Replace("$neijian$", displayRemark);
                        htmltext = htmltext.Replace("$shijian$", DateTime.Now.ToString("yyyy MM dd HH:mm"));
                        htmls.Append(htmltext);
                        div_dy.InnerHtml = htmls.ToString();
                    }
                }
                #endregion
            }
            else if (PrintTypeId == "Empty")
            {
                #region 刷单打印

                //订单列表
                List <XMOrderInfo> orderInfoList = new List <XMOrderInfo>();

                if (ids != "")
                {
                    int[] sts = new int[ids.Split(',').Length];
                    for (int i = 0; i < ids.Split(',').Length; i++)
                    {
                        string Id = ids.Split(',')[i];
                        sts[i] = Convert.ToInt32(Id);
                    }
                    orderInfoList = base.XMScalpingService.GetXMOrderinfoShudan(sts);
                }
                this.lblcount.Text      = orderInfoList.Count().ToString() + "个订单";
                this.lblcount.ForeColor = Color.Red;
                #region 相同地址订单合并
                List <XMOrderInfo> temp = orderInfoList.Distinct(new Comparer()).ToList <XMOrderInfo>();
                foreach (var o in temp)
                {
                    foreach (var p in orderInfoList)
                    {
                        string xaddress = (o.DeliveryAddressSpare == null || o.DeliveryAddressSpare == string.Empty) ? o.DeliveryAddress : o.DeliveryAddressSpare;
                        string yaddress = (p.DeliveryAddressSpare == null || p.DeliveryAddressSpare == string.Empty) ? p.DeliveryAddress : p.DeliveryAddressSpare;
                        if (xaddress == yaddress)
                        {
                            //if (p.Specifications.IndexOf(o.Specifications) == -1 && p.Specifications != "")//判断是否已包含
                            //    o.Specifications += ",|," + p.Specifications;//尺寸合并
                            if (p.CustomerServiceRemark.IndexOf(o.CustomerServiceRemark) == -1 && p.CustomerServiceRemark != "") //判断是否已包含
                            {
                                o.CustomerServiceRemark += ",|," + p.CustomerServiceRemark;                                      //客服备注合并
                            }
                        }
                    }
                }
                #endregion
                if (temp != null && temp.Count > 0)
                {
                    foreach (var item in temp)
                    {
                        StringBuilder htmltext = new StringBuilder();
                        htmltext.Append(divHtml);


                        string strtel = "0574-55712472";

                        #region  存在收货地址修改(淘宝订单原始订单收货地址)
                        var customerInfo = HozestERPContext.Current.User.SCustomerInfo;
                        htmltext = htmltext.Replace("$fahuoren$", item.NickName);
                        htmltext = htmltext.Replace("$xingming$", item.FullName.ToString());

                        if (item.Mobile.ToString() != "")
                        {
                            htmltext = htmltext.Replace("$dianhua$", item.Mobile.ToString());
                        }
                        else
                        {
                            htmltext = htmltext.Replace("$dianhua$", item.Tel.ToString());
                        }
                        htmltext = htmltext.Replace("$danwei$", item.WantID.ToString() + "  " + item.OrderCode);
                        //赠品更地址
                        string Address = "";
                        string s       = "";
                        if (item.CustomerServiceRemark != "")
                        {
                            if (item.CustomerServiceRemark.IndexOf("更改赠品地址") > -1)
                            {
                                s = item.CustomerServiceRemark.Substring(item.CustomerServiceRemark.IndexOf("更改赠品地址") + 6).Trim();
                            }
                            int f = s.IndexOf("/");
                            if (f > -1)
                            {
                                Address = s.Substring(0, f).Trim();
                            }
                        }

                        if (Address != "")
                        {
                            htmltext = htmltext.Replace("$dizhi$", Address);
                        }
                        else
                        {
                            if (item.DeliveryAddressSpare == "" || item.DeliveryAddressSpare == null)
                            {
                                htmltext = htmltext.Replace("$dizhi$", item.DeliveryAddress.ToString());
                            }
                            else
                            {
                                htmltext = htmltext.Replace("$dizhi$", item.DeliveryAddressSpare.ToString());
                            }
                        }

                        if (Rad_EMS.Checked)
                        {
                            htmltext = htmltext.Replace("$youbian$", "315502");
                            htmltext = htmltext.Replace("$richuo$", DateTime.Now.ToString("yyyy.MM.dd.HH"));
                        }
                        #endregion

                        #region 提取备注
                        string   allRemark     = item.CustomerServiceRemark;
                        string[] remarklist    = allRemark.Split('/');
                        int      remarkcount   = remarklist.Count();
                        string   displayRemark = "";
                        for (int i = 0; i < remarklist.Count(); i++)
                        {
                            string contact = remarklist[i].ToString();
                            if (contact.IndexOf("赠品") >= 0 || contact.IndexOf("发票") >= 0)
                            {
                                string displayRemarkReplace = remarklist[i].Replace("赠品:", "");
                                displayRemarkReplace = displayRemarkReplace.Replace("赠品:", "");
                                displayRemarkReplace = displayRemarkReplace.Replace("赠品", "");
                                if (displayRemark.IndexOf(remarklist[i].ToString()) == -1)
                                {
                                    displayRemark += displayRemarkReplace.ToString() + ",";
                                }
                            }
                        }
                        #endregion

                        htmltext = htmltext.Replace("$fahuodianhua$", strtel);
                        htmltext = htmltext.Replace("$neijian$", displayRemark);
                        htmltext = htmltext.Replace("$shijian$", DateTime.Now.ToString("yyyy MM dd HH:mm"));
                        htmls.Append(htmltext);
                        div_dy.InnerHtml = htmls.ToString();
                    }
                }
                #endregion
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// 打印快递单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void but_qrdy_Click(object sender, EventArgs e)
        {
            #region 加载快递单模板
            string StartCode = "";
            string ydgs      = "EMS";

            if (Rad_EMS.Checked)
            {
                ydgs = "EMS";
            }
            else if (Rad_ZTO.Checked)
            {
                ydgs = "ZTO";
            }
            else if (Rad_STO.Checked)
            {
                ydgs = "STO";
            }

            Session["CompanyCode"] = ydgs;

            ///读取模板信息
            Encoding      code    = Encoding.GetEncoding("gb2312");
            StringBuilder divHtml = new StringBuilder();
            StringBuilder htmls   = new StringBuilder();
            StreamReader  sr      = new StreamReader(new Page().Server.MapPath("/auth/" + ydgs.ToString() + ".html"), code);
            string        line;
            while ((line = sr.ReadLine()) != null)
            {
                divHtml.Append(line);
            }
            sr.Close();

            #endregion

            //string[] status = new string[3];
            //status[0] = "FINISHED_L";
            //status[1] = "TRADE_FINISHED";
            //status[2] = "ORDERS_HAVE_AUDITED";
            string status = "FINISHED_L,TRADE_FINISHED,ORDERS_HAVE_AUDITED";
            if (PrintTypeId == "Delivery")
            {
                #region

                //打印批次
                int PrintBatch = 0;
                //取发货单表中 打印批次倒序最后条
                var xMDeliveryListByPrintBatch = base.XMDeliveryService.GetXMDeliveryList().OrderByDescending(p => p.PrintBatch).FirstOrDefault();
                if (xMDeliveryListByPrintBatch != null)
                {
                    if (xMDeliveryListByPrintBatch.PrintBatch != null)
                    {
                        PrintBatch = xMDeliveryListByPrintBatch.PrintBatch.Value;
                    }
                }

                //发货单列表
                List <HozestERP.BusinessLogic.ManageProject.XMDelivery> xMDeliveryList = new List <HozestERP.BusinessLogic.ManageProject.XMDelivery>();

                if (ids != "")
                {
                    int[] sts = new int[ids.Split(',').Length];
                    for (int i = 0; i < ids.Split(',').Length; i++)
                    {
                        string Id = ids.Split(',')[i];
                        sts[i] = Convert.ToInt32(Id);
                    }
                    xMDeliveryList = base.XMDeliveryService.GetXMDeliveryById(sts);
                }

                this.lblcount.Text      = xMDeliveryList.Count().ToString() + "个订单";
                this.lblcount.ForeColor = Color.Red;
                Int64 aa = 0;
                if (txtStartCode.Text != string.Empty && txtEndCode.Text != string.Empty)                     //面单号不允许为空
                {
                    if (Int64.TryParse(txtStartCode.Text, out aa) && Int64.TryParse(txtEndCode.Text, out aa)) //判断输入的面单号是否数字
                    {
                        Int64 len = Int64.Parse(txtEndCode.Text) - Int64.Parse(txtStartCode.Text);
                        if (len >= 0)
                        {
                            if (xMDeliveryList.Count() == len + 1)
                            {
                                StartCode = txtStartCode.Text;
                            }
                            else
                            {
                                this.lblMSG.Text      = "面单数量和发货单数量不符,请确认!";
                                this.lblMSG.ForeColor = Color.Red;
                                return;
                            }
                        }
                        else
                        {
                            this.lblMSG.Text      = "请正确输入打印的面单号码";
                            this.lblMSG.ForeColor = Color.Red;
                            return;
                        }
                    }
                    else
                    {
                        this.lblMSG.Text      = "请正确输入打印的面单号码";
                        this.lblMSG.ForeColor = Color.Red;
                        return;
                    }
                }
                else
                {
                    this.lblMSG.Text      = "请正确输入打印的面单号码";
                    this.lblMSG.ForeColor = Color.Red;
                    return;
                }

                Int64 cc = 0;//目前第几个订单
                if (xMDeliveryList != null && xMDeliveryList.Count > 0)
                {
                    foreach (var item in xMDeliveryList)
                    {
                        //根据发货单 的订单号查询订单信息
                        XMOrderInfo xmorderinfo = base.XMOrderInfoService.GetXMOrderByOrderCode(item.OrderCode);

                        //根据发货单 Id 查询明细信息
                        List <XMDeliveryDetails> deliverDetailsList = base.XMDeliveryDetailsService.GetXMDeliveryDetailsByDeliveryId(item.Id);

                        List <XMDeliveryDetails_Result> deliverDetailsListGroupy =
                            deliverDetailsList.GroupBy(g => new { g.PlatformMerchantCode, g.PrdouctName, g.Specifications }).
                            Select(group => new XMDeliveryDetails_Result()
                        {
                            PlatformMerchantCode = group.Key.PlatformMerchantCode,
                            PrdouctName          = group.Key.PrdouctName,
                            Specifications       = group.Key.Specifications,
                            ProductNum           = group.Sum(l => l.ProductNum)
                        }).ToList();

                        //赠品信息
                        string displayRemark = "";
                        if (deliverDetailsListGroupy != null && deliverDetailsListGroupy.Count > 0)
                        {
                            foreach (var DetailsList in deliverDetailsListGroupy)
                            {
                                displayRemark += DetailsList.PrdouctName + "(" + DetailsList.Specifications + ")" + "*" + DetailsList.ProductNum + "+";
                            }
                            if (!string.IsNullOrEmpty(displayRemark))
                            {
                                displayRemark = displayRemark.Substring(0, displayRemark.Length - 1);
                            }
                        }

                        string fapiao = "";

                        if (xmorderinfo.CustomerServiceRemark.IndexOf("发票") > -1)
                        {
                            fapiao = "发票";
                        }

                        if (fapiao != "")
                        {
                            displayRemark = displayRemark + "  " + fapiao;
                        }
                        StringBuilder htmltext = new StringBuilder();
                        htmltext.Append(divHtml);


                        string strtel = "0574-55712472/0574-55712170";

                        #region  存在收货地址修改(淘宝订单原始订单收货地址)
                        var customerInfo = HozestERPContext.Current.User.SCustomerInfo;
                        htmltext = htmltext.Replace("$fahuoren$", xmorderinfo.NickName);
                        htmltext = htmltext.Replace("$xingming$", xmorderinfo.FullName.ToString());

                        if (xmorderinfo.Mobile.ToString() != "")
                        {
                            htmltext = htmltext.Replace("$dianhua$", xmorderinfo.Mobile.ToString());
                        }
                        else
                        {
                            htmltext = htmltext.Replace("$dianhua$", xmorderinfo.Tel.ToString());
                        }
                        htmltext = htmltext.Replace("$danwei$", xmorderinfo.WantID.ToString() + "  " + xmorderinfo.OrderCode);
                        if (xmorderinfo.DeliveryAddressSpare == "" || xmorderinfo.DeliveryAddressSpare == "NULL" || xmorderinfo.DeliveryAddressSpare == null)
                        {
                            htmltext = htmltext.Replace("$dizhi$", xmorderinfo.DeliveryAddress.ToString());
                        }
                        else
                        {
                            htmltext = htmltext.Replace("$dizhi$", xmorderinfo.DeliveryAddressSpare.ToString());
                        }

                        if (Rad_EMS.Checked)
                        {
                            htmltext = htmltext.Replace("$youbian$", "315502");
                            htmltext = htmltext.Replace("$richuo$", DateTime.Now.ToString("yyyy.MM.dd.HH"));
                        }
                        #endregion

                        htmltext = htmltext.Replace("$fahuodianhua$", strtel);
                        htmltext = htmltext.Replace("$neijian$", displayRemark);
                        htmltext = htmltext.Replace("$shijian$", DateTime.Now.ToString("yyyy MM dd HH:mm"));
                        htmls.Append(htmltext);

                        //var xMOrderInfo = base.XMOrderInfoService.GetXMOrderInfoByID(xmorderinfo.ID);
                        //xMOrderInfo.IsSentGifts = true;
                        //base.XMOrderInfoService.UpdateXMOrderInfo(xMOrderInfo);

                        //根据Id查询发货单
                        var xmDelivery = base.XMDeliveryService.GetXMDeliveryById(item.Id);

                        xmDelivery.LogisticsId     = 482;//默认申通快递单号
                        xmDelivery.LogisticsNumber = (Int64.Parse(StartCode) + cc).ToString();
                        int PrintQuantity = 0;
                        if (xmDelivery.PrintQuantity != null)
                        {
                            PrintQuantity = xmDelivery.PrintQuantity.Value;
                        }
                        xmDelivery.PrintQuantity = PrintQuantity + 1;//打印次数
                        if (xmDelivery.PrintBatch == 0)
                        {
                            xmDelivery.PrintBatch = PrintBatch + 1; //打印批次
                        }
                        xmDelivery.PrintDateTime = DateTime.Now;    //打印时间
                        xmDelivery.IsDelivery    = true;
                        base.XMDeliveryService.UpdateXMDelivery(xmDelivery);
                        cc++;
                    }

                    ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "dyscript_yd", "window.print();", true);
                }

                #endregion
            }
            else if (PrintTypeId == "Empty")
            {
                #region
                List <XMOrderInfo> orderInfoList = new List <XMOrderInfo>();
                if (ids != "")
                {
                    int[] sts = new int[ids.Split(',').Length];
                    for (int i = 0; i < ids.Split(',').Length; i++)
                    {
                        string Id = ids.Split(',')[i];
                        sts[i] = Convert.ToInt32(Id);
                    }
                    orderInfoList = base.XMScalpingService.GetXMOrderinfoShudan(sts);
                }
                this.lblcount.Text      = orderInfoList.Count().ToString() + "个订单";
                this.lblcount.ForeColor = Color.Red;

                #region 相同地址订单合并
                List <XMOrderInfo> temp = orderInfoList.Distinct(new Comparer()).ToList <XMOrderInfo>();
                foreach (var o in temp)
                {
                    foreach (var p in orderInfoList)
                    {
                        string xaddress = (o.DeliveryAddressSpare == null || o.DeliveryAddressSpare == string.Empty) ? o.DeliveryAddress : o.DeliveryAddressSpare;
                        string yaddress = (p.DeliveryAddressSpare == null || p.DeliveryAddressSpare == string.Empty) ? p.DeliveryAddress : p.DeliveryAddressSpare;
                        if (xaddress == yaddress)
                        {
                            //if (p.Specifications.IndexOf(o.Specifications) == -1 && p.Specifications != "")//判断是否已包含
                            //    o.Specifications += ",|," + p.Specifications;//尺寸合并
                            if (p.CustomerServiceRemark.IndexOf(o.CustomerServiceRemark) == -1 && p.CustomerServiceRemark != "") //判断是否已包含
                            {
                                o.CustomerServiceRemark += ",|," + p.CustomerServiceRemark;                                      //客服备注合并
                            }
                        }
                    }
                }
                #endregion

                if (orderInfoList != null && orderInfoList.Count > 0)
                {
                    foreach (var item in orderInfoList)
                    {
                        StringBuilder htmltext = new StringBuilder();
                        htmltext.Append(divHtml);


                        string strtel = "0574-55712472";

                        #region  存在收货地址修改(淘宝订单原始订单收货地址)
                        var customerInfo = HozestERPContext.Current.User.SCustomerInfo;
                        htmltext = htmltext.Replace("$fahuoren$", item.NickName);
                        htmltext = htmltext.Replace("$xingming$", item.FullName.ToString());

                        if (item.Mobile.ToString() != "")
                        {
                            htmltext = htmltext.Replace("$dianhua$", item.Mobile.ToString());
                        }
                        else
                        {
                            htmltext = htmltext.Replace("$dianhua$", item.Tel.ToString());
                        }
                        htmltext = htmltext.Replace("$danwei$", item.WantID.ToString() + "  " + item.OrderCode);
                        if (item.DeliveryAddressSpare == "" || item.DeliveryAddressSpare == null)
                        {
                            htmltext = htmltext.Replace("$dizhi$", item.DeliveryAddress.ToString());
                        }
                        else
                        {
                            htmltext = htmltext.Replace("$dizhi$", item.DeliveryAddressSpare.ToString());
                        }

                        if (Rad_EMS.Checked)
                        {
                            htmltext = htmltext.Replace("$youbian$", "315502");
                            htmltext = htmltext.Replace("$richuo$", DateTime.Now.ToString("yyyy.MM.dd.HH"));
                        }
                        #endregion

                        htmltext = htmltext.Replace("$fahuodianhua$", strtel);
                        #region 提取备注
                        string   allRemark     = item.CustomerServiceRemark;
                        string[] remarklist    = allRemark.Split('/');
                        int      remarkcount   = remarklist.Count();
                        string   displayRemark = "";
                        for (int i = 0; i < remarklist.Count(); i++)
                        {
                            if (remarklist[i].IndexOf("赠品") >= 0 || remarklist[i].IndexOf("发票") >= 0)
                            {
                                string displayRemarkReplace = remarklist[i].Replace("赠品:", "");
                                displayRemarkReplace = displayRemarkReplace.Replace("赠品:", "");
                                displayRemarkReplace = displayRemarkReplace.Replace("赠品", "");
                                if (displayRemark.IndexOf(remarklist[i].ToString()) == -1)
                                {
                                    displayRemark += displayRemarkReplace.ToString() + ",";
                                }
                            }
                        }
                        #endregion
                        htmltext = htmltext.Replace("$neijian$", displayRemark);
                        htmltext = htmltext.Replace("$shijian$", DateTime.Now.ToString("yyyy MM dd HH:mm"));
                        htmls.Append(htmltext);

                        var xMOrderInfo = base.XMOrderInfoService.GetXMOrderInfoByID(item.ID);
                        xMOrderInfo.IsSentGifts = true;
                        base.XMOrderInfoService.UpdateXMOrderInfo(xMOrderInfo);
                    }

                    ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "dyscript_yd", "window.print();", true);
                }
                #endregion
            }
        }
Exemplo n.º 11
0
        protected void btnCalculate_Click(object sender, DirectEventArgs e)
        {
            string OrderID = CommonHelper.QueryString("ID");

            XMOrderInfo entity_Order = XMOrderInfoService.GetXMOrderInfoByID(int.Parse(OrderID));

            if (entity_Order == null)
            {
                ExtNet.Msg.Alert("提示", "订单信息不存在").Show();
                return;
            }

            XMProject entity_Project = XMProjectService.GetXMProjectById(entity_Order.ProjectId);

            if (entity_Project == null)
            {
                ExtNet.Msg.Alert("提示", "项目信息不存在").Show();
                return;
            }

            if (entity_Project.ProjectName == "曲美")
            {
                //干线费用
                decimal mainMoney = 0;
                //支线费用
                decimal  branchMoney = 0;
                string   province    = entity_Order.Province;
                string   city        = entity_Order.City;
                string   region      = entity_Order.County;
                string[] mes         = entity_Order.CustomerServiceRemark.Split(new string[] { "///" }, StringSplitOptions.RemoveEmptyEntries);
                if (mes.Count() <= 0)
                {
                    ExtNet.Msg.Alert("提示", "解析错误").Show();
                    return;
                }
                string[] mes1 = mes[0].Split(new string[] { "+" }, StringSplitOptions.RemoveEmptyEntries);
                if (mes1.Count() <= 0)
                {
                    ExtNet.Msg.Alert("提示", "解析错误").Show();
                    return;
                }
                //查询干线物流公司信息
                List <CodeList> codeList = CodeService.GetCodeListInfoByCodeTypeIDAndCodeName(243, mes1[0]);
                if (codeList.Count <= 0)
                {
                    ExtNet.Msg.Alert("提示", "找不到干线物流公司信息").Show();
                    return;
                }

                int logisticsMainID = codeList[0].CodeID;
                //查询干线物流单价费率
                BusinessLogic.ManageProject.XMLogisticsFeeMain entityMain = XMLogisticsFeeMainService.
                                                                            getSingle(a => a.ProjectID == entity_Project.Id && a.WareHouseID == 758 && province.StartsWith(a.Province) && city.StartsWith(a.City) && region.StartsWith(a.Area) && a.LogisticsID == logisticsMainID);
                if (entityMain == null)
                {
                    ExtNet.Msg.Alert("提示", "找不到对应干线单价费率").Show();
                    return;
                }

                //只计算干线费用
                if (mes1.Count() == 1)
                {
                    //对应干线单价费率
                    decimal main = (decimal)entityMain.Fee;

                    List <XMOrderInfoProductDetails> list_OrderProductDetails = XMOrderInfoProductDetailsService.GetXMOrderInfoProductDetailsList(entity_Order.ID);
                    foreach (var item in list_OrderProductDetails)
                    {
                        string ProductVolume = string.IsNullOrEmpty(item.ProductVolume) ? "0" : item.ProductVolume;
                        mainMoney = mainMoney + main * decimal.Parse(ProductVolume) * (int)item.ProductNum;
                    }
                }
                //计算干线和支线费用
                else if (mes1.Count() == 2)
                {
                    //对应干线单价费率
                    decimal main = (decimal)entityMain.Fee;
                    //查询支线物流公司信息
                    List <CodeList> codeList1 = CodeService.GetCodeListInfoByCodeTypeIDAndCodeName(244, mes1[1]);
                    if (codeList.Count <= 0)
                    {
                        ExtNet.Msg.Alert("提示", "找不到支线物流公司信息").Show();
                        return;
                    }

                    List <XMOrderInfoProductDetails> list_OrderProductDetails = XMOrderInfoProductDetailsService.GetXMOrderInfoProductDetailsList(entity_Order.ID);
                    foreach (var item in list_OrderProductDetails)
                    {
                        //对应支线单价费率
                        decimal          Branch               = 0;
                        XMProduct        entityProduct        = XMProductService.getXMProductByManufacturersCode(item.TManufacturersCode);
                        XMProductDetails entityProductDetails = XMProductDetailsService.GetXMProductDetailsListByProductId(entityProduct.Id)[0];
                        //查询支线物流单价费率
                        int logisticsBranchID = codeList1[0].CodeID;
                        BusinessLogic.ManageProject.XMLogisticsFeeBranch entityBranch = XMLogisticsFeeBranchService.
                                                                                        getSingle(a => a.ProjectID == entity_Project.Id && a.LogisticsID == logisticsBranchID && a.ProductCategoryID == entityProductDetails.ProductTypeId);
                        if (entityBranch == null)
                        {
                            ExtNet.Msg.Alert("提示", "找不到对应支线单价费率").Show();
                            return;
                        }

                        Branch = (decimal)entityBranch.Fee;
                        //商品体积
                        string ProductVolume = string.IsNullOrEmpty(entityProduct.ProductVolume) ? "0" : entityProduct.ProductVolume;
                        mainMoney   = mainMoney + main * decimal.Parse(ProductVolume) * (int)item.ProductNum;
                        branchMoney = branchMoney + Branch * (int)item.ProductNum;
                    }
                }
                //事务
                using (TransactionScope scope = new TransactionScope())
                {
                    List <BusinessLogic.ManageProject.XMLogisticsFeeDetail> list = XMLogisticsFeeDetailService.getList(a => a.Type != 3);
                    foreach (var item in list)
                    {
                        XMLogisticsFeeDetailService.delete(item);
                    }

                    if (mainMoney >= 0)
                    {
                        XMLogisticsFeeDetailService.InsertXMLogisticsFeeDetail(new BusinessLogic.ManageProject.XMLogisticsFeeDetail()
                        {
                            OrderID    = entity_Order.ID,
                            Type       = 1,
                            Fee        = mainMoney,
                            CreateID   = HozestERPContext.Current.User.CustomerID,
                            CreateDate = DateTime.Now,
                        });
                    }
                    if (branchMoney >= 0)
                    {
                        XMLogisticsFeeDetailService.InsertXMLogisticsFeeDetail(new BusinessLogic.ManageProject.XMLogisticsFeeDetail()
                        {
                            OrderID    = entity_Order.ID,
                            Type       = 2,
                            Fee        = branchMoney,
                            CreateID   = HozestERPContext.Current.User.CustomerID,
                            CreateDate = DateTime.Now,
                        });
                    }

                    scope.Complete();
                }
            }
            else
            {
                ExtNet.Msg.Alert("提示", "不在计算范围内").Show();
                return;
            }
        }