/// <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); } }
/// <summary> /// 生成快递单 /// </summary> private void OnExpressReceiptCreate() { if (SelectedDeliveryOrderForExpress == null) { MvvmUtility.ShowMessageAsync("请选择一张发货单", "提示", MessageBoxButton.OK, MessageBoxImage.Warning); return; } ShippingSaleCreateDto.ValidateProperties(); if (ShippingSaleCreateDto.HasErrors) { return; } ShippingSaleCreateDto.DeliveryOrderId = SelectedDeliveryOrderForExpress.Id; DeliveryOrderService.Update <ExpressReceiptCreationDTO>(SelectedDeliveryOrderForExpress, ShippingSaleCreateDto); SelectedDeliveryOrderForExpress.ShipViaId = ShippingSaleCreateDto.ShipViaID; SelectedDeliveryOrderForExpress.ExpressCode = ShippingSaleCreateDto.ShippingNo; SelectedDeliveryOrderForExpress.ShipViaExpressFee = ShippingSaleCreateDto.ShippingFee; SelectedDeliveryOrderForExpress.ShipCompanyName = ShippingViaList.Where(shippingVia => shippingVia.Id == ShippingSaleCreateDto.ShipViaID).First().Name; ShippingSaleCreateDto.ShippingNo = null; }