Пример #1
0
 public virtual void SaveOrderLineBarCode(OrderLineGeneratedBarcode orderLineGbc)
 {
     if (orderLineGbc.Id == Guid.Empty)
     {
         OrderLineGeneratedBCRepository.Add(orderLineGbc);
     }
     else
     {
         OrderLineGeneratedBCRepository.Update(orderLineGbc);
     }
 }
        public void GenerateOrderBarcodes(Order order)
        {
            try
            {
                var orderLines = order.OrderLines;

                if (orderLines == null || orderLines.Count <= 0)
                {
                    return;
                }

                foreach (var orderline in orderLines)
                {
                    var orderLineGenerateBarCodes = CheckoutService.GetOrderLineGeneratedBarcodes(orderline);

                    for (var y = 0; y < orderline.TicketQuantity; y++)
                    {
                        if (orderLineGenerateBarCodes != null && orderLineGenerateBarCodes.Count != 0)
                        {
                            continue;
                        }

                        var ticket = (orderline.Ticket == null && orderline.TicketId != null)?
                                     TicketService.GetTicketById(orderline.TicketId.Value.ToString())
                            : orderline.Ticket;

                        var barcode = BarcodeService.GetNextBarcode(ticket, orderline.TicketType).Substring(0, 12);

                        var orderlineGeneratedBarcode = new OrderLineGeneratedBarcode
                        {
                            OrderLineId      = orderline.Id,
                            GeneratedBarcode = barcode +
                                               CalculateBarcodeChecksum(barcode.Substring(0, 12)),
                            DateCreated = DateTime.Now
                        };

                        CheckoutService.SaveOrderLineBarCode(orderlineGeneratedBarcode);
                    }
                }
            }
            catch
            {
                Log("***Exception : GenerateOrderBarcodes for the current orderid:" + order.Id);
            }
        }