Beispiel #1
0
        public RetailTicket Create(string ticketType, int tableId)
        {
            var ticket       = new Ticket();
            var retailTicket = new RetailTicket();

            switch (ticketType)
            {
            case "DINE_IN":
                ticket.TableId      = tableId;
                ticket.CreationDate = DateTime.Now;
                ticket.TicketType   = ticketType;
                _context.Tickets.Add(ticket);
                _context.SaveChanges();
                retailTicket.Id           = ticket.Id;
                retailTicket.CreationDate = ticket.CreationDate.ToString();
                retailTicket.TicketType   = ticket.TicketType;

                break;

            case "TAKE_OUT":
                //TODO: Implement Take Out Type Creation.
                break;

            case "RETAIL":
                //TODO: Implement Retail Type Creation.
                break;
            }

            return(retailTicket);
        }
Beispiel #2
0
        public GenericApiResponse SaveRetail([FromBody] RetailTicket ticketInfo, [FromBody] RetailTicketItem[] ticketItems)
        {
            var response = new GenericApiResponse();

            var ticket = _context.Tickets.FirstOrDefault(x => x.Id == ticketInfo.Id);

            if (ticket == null)
            {
                response.Success = false;
                response.Error   = (int)ErrorCodes.RetailScreenNotFoundTicket;
                response.Message = ErrorMessages.RetailScreenNotFoundTicket;
                return(response);
            }

            ticket.Paid          = ticketInfo.Paid;
            ticket.PaidAmount    = ticketInfo.PaidAmount;
            ticket.ClosingDate   = Convert.ToDateTime(ticketInfo.ClosingDate);
            ticket.CreationDate  = Convert.ToDateTime(ticketInfo.CreationDate);
            ticket.DueAmount     = ticketInfo.DueAmount;
            ticket.SubTotal      = ticketInfo.SubTotal;
            ticket.Settled       = ticketInfo.Settled;
            ticket.Status        = ticketInfo.Status;
            ticket.TableId       = ticketInfo.TableId;
            ticket.TotalDiscount = ticketInfo.TotalDiscount;
            ticket.TotalPrice    = ticketInfo.TotalPrice;
            ticket.TotalTax      = ticketInfo.TotalTax;
            ticket.Voided        = ticketInfo.Voided;
            ticket.VoidByUser    = ticketInfo.VoidedByUser;
            ticket.VoidReason    = ticketInfo.VoidedReason;

            var currentTicketItems = _context.TicketItems.Where(x => x.TicketId == ticket.Id);

            foreach (var ticketItem in ticketItems)
            {
                var currentTicketItem = currentTicketItems.FirstOrDefault(x => x.Id == ticketItem.Id);
                if (currentTicketItem == null)
                {
                    var item = new TicketItem();
                    SyncTicketItem(item, ticketItem);
                    _context.TicketItems.Add(item);
                    continue;
                }

                SyncTicketItem(currentTicketItem, ticketItem);
            }

            _context.SaveChanges();
            response.Success = true;
            return(response);
        }