public XMDeliveryDetails GetDeliveryDetails(XMOrderInfoProductDetails ProductDetails, string OrderCode, int WarehouseID) { string PrdouctName = ""; string Specifications = ""; XMDeliveryDetails detail = new XMDeliveryDetails(); //detail.DeliveryId = DeliveryIDType; detail.DetailsTypeId = (int)StatusEnum.NormalOrder;//正常订单 detail.OrderNo = OrderCode; var ProductDetail = base.XMProductDetailsService.GetXMProductDetailsByPlatformMerchantCode(ProductDetails.PlatformMerchantCode, (int)ProductDetails.XM_OrderInfo.PlatformTypeId); if (ProductDetail != null && ProductDetail.Count > 0) { detail.ProductlId = ProductDetail[0].ProductId; var product = base.XMProductService.GetXMProductById((int)detail.ProductlId); if (product != null) { PrdouctName = product.ProductName; Specifications = product.Specifications; } } detail.PlatformMerchantCode = ProductDetails.PlatformMerchantCode; detail.PrdouctName = PrdouctName; detail.Specifications = Specifications; detail.ProductNum = (int)ProductDetails.ProductNum; detail.WarehouseID = WarehouseID; detail.IsEnabled = false; detail.CreateDate = DateTime.Now; detail.CreateID = HozestERPContext.Current.User.CustomerID; detail.UpdateDate = DateTime.Now; detail.UpdateID = HozestERPContext.Current.User.CustomerID; //IoC.Resolve<IXMDeliveryDetailsService>().InsertXMDeliveryDetails(detail); return(detail); }
protected void grdXMDeliveryDetailsManage_RowUpdating(object sender, GridViewUpdateEventArgs e) { //商品Id var hfProductId = this.grdXMDeliveryDetailsManage.Rows[e.RowIndex].FindControl("hfProductId") as HtmlInputHidden; //商品名称 var txtProductName = this.grdXMDeliveryDetailsManage.Rows[e.RowIndex].FindControl("txtProductName") as HtmlInputText; //商品编码 var txtPlatformMerchantCode = this.grdXMDeliveryDetailsManage.Rows[e.RowIndex].FindControl("txtPlatformMerchantCode") as TextBox; //数量 var txtProductNum = this.grdXMDeliveryDetailsManage.Rows[e.RowIndex].FindControl("txtProductNum") as SimpleTextBox; //尺寸 var txtEditSpecifications = this.grdXMDeliveryDetailsManage.Rows[e.RowIndex].FindControl("txtEditSpecifications") as TextBox; int keyID = 0; int.TryParse(e.Keys[0].ToString(), out keyID); var deliveryDetails = base.XMDeliveryDetailsService.GetXMDeliveryDetailsById(keyID); if (deliveryDetails == null) { #region 赠品明细新增 int productId = 0; int.TryParse(hfProductId.Value, out productId); var Product = base.XMProductService.GetXMProductById(productId); if (Product == null) { hfProductId.Value = ""; txtProductName.Value = ""; txtPlatformMerchantCode.Text = ""; txtEditSpecifications.Text = ""; this.Master.ShowMessage("商品名称有误."); ScriptManager.RegisterStartupScript(this.grdXMDeliveryDetailsManage, this.Page.GetType(), "xmdeliverydetailsmanage", "autoCompleteBind()", true); return; } deliveryDetails = new XMDeliveryDetails(); deliveryDetails.DeliveryId = this.DeliveryId; deliveryDetails.ProductlId = Convert.ToInt32(hfProductId.Value); deliveryDetails.PlatformMerchantCode = txtPlatformMerchantCode.Text; deliveryDetails.PrdouctName = txtProductName.Value; deliveryDetails.Specifications = txtEditSpecifications.Text; deliveryDetails.ProductNum = Convert.ToInt32(txtProductNum.Text); deliveryDetails.IsEnabled = false; deliveryDetails.CreateID = HozestERPContext.Current.User.CustomerID; deliveryDetails.CreateDate = DateTime.Now; deliveryDetails.UpdateID = HozestERPContext.Current.User.CustomerID; deliveryDetails.UpdateDate = DateTime.Now; base.XMDeliveryDetailsService.InsertXMDeliveryDetails(deliveryDetails); #endregion } else { int productId = 0; int.TryParse(hfProductId.Value, out productId); var Product = base.XMProductService.GetXMProductById(productId); if (Product == null) { hfProductId.Value = ""; txtProductName.Value = ""; txtPlatformMerchantCode.Text = ""; txtEditSpecifications.Text = ""; this.Master.ShowMessage("商品名称有误."); ScriptManager.RegisterStartupScript(this.grdXMDeliveryDetailsManage, this.Page.GetType(), "xmdeliverydetailsmanage", "autoCompleteBind()", true); return; } deliveryDetails.ProductlId = Convert.ToInt32(hfProductId.Value); deliveryDetails.PlatformMerchantCode = txtPlatformMerchantCode.Text; deliveryDetails.PrdouctName = txtProductName.Value; deliveryDetails.Specifications = txtEditSpecifications.Text; deliveryDetails.ProductNum = Convert.ToInt32(txtProductNum.Text); deliveryDetails.UpdateID = HozestERPContext.Current.User.CustomerID; deliveryDetails.UpdateDate = DateTime.Now; base.XMDeliveryDetailsService.UpdateXMDeliveryDetails(deliveryDetails); } this.RowEditIndex = -1; this.Master.JsWrite("alert('保存成功!')", ""); this.BindGrid(); ScriptManager.RegisterStartupScript(this.grdXMDeliveryDetailsManage, this.Page.GetType(), "xmdeliverydetailsmanage", "autoCompleteBind()", true); }
protected void btnIsSingleRow_Click(object sender, EventArgs e) { //事务 using (TransactionScope scope = new TransactionScope()) { List <int> IDs = this.Master.GetSelectedIds(this.grdvClients); if (IDs.Count <= 0) { base.ShowMessage("你没有选择任何记录!"); return; } else { //查询所有选中的发票信息 var InvoiceInfoList = base.XMInvoiceInfoService.GetXMInvoiceInfoListByIds(IDs); var NotPassList = InvoiceInfoList.Where(a => a.IsScrap == true || a.IsSingleRow == true).ToList();//已排单或已废弃 if (NotPassList.Count > 0) { base.ShowMessage("已排单或已废弃的发票不能再参加排单!"); return; } var NoTypeList = InvoiceInfoList.Where(a => a.InvoiceType == null).ToList(); if (NoTypeList.Count > 0) { base.ShowMessage("发票类型未确定的发票不能再参加排单!"); return; } #region 排单 foreach (var item in InvoiceInfoList) { if (item != null) { List <XMInvoiceInfoDetail> InvoiceDetailsList = base.XMInvoiceInfoDetailService.GetXMInvoiceInfoDetailListByInvoiceInfoID(item.ID); if (InvoiceDetailsList.Count == 0) { base.ShowMessage("发票明细无数据!"); return; } else { #region var DeliveryList = base.XMDeliveryService.GetXMDeliveryByOrderCodeAndDeliveryTypeId(item.OrderCode, 481) .Where(x => x.IsDelivery == false && x.IsShelve != true).ToList();//赠品 if (DeliveryList != null && DeliveryList.Count > 0) { XMDeliveryDetails deliverDetails = new XMDeliveryDetails(); deliverDetails.OrderNo = item.OrderCode; deliverDetails.DetailsTypeId = 11;//赠品 deliverDetails.DeliveryId = DeliveryList[0].Id; deliverDetails.ProductlId = 0; deliverDetails.PlatformMerchantCode = ""; deliverDetails.PrdouctName = "发票"; deliverDetails.Specifications = ""; deliverDetails.ProductNum = 1; deliverDetails.InvoiceInfoID = item.ID; deliverDetails.IsEnabled = false; deliverDetails.CreateID = HozestERPContext.Current.User.CustomerID; deliverDetails.CreateDate = DateTime.Now; deliverDetails.UpdateID = HozestERPContext.Current.User.CustomerID; deliverDetails.UpdateDate = DateTime.Now; base.XMDeliveryDetailsService.InsertXMDeliveryDetails(deliverDetails); } else { //新增 HozestERP.BusinessLogic.ManageProject.XMDelivery xd = new HozestERP.BusinessLogic.ManageProject.XMDelivery(); xd.DeliveryTypeId = 722; //发票 xd.DeliveryNumber = "ZP" + DateTime.Now.ToString("yyyyMMddHHmmssfff"); //赠品发货单号(自动生成) xd.OrderCode = item.OrderCode; xd.Price = 0; //运费 //xd.Shipper = Shipper;//发货方 //备用地址 var SpareAddress = base.XMSpareAddressService.GetXMSpareAddressByParm(item.ID, 721); if (SpareAddress != null) { xd.FullName = SpareAddress.FullName; xd.Mobile = SpareAddress.Mobile; xd.Tel = SpareAddress.Tel; xd.Province = SpareAddress.Province; xd.City = SpareAddress.City; xd.County = SpareAddress.County; xd.DeliveryAddress = SpareAddress.DeliveryAddress; } else { var OrderInfo = base.XMOrderInfoService.GetXMOrderByOrderCode(item.OrderCode); if (OrderInfo != null) { xd.FullName = OrderInfo.FullName; xd.Mobile = OrderInfo.Mobile; xd.Tel = OrderInfo.Tel; xd.Province = OrderInfo.Province; xd.City = OrderInfo.City; xd.County = OrderInfo.County; xd.DeliveryAddress = OrderInfo.DeliveryAddress; } else { base.ShowMessage("订单号:" + item.OrderCode + "不存在!"); return; } } xd.IsDelivery = false;//是否发货 xd.IsEnabled = false; xd.CreateId = HozestERPContext.Current.User.CustomerID; xd.CreateDate = DateTime.Now; xd.UpdateId = HozestERPContext.Current.User.CustomerID; xd.UpdateDate = DateTime.Now; xd.PrintQuantity = 0; //打印次数 xd.PrintBatch = 0; //打印批次 base.XMDeliveryService.InsertXMDelivery(xd); XMDeliveryDetails deliverDetails = new XMDeliveryDetails(); deliverDetails.OrderNo = item.OrderCode; deliverDetails.DetailsTypeId = 11;//赠品 deliverDetails.DeliveryId = xd.Id; deliverDetails.ProductlId = 0; deliverDetails.PlatformMerchantCode = ""; deliverDetails.PrdouctName = "发票"; deliverDetails.Specifications = ""; deliverDetails.ProductNum = 1; deliverDetails.InvoiceInfoID = item.ID; deliverDetails.IsEnabled = false; deliverDetails.CreateID = HozestERPContext.Current.User.CustomerID; deliverDetails.CreateDate = DateTime.Now; deliverDetails.UpdateID = HozestERPContext.Current.User.CustomerID; deliverDetails.UpdateDate = DateTime.Now; base.XMDeliveryDetailsService.InsertXMDeliveryDetails(deliverDetails); } #endregion #region 修改发票排单状态 item.IsSingleRow = true; item.UpdateID = HozestERPContext.Current.User.CustomerID; item.UpdateDate = DateTime.Now; base.XMInvoiceInfoService.UpdateXMInvoiceInfo(item); #endregion this.BindGrid(this.Master.PageIndex, this.Master.PageSize); base.ShowMessage("排单成功!"); } } } #endregion } scope.Complete(); } }
private void SingleRow(List <int> Ids, string WareHoursesID, List <int> AddIDs) { //查询所有选中的退换货信息 var XMApplicationList = XMApplicationService.GetXMApplicationListByIds(Ids); var NoPassList = XMApplicationList.Where(a => a.IsSend == false || a.SupervisorStatus == false || a.IsSingleRow == true).ToList(); if (NoPassList.Count > 0) { base.ShowMessage("请选择已送出,已审核,未排单的数据!"); return; } //事务 using (TransactionScope scope = new TransactionScope()) { bool isSucess = true; string errMessage = ""; foreach (var item in Ids) { bool isEnough = true; XMApplication XMApplicationEntity = XMApplicationList.Where(a => a.ID == item).SingleOrDefault(); if (XMApplicationEntity != null) { int xmDeliveryID = 1; //var xmorderinfo = base.XMOrderInfoService.GetXMOrderByOrderCode(XMApplicationEntity.OrderCode);//订单号查询订单 if (XMApplicationEntity.IsSingleRow != null && (bool)XMApplicationEntity.IsSingleRow) { base.ShowMessage("订单" + XMApplicationEntity.OrderCode + "已排单!"); return; } //查询换货明细 List <XMApplicationExchange> list = XMApplicationExchangeService.GetXMApplicationExchangeListByApplicationIDType(XMApplicationEntity.ID, 1); if (list.Count <= 0) { base.ShowMessage("订单" + XMApplicationEntity.OrderCode + "无换货明细数据!"); return; } foreach (var entity in list) { int totalInventCount = 0; //总库存数量 int canInventCount = 0; //可用库存 string ManufacturersCode = ""; if (!string.IsNullOrEmpty(entity.PlatformMerchantCode)) { var productDetail = base.XMProductDetailsService.GetXMProductDetailsByPlatformMerchantCode(entity.PlatformMerchantCode, (int)XMApplicationEntity.PlatformTypeId); if (productDetail.Count > 0) { ManufacturersCode = productDetail[0].ManufacturersCode; } } if (string.IsNullOrEmpty(ManufacturersCode)) { isSucess = false; break; } //获取该产品对应仓库的实际库存数量 var inventoryInfo = base.XMInventoryInfoService.GetXMInventoryInfoByParm(ManufacturersCode, int.Parse(WareHoursesID)); if (inventoryInfo != null) { totalInventCount = inventoryInfo.StockNumber.Value; } if (totalInventCount != 0) //存在库存 { //canInventCount = totalInventCount - outCount; canInventCount = int.Parse(inventoryInfo.CanOrderCount.ToString()); if (canInventCount < entity.ProductNum) //剩余库存不足 { errMessage = errMessage + "商品编码为:" + entity.PlatformMerchantCode + " "; isEnough = false; } } else { errMessage = errMessage + "商品编码为:" + entity.PlatformMerchantCode + " "; isEnough = false; } } if (isSucess == false) { base.ShowMessage("订单号为" + XMApplicationEntity.OrderCode + "的退换货商品格式不正确,排单失败!"); break; } if (isEnough == false) //库存不足 弹出提示 { base.ShowMessage(errMessage + "的产品库存不足,请及时补货!"); return; } //根据订单号 、是否发货:否0、未打印:0 查询发货单 var xmDeliveryList = base.XMDeliveryService.GetXMDeliveryListByInfo(XMApplicationEntity.OrderCode, 687, 708); XMDelivery xd = new XMDelivery(); //未返回明细数据 新增发货单主表信息 if (AddIDs.Contains(item)) { var DeliveryList = base.XMDeliveryService.GetXMDeliveryListByOrderCode(XMApplicationEntity.OrderCode, 708); if (DeliveryList != null && DeliveryList.Count > 0) { xd = DeliveryList[0]; xmDeliveryID = xd.Id; } } else if (xmDeliveryList.Count == 0)//根据订单号、未发货查询 未返回数据 则新增发货单 { //新增 xd.DeliveryTypeId = 708; xd.DeliveryNumber = "ZP" + DateTime.Now.ToString("yyyyMMddHHmmssfff"); //赠品发货单号(自动生成) xd.OrderCode = XMApplicationEntity.OrderCode; xd.Price = 0; //运费 xd.Shipper = 687; //发货方 //判断无订单 if (XMApplicationEntity.OrderCode.StartsWith("NoOrder")) { //备用地址 var SpareAddress = base.XMSpareAddressService.GetXMSpareAddressByParm(XMApplicationEntity.ID, 710); if (SpareAddress == null) { base.ShowMessage("无订单赠品必须填写备用地址!"); return; } else { xd.FullName = SpareAddress.FullName; xd.Mobile = SpareAddress.Mobile; xd.Tel = SpareAddress.Tel; xd.Province = SpareAddress.Province; xd.City = SpareAddress.City; xd.County = SpareAddress.County; xd.DeliveryAddress = SpareAddress.DeliveryAddress; } } else { var OrderInfo = base.XMOrderInfoService.GetXMOrderByOrderCode(XMApplicationEntity.OrderCode); if (OrderInfo != null) { xd.FullName = OrderInfo.FullName; xd.Mobile = OrderInfo.Mobile; xd.Tel = OrderInfo.Tel; xd.Province = OrderInfo.Province; xd.City = OrderInfo.City; xd.County = OrderInfo.County; xd.DeliveryAddress = OrderInfo.DeliveryAddress; } else { base.ShowMessage("订单号" + XMApplicationEntity.OrderCode + "不存在!"); return; } } xd.IsDelivery = false;//是否发货 xd.IsEnabled = false; xd.CreateId = HozestERPContext.Current.User.CustomerID; xd.CreateDate = DateTime.Now; xd.UpdateId = HozestERPContext.Current.User.CustomerID; xd.UpdateDate = DateTime.Now; xd.PrintQuantity = 0; //打印次数 xd.PrintBatch = 0; //打印批次 base.XMDeliveryService.InsertXMDelivery(xd); xmDeliveryID = xd.Id; } else { //返回明细数据 ,根据明细主表Id查询主表信息 xd = xmDeliveryList[0]; xmDeliveryID = xd.Id; } if (xd != null) { foreach (var entity in list) { var productDetail = base.XMProductDetailsService.GetXMProductDetailsByPlatformMerchantCode(entity.PlatformMerchantCode, (int)XMApplicationEntity.PlatformTypeId); if (productDetail.Count <= 0) { base.ShowMessage("商品信息查询失败,请联系管理员!"); return; } XMDeliveryDetails deliverDetails = new XMDeliveryDetails(); deliverDetails.OrderNo = XMApplicationEntity.OrderCode; deliverDetails.DetailsTypeId = 10; deliverDetails.DeliveryId = xd.Id; deliverDetails.ProductlId = productDetail[0].Id; deliverDetails.SourceID = entity.ID; deliverDetails.PlatformMerchantCode = entity.PlatformMerchantCode; deliverDetails.PrdouctName = entity.ProductName; deliverDetails.Specifications = entity.Specifications; deliverDetails.ProductNum = entity.ProductNum; deliverDetails.IsEnabled = false; deliverDetails.CreateID = HozestERPContext.Current.User.CustomerID; deliverDetails.CreateDate = DateTime.Now; deliverDetails.UpdateID = HozestERPContext.Current.User.CustomerID; deliverDetails.UpdateDate = DateTime.Now; deliverDetails.WarehouseID = int.Parse(WareHoursesID); base.XMDeliveryDetailsService.InsertXMDeliveryDetails(deliverDetails); } } //发票先忽略 foreach (var entity in list) { var productDetail = base.XMProductDetailsService.GetXMProductDetailsByPlatformMerchantCode(entity.PlatformMerchantCode, (int)XMApplicationEntity.PlatformTypeId); if (productDetail.Count <= 0) { base.ShowMessage("商品信息查询失败,请联系管理员!"); return; } var inventory = base.XMInventoryInfoService.GetXMInventoryInfoByParm(productDetail[0].ManufacturersCode, int.Parse(WareHoursesID)); //其他项目判断库存管理里面的可订购数量 //扣减可订购数量 if (inventory != null) { inventory.CanOrderCount -= entity.ProductNum; base.XMInventoryInfoService.UpdateXMInventoryInfo(inventory); } } ////生成销售出库单 //var saleDelviery = base.XMSaleDeliveryService.GetXMSaleDeliveryByParm(XMApplicationEntity.ID, xmDeliveryID); ////数据不存在 生成销售出库单 //if (saleDelviery == null) //{ // //插入销售出库单主表数据 // XMSaleDelivery saleDeliveryInfo = new XMSaleDelivery(); // saleDeliveryInfo.Ref = AutoSaleDeliveryNumber(); // saleDeliveryInfo.SaleInfoId = 0; // if (!string.IsNullOrEmpty(XMApplicationEntity.OrderCode)) // { // var orderInfo = base.XMOrderInfoService.GetXMOrderByOrderCode(XMApplicationEntity.OrderCode); // if (orderInfo != null) // { // saleDeliveryInfo.OrderInfoID = orderInfo.ID; // } // } // else // { // saleDeliveryInfo.OrderInfoID = 0; // } // saleDeliveryInfo.WareHouseId = int.Parse(WareHoursesID); // saleDeliveryInfo.BillStatus = 0; // saleDeliveryInfo.SaleMoney = 0; //换货金额为0 // saleDeliveryInfo.ReceivingType = 701; // saleDeliveryInfo.BizUserId = HozestERPContext.Current.User.CustomerID; // saleDeliveryInfo.BizDt = DateTime.Now; // saleDeliveryInfo.CreateID = HozestERPContext.Current.User.CustomerID; // saleDeliveryInfo.CreateDate = DateTime.Now; // saleDeliveryInfo.UpdateDate = DateTime.Now; // saleDeliveryInfo.UpdateID = HozestERPContext.Current.User.CustomerID; // saleDeliveryInfo.IsEnable = false; // saleDeliveryInfo.IsAudit = true; // saleDeliveryInfo.DeliveryID = xmDeliveryID; // base.XMSaleDeliveryService.InsertXMSaleDelivery(saleDeliveryInfo); // //插入销售出库单明细数据 // foreach (var entity in list) // { // var productDetail = base.XMProductDetailsService.GetXMProductDetailsByPlatformMerchantCode(entity.PlatformMerchantCode, (int)XMApplicationEntity.PlatformTypeId); // if (productDetail.Count <= 0) // { // base.ShowMessage("商品信息查询失败,请联系管理员!"); // return; // } // XMSaleDeliveryProductDetails saleDeliveryDetail = new XMSaleDeliveryProductDetails(); // saleDeliveryDetail.SaleDeliveryId = saleDeliveryInfo.Id; // saleDeliveryDetail.ProductId = productDetail[0].Id; // saleDeliveryDetail.PlatformMerchantCode = productDetail[0].ManufacturersCode; // saleDeliveryDetail.SaleCount = entity.ProductNum; // saleDeliveryDetail.ProductMoney = 0; // saleDeliveryDetail.ProductPrice = 0; //退换货单价为0; // saleDeliveryDetail.CreateDate = saleDeliveryDetail.UpdateDate = DateTime.Now; // saleDeliveryDetail.CreateID = saleDeliveryDetail.UpdateID = HozestERPContext.Current.User.CustomerID; // saleDeliveryDetail.IsEnable = false; // base.XMSaleDeliveryProductDetailsService.InsertXMSaleDeliveryProductDetails(saleDeliveryDetail); // var inventory = base.XMInventoryInfoService.GetXMInventoryInfoByParm(productDetail[0].ManufacturersCode, int.Parse(WareHoursesID));//其他项目判断库存管理里面的可订购数量 // //扣减可订购数量 // if (inventory != null) // { // inventory.CanOrderCount -= entity.ProductNum; // base.XMInventoryInfoService.UpdateXMInventoryInfo(inventory); // } // } //} XMApplicationEntity.IsSingleRow = true; XMApplicationEntity.UpdateDate = DateTime.Now; XMApplicationEntity.UpdateID = HozestERPContext.Current.User.CustomerID; XMApplicationService.UpdateXMApplication(XMApplicationEntity); } } scope.Complete(); } base.ShowMessage("操作成功!"); }