Exemplo n.º 1
0
        /// <summary>
        /// 保存批量打印历史
        /// </summary>
        /// <param name="orderNos"></param>
        /// <param name="templateId"></param>
        /// <returns></returns>
        public ActionResult SavePrintBatch(string orderNos, string templateId)
        {
            List <string> hasPrintedOrderNos = _orderBll.CheckOrderPrintStatus(orderNos);

            if (hasPrintedOrderNos != null && hasPrintedOrderNos.Count > 0)
            {
                StringBuilder sb = new StringBuilder();
                foreach (var orderNo in hasPrintedOrderNos)
                {
                    sb.Append(orderNo + ",");
                }
                return(Content(new JsonMessage {
                    Success = false, Code = "-1", Message = "[操作失败]以下订单不是待打印状态:" + sb.ToString()
                }.ToString()));
            }

            IDatabase     database    = DataFactory.Database();
            DbTransaction isOpenTrans = database.BeginTrans();

            try
            {
                var aryOrderNo         = orderNos.Split(',');
                PrintBatchEntity batch = new PrintBatchEntity();
                batch.Create();
                batch.PrintTime = DateTime.Now;
                batch.ItemCount = 0;

                foreach (string orderNo in aryOrderNo)
                {
                    if (!string.IsNullOrEmpty(orderNo))
                    {
                        bool flag = _orderBll.UpdateIsPrinting(orderNo, isOpenTrans);
                        if (flag)
                        {
                            PrintBatchItemEntity batchItem = new PrintBatchItemEntity();
                            batchItem.Create();
                            batchItem.BatchId = batch.BatchId;
                            batchItem.OrderNo = orderNo;
                            batch.ItemCount   = batch.ItemCount + 1;
                            database.Insert(batchItem, isOpenTrans);
                        }
                        else
                        {
                            throw new Exception(string.Format("订单{0}更新打印状态失败", orderNo));
                        }
                    }
                }
                database.Insert(batch);

                database.Commit();
                return(Content(new JsonMessage {
                    Success = true, Code = "1", Message = "更新成功"
                }.ToString()));
            }
            catch (Exception ex)
            {
                database.Rollback();
                return(Content(new JsonMessage {
                    Success = false, Code = "-1", Message = "操作失败:" + ex.Message
                }.ToString()));
            }
        }