示例#1
0
        protected void SetTicketText(ETicket ticket, string value)
        {
            switch (ticket)
            {
            case ETicket.TAXI:
                taxiCount.text = value;
                break;

            case ETicket.BUS:
                busCount.text = value;
                break;

            case ETicket.UNDERGROUND:
                undergroundCount.text = value;
                break;

            case ETicket.BLACK_TICKET:
                blackTicketCount.text = value;
                break;

            case ETicket.DOUBLE_TICKET:
                doubleTicketCount.text = value;
                break;
            }
        }
示例#2
0
        protected string GetTicketValue(Dictionary <ETicket, int> ticketDict, ETicket ticketKey)
        {
            if (ticketDict.ContainsKey(ticketKey))
            {
                return(ticketDict[ticketKey].ToString());
            }

            return("0");
        }
        protected void Current_OnDetectiveTicketRemoved(object sender, ETicket e)
        {
            Agent misterX = agentList.FirstOrDefault(p => p.Data.PlayerType == EPlayerType.MISTERX);

            misterX.AddTickets(e, 1);
            GameEvents.Current.TicketUpdated(null, new TicketUpdateEventArgs(new List <PlayerData>()
            {
                misterX.Data, ((Agent)sender).Data
            }));
        }
        private void Current_OnTicketSelected(object sender, TicketButton e)
        {
            if (e != null && !e.Equals(selectedTicketButton))
            {
                UnselectAll();

                e.Select             = true;
                selectedTicketButton = e;
                selectedTicket       = e.GetTicket();
            }
        }
        public void AddHistoryItem(int round, Agent agent)
        {
            PlayerData  agentDataClone = agent.Data.Clone();
            ETicket     payedTicket    = DeterminePayedTicket(round, agentDataClone);
            HistoryItem item           = new HistoryItem(round, payedTicket, agentDataClone);

            history.Add($"{round}-{agentDataClone.ID}", item);

            if (round > 0 && agentDataClone.PlayerType == EPlayerType.MISTERX)
            {
                historylist.AddVisibleItem(item, detectionRounds.Contains(round));
            }
        }
        protected ETicket DeterminePayedTicket(int round, PlayerData playerData)
        {
            ETicket returnTicket = ETicket.EMPTY;

            if (round > 0)
            {
                HistoryItem lastEntry = history[$"{round - 1}-{playerData.ID}"];

                if (playerData.PlayerType == EPlayerType.DETECTIVE)
                {
                    returnTicket = playerData.Tickets.Where(ticket => ticket.Value == lastEntry.Data.Tickets[ticket.Key] - 1).FirstOrDefault().Key;
                }
                else if (playerData.PlayerType == EPlayerType.MISTERX)
                {
                    returnTicket = playerData.Tickets.Where(ticket => ticket.Value == lastEntry.Data.Tickets[ticket.Key] - 1).FirstOrDefault().Key;

                    if (returnTicket == ETicket.EMPTY)
                    {
                        List <ETicket> ticketsAdded = history.Where(historyItem => historyItem.Key.StartsWith($"{round-1}-") && !historyItem.Key.EndsWith($"-{playerData.ID}"))
                                                      .Select(historyItem => historyItem.Value.Ticket).ToList();

                        Dictionary <ETicket, int> countedTickets = new Dictionary <ETicket, int>();
                        Enum.GetValues(typeof(ETicket)).Cast <ETicket>().ToList().ForEach(ticket => countedTickets.Add(ticket, 0));

                        foreach (ETicket ticket in ticketsAdded)
                        {
                            if (countedTickets.ContainsKey(ticket))
                            {
                                countedTickets[ticket]++;
                            }
                            else
                            {
                                countedTickets.Add(ticket, 1);
                            }
                        }

                        returnTicket = playerData.Tickets.Where(ticket => ticket.Value == lastEntry.Data.Tickets[ticket.Key] + countedTickets[ticket.Key] - 1).FirstOrDefault().Key;
                    }
                }
            }

            return(returnTicket);
        }
示例#7
0
        private ErrorNegocio ValidarDatosTicket(ETicket ticket)
        {
            ErrorNegocio retorno = null;

            if (ticket.Encabezado.IdDoc.FchEmis.Date >= DateTime.Now.Date)
            {
                retorno = new ErrorNegocio()
                {
                    Descripcion = "La fecha de emisión no puede ser mayor a la fecha actual"
                };
                return(retorno);
            }

            if (String.IsNullOrEmpty(ticket.Encabezado.Emisor.RUCEmisor) || ticket.Encabezado.Emisor.RUCEmisor.Length < 4)
            {
                retorno = new ErrorNegocio()
                {
                    Descripcion = "Ruc inválido " + ticket.Encabezado.Emisor.RUCEmisor
                };
                return(retorno);
            }

            return(retorno);
        }
