Exemple #1
0
        private int GetOpenTicketCount(int entityId, int ticketId)
        {
            var ids = _ticketServiceBase.GetOpenTicketIds(entityId).ToList();

            if (ticketId > 0 && !ids.Contains(ticketId))
            {
                ids.Add(ticketId);
            }
            return(ids.Count - (ticketId > 0 ? 1 : 0));
        }
Exemple #2
0
        private void OnEntitySelectedForTicket(EventParameters <OperationRequest <Entity> > eventParameters)
        {
            if (eventParameters.Topic == EventTopicNames.EntitySelected)
            {
                FireEntitySelectedRule(eventParameters.Value.SelectedItem);
                if (SelectedTicket != null)
                {
                    _ticketService.UpdateEntity(SelectedTicket, eventParameters.Value.SelectedItem);
                    if (_applicationState.CurrentDepartment != null && _applicationState.CurrentDepartment.TicketCreationMethod == 0 &&
                        _applicationState.SelectedEntityScreen != null &&
                        SelectedTicket.Orders.Count > 0 && eventParameters.Value.SelectedItem.Id > 0 &&
                        _applicationState.TempEntityScreen != null &&
                        eventParameters.Value.SelectedItem.EntityTypeId == _applicationState.TempEntityScreen.EntityTypeId)
                    {
                        CloseTicket();
                    }
                    else
                    {
                        DisplaySingleTicket();
                    }
                }
                else
                {
                    var openTickets = _ticketServiceBase.GetOpenTicketIds(eventParameters.Value.SelectedItem.Id).ToList();
                    if (!openTickets.Any())
                    {
                        if (_applicationState.SelectedEntityScreen != null &&
                            _applicationState.SelectedEntityScreen.AskTicketType &&
                            _cacheService.GetTicketTypes().Count() > 1 &&
                            _applicationState.TempTicketType == null)
                        {
                            _lastSelectedEntity = eventParameters.Value.SelectedItem;
                            DisplayTicketTypeList();
                            return;
                        }

                        if (_applicationState.TempTicketType != null)
                        {
                            _applicationStateSetter.SetCurrentTicketType(_applicationState.TempTicketType);
                            _applicationState.TempTicketType = null;
                        }

                        OpenTicket(0);
                        _ticketService.UpdateEntity(SelectedTicket, eventParameters.Value.SelectedItem);
                    }
                    else if (openTickets.Count > 1)
                    {
                        _lastSelectedEntity = eventParameters.Value.SelectedItem;
                        _ticketListViewModel.UpdateListByEntity(eventParameters.Value.SelectedItem);
                        DisplayTicketList();
                        return;
                    }
                    else
                    {
                        OpenTicket(openTickets.ElementAt(0));
                    }
                    EventServiceFactory.EventService.PublishEvent(EventTopicNames.ActivatePosView);
                }
            }
        }