示例#1
0
        public ActionResult SubmitOrder(long orderId)
        {
            Order order = new Order();

            try
            {
                order = _orderRepository.GetOrderByOrderId(orderId);
                _orderRepository.UpdateOrder(order);

                //Generate delivery order
                string beginSerialNumber    = "CK-" + DateTime.Now.ToString("yyyyMMdd");
                string maxDeliveryNumberStr = _deliveryOrderRepository.GetMaxDeliveryOrderNumber(beginSerialNumber);

                DeliveryOrder deliveryOrder = new DeliveryOrder();
                deliveryOrder.DeliveryOrderNumber = beginSerialNumber + "-" + maxDeliveryNumberStr;
                deliveryOrder.DeliveryDate        = DateTime.Now;
                deliveryOrder.TotalRMBInChinese   = MathHelper.ConvertToChinese((Double)order.TotalAmount);
                deliveryOrder.TotalRMBInNumberic  = order.TotalAmount.ToString();
                deliveryOrder.OrderId             = order.Id;

                long             currentDeliveryOrderId = _deliveryOrderRepository.AddDeliveryOrder(deliveryOrder);
                List <OrderItem> orderItems             = order.OrderItems.ToList();
                foreach (var item in orderItems)
                {
                    DeliveryOrderItem deliveryOrderItem = new DeliveryOrderItem();
                    deliveryOrderItem.ProductName     = item.Product.ProductName;
                    deliveryOrderItem.Unit            = "件";
                    deliveryOrderItem.OutNumber       = item.Quantity;
                    deliveryOrderItem.PricePerProduct = item.UnitPrice;
                    deliveryOrderItem.TotalPrice      = item.Quantity * item.UnitPrice;
                    deliveryOrderItem.DeliveryOrderId = currentDeliveryOrderId;

                    _deliveryOrderItemRepository.AddDeliveryOrderItem(deliveryOrderItem);
                }

                //Generate delivery note
                DeliveryNote deliveryNote = new DeliveryNote();
                deliveryNote.DeliveryNoteNumber = "PS-" + DateTime.Now.ToString("yyyyMMdd") + "-" + maxDeliveryNumberStr;
                //Generate QR Code
                deliveryNote.QRCodeImgURL = QRCodeHelper.GetQRImage(deliveryNote.DeliveryNoteNumber);
                deliveryNote.OrderId      = order.Id;

                _deliveryNoteRepository.AddDeliveryNote(deliveryNote);
            }
            catch (Exception ex)
            {
            }
            return(View("SubmitOrder", order));
        }
        public bool AddDeliveryNote(DeliveryNoteModel model)
        {
            var note = Mapper.Map <DeliveryNoteEntity>(model);

            note.SubscriberId = UserContext.Current.SubscriberId;
            if (_noteRepository.AddDeliveryNote(note))
            {
                if (model.HasProperties)
                {
                    if (!AddPropertyValues(note, model.Properties))
                    {
                        var properties = JsonConvert.SerializeObject(model.Properties);
                    }
                }
                return(true);
            }
            return(false);
        }