/// <summary> /// 打印快递单 /// </summary> /// <param name="deliveryOrder"></param> /// <param name="preview"></param> private void PrintExpressReceipt(OPC_ShippingSale deliveryOrder, bool preview) { if (deliveryOrder == null) { MvvmUtility.ShowMessageAsync("请选择一张快递单", "提示", MessageBoxButton.OK, MessageBoxImage.Warning); return; } if (!deliveryOrder.SalesOrders.Any()) { MvvmUtility.ShowMessageAsync("没有对应的销售单信息", "提示", MessageBoxButton.OK, MessageBoxImage.Warning); return; } if (deliveryOrder.ShipViaId == null) { MvvmUtility.ShowMessageAsync("尚未生成快递单", "提示", MessageBoxButton.OK, MessageBoxImage.Warning); return; } var selectedShippingVia = ShippingViaList.Where(shippingVia => shippingVia.Id == deliveryOrder.ShipViaId.Value).FirstOrDefault(); if (selectedShippingVia == null) { MvvmUtility.ShowMessageAsync("无效的快递公司", "提示", MessageBoxButton.OK, MessageBoxImage.Warning); return; } if (string.IsNullOrEmpty(selectedShippingVia.TemplateName)) { MvvmUtility.ShowMessageAsync("暂不支持此快递公司的打印", "提示", MessageBoxButton.OK, MessageBoxImage.Warning); return; } var reportName = string.Format("Print//{0}.rdlc", selectedShippingVia.TemplateName); var salesOrder = deliveryOrder.SalesOrders.First(); var order = salesOrder.Order; var expressReceiptPrintModel = new PrintExpressModel() { CustomerAddress = order.CustomerAddress, CustomerName = order.CustomerName, CustomerPhone = order.CustomerPhone, StoreName = salesOrder.StoreName, StoreAddress = salesOrder.StoreAddress, StoreTel = salesOrder.StoreTelephone, ExpressFee = deliveryOrder.ExpressFee.ToString("f2") }; Action print = () => { IPrint reporter = new PrintWin(); reporter.PrintExpress(reportName, expressReceiptPrintModel, !preview); }; MvvmUtility.PerformActionOnUIThread(print); if (!preview) { DeliveryOrderService.Print(deliveryOrder, ReceiptType.ExpressReceipt); } }
private void OnOrderOfHandOverLoad(OPC_ShippingSale deliveryOrder) { if (deliveryOrder == null) { OrderOfHandOver = null; return; } var salesOrder = deliveryOrder.SalesOrders.FirstOrDefault(); OrderOfHandOver = salesOrder == null ? null : new List <Order> { salesOrder.Order }; }
private void PrintDeliveryOrder(OPC_ShippingSale deliveryOrder, bool preview) { const string ReportName = "Print//DeliveryReceipt.rdlc"; if (deliveryOrder == null) { MvvmUtility.ShowMessageAsync("请选择一张发货单", "提示", MessageBoxButton.OK, MessageBoxImage.Warning); return; } if (!deliveryOrder.SalesOrders.Any()) { MvvmUtility.ShowMessageAsync("没有对应的销售单信息", "提示", MessageBoxButton.OK, MessageBoxImage.Warning); return; } var order = deliveryOrder.SalesOrders.First().Order; var salesOrders = deliveryOrder.SalesOrders; var salesOrderDetails = new List <OPC_SaleDetail>(); salesOrders.ForEach(salesOrder => { var details = SalesOrderDetailService.QueryAll(new QuerySalesOrderDetailBySalesOrderNo { SalesOrderNo = salesOrder.SaleOrderNo }); salesOrderDetails.AddRange(details); }); Action print = () => { IPrint reporter = new PrintWin(); reporter.PrintDeliveryOrder(ReportName, order, salesOrders, salesOrderDetails, !preview); }; MvvmUtility.PerformActionOnUIThread(print); if (!preview) { DeliveryOrderService.Print(deliveryOrder, ReceiptType.DeliveryOrder); } }
public bool CreateShippingSale(int userId, ShippingSaleCreateDto shippingSaleDto) { var dt = DateTime.Now; var user = _accountService.GetByUserID(userId); _orderRepository.SetCurrentUser(user); _shippingSaleRepository.SetCurrentUser(user); _sectionRepository.SetCurrentUser(user); _saleRepository.SetCurrentUser(user); var order = _orderRepository.GetOrderByOrderNo(shippingSaleDto.OrderNo); foreach (var saleID in shippingSaleDto.SaleOrderIDs) { var saleOrder = _saleRepository.GetBySaleNo(saleID); Section section = null;; if (saleOrder != null) { section = _sectionRepository.GetByID((int)saleOrder.SectionId); } var sale = new OPC_ShippingSale(); sale.CreateDate = dt; sale.CreateUser = userId; sale.UpdateDate = dt; sale.UpdateUser = userId; sale.OrderNo = shippingSaleDto.OrderNo; sale.ShipViaId = shippingSaleDto.ShipViaID; sale.ShippingCode = shippingSaleDto.ShippingCode; sale.ShippingFee = (decimal)(shippingSaleDto.ShippingFee); sale.ShippingStatus = EnumSaleOrderStatus.PrintInvoice.AsId(); sale.ShipViaName = shippingSaleDto.ShipViaName; sale.ShippingAddress = order.ShippingAddress; sale.ShippingContactPerson = order.ShippingContactPerson; sale.ShippingContactPhone = order.ShippingContactPhone; if (section != null) { sale.StoreId = section.StoreId; } //sale.BrandId = order.BrandId; //验证是否已经生成过发货单 var lst = _shippingSaleRepository.GetBySaleOrderNo(saleID); if (lst != null) { throw new ShippingSaleExistsException(shippingSaleDto.ShippingCode); } //验证发货单号 是否重复 var e = _shippingSaleRepository.GetByShippingCode(shippingSaleDto.ShippingCode, 1, 1); if (e.TotalCount > 0) { throw new ShippingSaleExistsException(shippingSaleDto.ShippingCode); } var pSale = _saleRepository.GetBySaleNo(saleID); pSale.ShippingCode = sale.ShippingCode; pSale.ShippingStatus = sale.ShippingStatus; _saleRepository.Update(pSale); var bl = _shippingSaleRepository.Create(sale); _saleRepository.UpdateSatus(saleID, EnumSaleOrderStatus.PrintExpress, userId); } return(true); }
public void CreatePackage(ShippingSaleCreateDto package, int uid) { using (var db = new YintaiHZhouContext()) { var order = db.Orders.FirstOrDefault(x => x.OrderNo == package.OrderNo); if (order == null) { throw new PackageException("订单无效"); } var shippingSale = db.OPC_ShippingSales.FirstOrDefault( x => x.OrderNo == package.OrderNo && x.ShippingCode == package.ShippingCode); if (shippingSale != null) { shippingSale.ShippingCode = package.ShippingCode; shippingSale.ShipViaName = package.ShipViaName; shippingSale.ShipViaId = package.ShipViaID; shippingSale.ShippingFee = package.ShippingFee; shippingSale.UpdateDate = DateTime.Now; shippingSale.UpdateUser = uid; db.SaveChanges(); } else { shippingSale = new OPC_ShippingSale() { CreateDate = DateTime.Now, CreateUser = uid, UpdateDate = DateTime.Now, UpdateUser = uid, OrderNo = package.OrderNo, ShipViaId = package.ShipViaID, ShippingCode = package.ShippingCode, ShippingFee = (decimal)(package.ShippingFee), ShippingStatus = EnumSaleOrderStatus.PrintInvoice.AsId(), ShipViaName = package.ShipViaName, ShippingAddress = order.ShippingAddress, ShippingContactPerson = order.ShippingContactPerson, ShippingContactPhone = order.ShippingContactPhone, //StoreId = section.StoreId, }; shippingSale = db.OPC_ShippingSales.Add(shippingSale); db.SaveChanges(); } using (var ts = new TransactionScope()) { foreach (var saleOrderNo in package.SaleOrderIDs) { var saleOrder = db.OPC_Sales.FirstOrDefault(x => x.SaleOrderNo == saleOrderNo); if (saleOrder == null) { continue; //throw new PackageException("包裹中包含无效的销售单"); } saleOrder.ShippingSaleId = shippingSale.Id; saleOrder.ShipViaId = package.ShipViaID; saleOrder.ShippingCode = package.ShippingCode; saleOrder.ShippingStatus = shippingSale.ShippingStatus; saleOrder.UpdatedDate = DateTime.Now; saleOrder.UpdatedUser = uid; saleOrder.Status = (int)EnumSaleOrderStatus.PrintExpress; saleOrder.ShippingFee = package.ShippingFee; db.SaveChanges(); } ts.Complete(); } } }
/// <summary> /// 打印快递单 /// </summary> private void OnExpressReceiptPrint(OPC_ShippingSale deliveryOrder) { PrintExpressReceipt(deliveryOrder, false); }
/// <summary> /// 打印预览快递单 /// </summary> private void OnExpressReceiptPreview(OPC_ShippingSale deliveryOrder) { PrintExpressReceipt(deliveryOrder, true); }
private void OnDeliveryOrderPreview(OPC_ShippingSale deliveryOrder) { PrintDeliveryOrder(deliveryOrder, true); }
private void OnDeliveryOrderPrint(OPC_ShippingSale deliveryOrder) { PrintDeliveryOrder(deliveryOrder, false); }
public IHttpActionResult PostOrder([FromBody] CreateShippingSaleOrderRequest request, [UserId] int userId, [UserProfile] UserProfile userProfile) { //不同的销售单可以生成同一个出库单 if (!ModelState.IsValid || request == null || request.SalesOrderNos == null || request.SalesOrderNos.Count == 0) { return(BadRequest("参数错误")); } //验证用户合法性 if (userProfile.StoreIds != null && !userProfile.StoreIds.Any()) { return(BadRequest("您没有门店信息,请先维护门店信息")); } var stores = userProfile.StoreIds == null ? null : userProfile.StoreIds.ToList(); var saleList = _saleOrderRepository.GetListByNos(request.SalesOrderNos, new SaleOrderFilter { DataRoleStores = stores, // HasDeliveryOrderGenerated = false, Status = (int)EnumSaleOrderStatus.ShipInStorage }); if (saleList.Count != request.SalesOrderNos.Count) { return(BadRequest("获取销售单信息不一致,请重新选择销售单")); } var s = saleList[0]; //目前规则只能 单订单 1对1 出货单 foreach (var item in saleList) { if (s.OrderNo != item.OrderNo) { return(BadRequest(String.Format("订单ID的不一致,请确认。订单号:{0} vs {1}", s.OrderNo, item.OrderNo))); } } var order = _orderRepository.GetOrderByOrderNo(s.OrderNo); var section = _sectionRepository.GetByID(s.SectionId ?? 0); var entity = new OPC_ShippingSale { CreateDate = DateTime.Now, CreateUser = userId, UpdateDate = DateTime.Now, UpdateUser = userId, OrderNo = order.OrderNo, PrintTimes = 0, RmaNo = String.Empty, ShipViaId = 0, ShipViaName = String.Empty, ShippingAddress = order.ShippingAddress, ShippingCode = String.Empty, ShippingContactPerson = order.ShippingContactPerson, ShippingContactPhone = order.ShippingContactPhone, ShippingFee = 0m, ShippingRemark = String.Empty, ShippingStatus = (int)EnumSaleOrderStatus.PrintInvoice, ShippingZipCode = order.ShippingZipCode, StoreId = section == null ? order.StoreId : section.StoreId,//拿销售单storeid }; var model = _shippingOrderRepository.CreateBySaleOrder(entity, saleList, userId, String.Empty); var dto = Mapper.Map <ShippingOrderModel, ShippingSaleDto>(model); return(RetrunHttpActionResult(dto)); }