/// <summary> /// 预览或打印退货单 /// </summary> /// <param name="flag"></param> /// <returns></returns> private bool PrintCommon(bool flag = false) { if (SelectedRma == null) { MvvmUtility.ShowMessageAsync("请选择退货单", "提示", MessageBoxButton.OK, MessageBoxImage.Warning); return(false); } try { IPrint pr = new PrintWin(); string xsdName = "InvoiceDataSet"; string rdlcName = "Print//PrintRMA.rdlc"; var invoiceModel = new ReturnGoodsPrintModel(); invoiceModel.RmaDT = new List <RMADto> { SelectedRma }; invoiceModel.RMADetailDT = RmaDetailList; invoiceModel.OrderDT = AppEx.Container.GetInstance <IPackageService>() .GetOrderByOrderNo(SelectedRma.OrderNo) .ToList(); pr.PrintReturnGoods(xsdName, rdlcName, invoiceModel, flag); return(true); } catch (Exception Ex) { MvvmUtility.ShowMessageAsync("打印退货单失败," + Ex.Message, "提示", MessageBoxButton.OK, MessageBoxImage.Error); return(false); } }
private bool PrintCommon(bool previewOnly = false, bool isRecoveredPrint = false) { const string XsdName = "InvoiceDataSet"; const string ReportName = "Print//SalesOrder.rdlc"; if (SaleList == null || SaleSelected == null) { MvvmUtility.ShowMessageAsync("请选择要打印预览的销售单"); return(false); } SaleSelected.IsRecoveredPrint = isRecoveredPrint; var printModel = new PrintModel { SaleDT = new List <SaleDto> { SaleSelected }, SaleDetailDT = InvoiceDetail4List, }; MvvmUtility.PerformActionOnUIThread( () => { IPrint print = new PrintWin(); print.Print(XsdName, ReportName, printModel, previewOnly); }); return(true); }
/// <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 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); } }