示例#8
0
 public TicketEventArgs(string playerID, ETicket ticket, IStreet street)
 {
     this.PlayerID = playerID;
     this.Ticket   = ticket;
     this.Street   = street;
 }
示例#9
0
        public ResultGuardarTicket GuardarSobreCFEXML(string sobreCFE, string destinatarioEmail, string adenda)
        {
            string ruc = "";

            DataAccess.DalcCFE db   = new DataAccess.DalcCFE();
            long        recepcionId = long.MinValue;
            XmlDocument xmlDoc      = new XmlDocument();

            xmlDoc.LoadXml(sobreCFE);
            ResultGuardarTicket retorno = new ResultGuardarTicket();
            ErrorNegocio        error   = null;

            //Convierto el XML en una entidad
            ETicket ticket = new ETicket();

            ticket.Encabezado  = this.ConvertToEncabezado(xmlDoc);
            ticket.Detalle     = this.ConvertToDetalle(xmlDoc);
            ticket.Referencias = this.ConvertToReferencia(xmlDoc);

            try
            {
                //## INICIO - Aplico las validaciones de negocio ##
                error = this.ValidarDatosTicket(ticket);

                if (error != null)
                {
                    retorno.Error = error;
                    return(retorno);
                }
                //## FIN - Aplico las validaciones de negocio ##

                using (TransactionScope scope = new TransactionScope())
                {
                    //Guardo la Recepcion
                    recepcionId = db.GuardarRecepcion(destinatarioEmail, "N");

                    //Guardo el encabezado IdDoc
                    db.GuardarEncabezadoIdDoc(recepcionId, null, recepcionId, ticket.Encabezado.Emisor.CdgDGISucur, ticket.Encabezado.IdDoc.FmaPago,
                                              ticket.Encabezado.IdDoc.FchEmis, 1, null, null, 0, ticket.Encabezado.IdDoc.FchEmis, null, null, ticket.Encabezado.IdDoc.TipoCFE,
                                              null, null, null, null, null);

                    if (ticket.Encabezado.Receptor.TipoDocRecep.Equals(3))
                    {
                        ruc = ticket.Encabezado.Receptor.DocRecep;
                    }
                    else
                    {
                        ruc = ticket.Encabezado.Receptor.DocRecepExt;
                    }

                    //Guardo el Receptor
                    db.GuardarEncabezadoReceptor(recepcionId, null, recepcionId, ruc, ticket.Encabezado.Receptor.TipoDocRecep, ticket.Encabezado.Receptor.CodPaisRecep,
                                                 ruc, ticket.Encabezado.Receptor.RznSocRecep, ticket.Encabezado.Receptor.DirRecep, ticket.Encabezado.Receptor.CiudadRecep, String.Empty, String.Empty, null, null, null, null);

                    //Guardo los totales
                    db.GuardarEncabezadoTotales(recepcionId, null, ticket.Encabezado.Totales.TpoMoneda, ticket.Encabezado.Totales.TpoCambio, ticket.Encabezado.Totales.MntNoGrv, 0, 0, 0, ticket.Encabezado.Totales.MntNetoIvaTasaMin,
                                                ticket.Encabezado.Totales.MntNetoIVATasaBasica, 0, null, ticket.Encabezado.Totales.IVATasaMin, ticket.Encabezado.Totales.IVATasaBasica, ticket.Encabezado.Totales.MntIVATasaMin, ticket.Encabezado.Totales.MntIVATasaBasica,
                                                0, ticket.Encabezado.Totales.MntTotal, 0, ticket.Encabezado.Totales.CantLinDet, 0, ticket.Encabezado.Totales.MntPagar, 0, 0, 0);

                    //Guardo el detalle de la factura
                    if (ticket.Detalle != null && ticket.Detalle.Any())
                    {
                        foreach (Item item in ticket.Detalle)
                        {
                            db.GuardarDetalle(recepcionId, null, item.NroLinDet, null, null, item.IndFact, item.NomItem, null, item.Cantidad, item.UniMed, item.PrecioUnitario, 0, 0, 0, 0, item.MontoItem, null);
                        }
                    }

                    //Guardo la referencia
                    if (ticket.Referencias != null && ticket.Referencias.Any())
                    {
                        foreach (Referencia r in ticket.Referencias)
                        {
                            db.GuardarReferencia(recepcionId, null, r.NroLinRef, 1, null, r.TpoDocRef, r.Serie, r.NroCFERef, null, null, r.FechaCFEref);
                        }
                    }

                    //Guardo adenda
                    db.GuardarAgenda(recepcionId, adenda);

                    //Asigno la variable para retornarla
                    retorno.RecepcionId = recepcionId;

                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                throw;
            }

            return(retorno);
        }
 public void DetectiveTicketRemoved(object sender, ETicket ticket)
 {
     OnDetectiveTicketRemoved?.Invoke(sender, ticket);
 }