コード例 #1
0
        public frmMiEquipoAgente()
        {
            InitializeComponent();

            equipo = new TicketWS.equipo
            {
                equipoId = agente.equipo.equipoId
            };

            estActivo = new TicketWS.estadoTicket
            {
                estadoId = (int)Estado.Activo
            };

            estRecategorizado = new TicketWS.estadoTicket
            {
                estadoId = (int)Estado.Recategorizado
            };

            estDemorado = new TicketWS.estadoTicket
            {
                estadoId = (int)Estado.Demorado
            };

            Refrescar();
            dgvTicketsEspera.AutoGenerateColumns = false;
            dgvTicketsEspera.DataSource          = ticketsEnEspera;
        }
コード例 #2
0
        public frmCerrarTicketAgente(TicketWS.ticket tick)
        {
            InitializeComponent();

            ticket               = tick;
            estResuelto          = new TicketWS.estadoTicket();
            estResuelto.estadoId = (int)Estado.Cerrado;
            estResuelto.nombre   = "CERRADO";
        }
コード例 #3
0
        private void btnSeleccionar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Desea atender este ticket?", "Seleccionar ticket", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                TicketWS.ticket tck = (TicketWS.ticket)dgvTicketsEspera.CurrentRow.DataBoundItem;

                // Verificar que el ticket no ha sido asignado
                TicketWS.ticket tckBD = ticketDAO.buscarTicketPorId(tck.ticketId);
                if (tckBD.agente.agenteId != 0)
                {
                    MessageBox.Show(
                        "Este ticket ya ha sido asignado a otro agente",
                        "Asignación no realizada",
                        MessageBoxButtons.OK, MessageBoxIcon.Information
                        );
                    Refrescar();
                    dgvTicketsEspera.AutoGenerateColumns = false;
                    dgvTicketsEspera.DataSource          = ticketsEnEspera;
                    return;
                }

                TicketWS.estadoTicket estAsignado = new TicketWS.estadoTicket();
                estAsignado.estadoId = (int)Estado.Asignado;
                estAsignado.nombre   = "ASIGNADO";

                tck.estado = estAsignado;

                // Registrar el cambio de estado
                var historialEstados = new BindingList <TicketWS.cambioEstadoTicket>();

                var cambioEstado = new TicketWS.cambioEstadoTicket();
                cambioEstado.comentario = "El ticket fue asignado a un " + agente.rol.nombre.ToLower() + ".";
                var ag = new TicketWS.agente();
                ag.agenteId = agente.agenteId;
                cambioEstado.agenteResponsable = ag;
                cambioEstado.estadoTo          = estAsignado;

                historialEstados.Add(cambioEstado);

                tck.agente.agenteId = agente.agenteId;
                // Asignar la lista de cambios de estado
                tck.historialEstado = historialEstados.ToArray();

                if (ticketDAO.actualizarTicket(tck) > -1)
                {
                    MessageBox.Show(
                        "Se te ha asignado el ticket correctamente",
                        "Asignación exitosa",
                        MessageBoxButtons.OK, MessageBoxIcon.Information
                        );

                    // Enviar correo al alumno
                    EnviarEmailNotificacion(tck, cambioEstado);
                }
                else
                {
                    MessageBox.Show(
                        "Ha ocurrido un error con la asignación",
                        "Asginación no realizada",
                        MessageBoxButtons.OK, MessageBoxIcon.Information
                        );
                }
                Refrescar();
                dgvTicketsEspera.AutoGenerateColumns = false;
                dgvTicketsEspera.DataSource          = ticketsEnEspera;
            }
        }
コード例 #4
0
        private void btnReasignar_Click(object sender, EventArgs e)
        {
            if (rtfComentario.Text == "")
            {
                MessageBox.Show(
                    "Falta indicar el comentario de la recategorizacion.",
                    "Error de comentario",
                    MessageBoxButtons.OK, MessageBoxIcon.Information
                    );
                return;
            }
            if (Regex.Matches(rtfComentario.Text, @"[a-zA-Z]").Count == 0)
            {
                MessageBox.Show(
                    "El comentario de la recategorizacion de contener al menos una letra.",
                    "Error de comentario",
                    MessageBoxButtons.OK, MessageBoxIcon.Information
                    );
                return;
            }
            if (MessageBox.Show("¿Desea reasignar la categoria?", "Reasignar Categoria", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                ticket.agente = null;

                CategoriaWS.categoria cat    = (CategoriaWS.categoria)dgvCategoria.CurrentRow.DataBoundItem;
                TicketWS.categoria    cateGo = new TicketWS.categoria();
                cateGo.nombre      = cat.nombre;
                cateGo.categoriaId = cat.categoriaId;
                ticket.categoria   = cateGo;

                TicketWS.estadoTicket estRecategorizado = new TicketWS.estadoTicket();
                estRecategorizado.estadoId = (int)Estado.Recategorizado;
                estRecategorizado.nombre   = "RECATEGORIZADO";
                ticket.estado = estRecategorizado;

                var ag = new TicketWS.agente();
                ag.agenteId = agente.agenteId;

                // Creamos el cambio de estado
                var cambioEstado = new TicketWS.cambioEstadoTicket();
                cambioEstado.comentario           = "El ticket ha sido recategorizado";
                cambioEstado.agenteResponsable    = ag;
                cambioEstado.estadoTo             = estRecategorizado;
                cambioEstado.cambioEstadoTicketId = 0;

                // Registrar el cambio de estado

                // Agregarlo al historial del ticket
                BindingList <TicketWS.cambioEstadoTicket> historialEstados;

                if (ticket.historialEstado == null)
                {
                    historialEstados = new BindingList <TicketWS.cambioEstadoTicket>();     // Si no tiene se crea una lista
                }                                                                           // Sino se crea una lista a partir de este
                else
                {
                    historialEstados = new BindingList <TicketWS.cambioEstadoTicket>(ticket.historialEstado.ToList());
                }
                historialEstados.Add(cambioEstado);

                // Se vuelve de nuevo a Array para ser asignado al ticket
                ticket.historialEstado = historialEstados.ToArray();

                // Creamos la transferencia interna
                var transfer = new TicketWS.transferenciaInterna();
                transfer.agenteResponsable = ag;
                transfer.comentario        = rtfComentario.Text;
                transfer.categoriaTo       = cateGo;
                transfer.transferenciaId   = 0;

                // Registrar la transferenica

                BindingList <TicketWS.transferenciaInterna> historialTransfInterna;

                if (ticket.historialTransfInterna == null)
                {
                    historialTransfInterna = new BindingList <TicketWS.transferenciaInterna>();
                }
                else
                {
                    historialTransfInterna = new BindingList <TicketWS.transferenciaInterna>(ticket.historialTransfInterna.ToList());
                }
                historialTransfInterna.Add(transfer);

                ticket.historialTransfInterna = historialTransfInterna.ToArray();

                // Se actualiza el ticket
                if (ticketDAO.actualizarTicket(ticket) > -1)
                {
                    MessageBox.Show(
                        "Se ha cambiado la categoría seleccionada.",
                        "Reasignación exitosa",
                        MessageBoxButtons.OK, MessageBoxIcon.Information
                        );

                    // Enviar correo al alumno
                    cambioEstado.comentario = rtfComentario.Text;
                    EnviarEmailNotificacion(ticket, cambioEstado);

                    this.DialogResult = DialogResult.OK;
                }
                else
                {
                    MessageBox.Show(
                        "Ha ocurrido un error con la reasignación",
                        "Reasignación no realizada",
                        MessageBoxButtons.OK, MessageBoxIcon.Information
                        );
                    this.Close();
                }
            }
        }