コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        /// <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;
        }