Ejemplo n.º 1
0
        /// <summary>
        ///     Método utilizado para realizar o pagamento de um ticket. O ticket é recuperado da base de dados,
        ///     é verificado a data em que o ticket foi emitido e então o valor do mesmo é gerado. Atualiza o
        ///     valor na base de dados e retorna ao usuario.
        /// </summary>
        /// <returns>Tela Index</returns>
        public ActionResult PayTicket(DAOTicket ticket)
        {
            var       dateNow  = DateTime.Now;
            DAOTicket dbTicket = new DAOTicket();

            using (var db = new DataBaseContext())
            {
                dbTicket = (from DAOTicket t in db.Tickets
                            where t.Codigo.Equals(ticket.Codigo)
                            select t).SingleOrDefault <DAOTicket>();

                if (dbTicket != null)
                {
                    if (!String.IsNullOrEmpty(dbTicket.MotivoSaida))
                    {
                        ViewBag.Error = "Ticket já liberado. Motivo : " + dbTicket.MotivoSaida;
                    }
                    else if (!dbTicket.Pago)
                    {
                        var difference = dateNow - dbTicket.Entrada;

                        if (dbTicket.Codigo.EndsWith("G") || difference.Days > 0)
                        {
                            dbTicket.Valor = 50;
                        }
                        else if (difference.Hours == 0 && difference.Minutes <= 15)
                        {
                            dbTicket.Valor = 0;
                        }
                        else if (difference.Hours <= 3)
                        {
                            dbTicket.Valor = 5;
                        }
                        else if (difference.Hours > 3 && difference.Hours < 15)
                        {
                            dbTicket.Valor = 20;
                        }
                        else if (difference.Hours >= 15)
                        {
                            dbTicket.Valor = 50;
                        }

                        dbTicket.Pago = true;
                        db.SaveChanges();
                        ViewBag.ShowPrice = true;
                        ViewBag.Error     = "Ticket pago, muito obrigado!";
                    }
                    else
                    {
                        ViewBag.Error = "Ticket ja foi pago.";
                    }
                }
                else
                {
                    ViewBag.Error = "Código inválido, por favor tente novamente.";
                }
            }
            ViewBag.Funcao = "Pagar Ticket";
            return(View("Index", dbTicket));
        }
Ejemplo n.º 2
0
 /// <summary>
 ///     Método utilizado para armazenar a razão pela qual um ticket foi leberado sem pagamento.
 /// </summary>
 /// <param name="codigo">Código do ticket liberado</param>
 /// <param name="reason">Razão pela qual o ticket foi liberado</param>
 /// <returns></returns>
 public ActionResult ReleaseTicket(string codigo, string reason)
 {
     if (!String.IsNullOrEmpty(reason))
     {
         DAOTicket dbTicket = new DAOTicket();
         using (var db = new DataBaseContext())
         {
             dbTicket = (from DAOTicket t in db.Tickets
                         where t.Codigo.Equals(codigo)
                         select t).SingleOrDefault <DAOTicket>();
             if (dbTicket == null)
             {
                 ViewBag.Status = "Código do ticket inválido, favor tente novamente.";
             }
             else
             {
                 ViewBag.Status = "Ticket liberado com sucesso!";
                 if (String.IsNullOrEmpty(dbTicket.MotivoSaida) && !dbTicket.Pago)
                 {
                     dbTicket.MotivoSaida = reason;
                 }
                 db.SaveChanges();
             }
         }
         ViewBag.Funcao = "Liberar Ticket";
     }
     else
     {
         ViewBag.Status = "Por favor, selecione um motivo para a liberação.";
     }
     ViewBag.Funcao = "Liberar Ticket";
     return(View("Index"));
 }
Ejemplo n.º 3
0
        public ActionResult Leave(DAOTicket ticket)
        {
            using (var db = new DataBaseContext())
            {
                var dbTicket = (from DAOTicket t in db.Tickets
                                where t.Codigo.Equals(ticket.Codigo)
                                select t).SingleOrDefault <DAOTicket>();

                if (dbTicket != null)
                {
                    if (dbTicket.Pago || !String.IsNullOrEmpty(dbTicket.MotivoSaida))
                    {
                        ViewBag.Result = "Pago";
                    }
                    else if (!dbTicket.Pago)
                    {
                        ViewBag.Result = "Não pago";
                    }
                }
                else
                {
                    ViewBag.Result = "Ticket invalido";
                }
                vacanciesNumber();
                ViewBag.Fields = true;
                return(View("Index"));
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        ///     Método para gerar um novo ticket. Chama o método GEnerateCode para gerar um código novo e valida
        ///     se este código ja existe no banco.
        /// </summary>
        /// <returns>Tela Index</returns>
        public ActionResult GenerateTicket()
        {
            DAOTicket newTicket = new DAOTicket()
            {
                Codigo  = GenerateCode(),
                Entrada = DateTime.Now
            };

            using (var db = new DataBaseContext())
            {
                var dbTicket = (from ticket in db.Tickets
                                where ticket.Codigo.Equals(newTicket.Codigo)
                                select ticket).Count();

                if (dbTicket <= 0)
                {
                    db.Tickets.Add(newTicket);
                    db.SaveChanges();
                }
            }
            GetRole();
            vacanciesNumber();
            ViewBag.TicketReady = true;
            return(View("Index", newTicket));
        }
Ejemplo n.º 5
0
        /// <summary>
        ///     Método acionado pelo botão de consulta do preço após o código do ticket ter sido inserido.
        ///     Este método recupera o ticket do banco e valida e o ticket foi gerado no guiche, caso não tenha
        ///     sido ele verifica o horário de entrada para calcular o valor atual do ticket.
        /// </summary>
        /// <param name="ticket"></param>
        /// <returns></returns>
        public ActionResult ConsultPrice(DAOTicket ticket)
        {
            CleanViewBag();

            var       dateNow  = DateTime.Now;
            DAOTicket dbTicket = new DAOTicket();

            using (var db = new DataBaseContext())
            {
                dbTicket = (from DAOTicket t in db.Tickets
                            where t.Codigo.Equals(ticket.Codigo)
                            select t).SingleOrDefault <DAOTicket>();
            }

            if (dbTicket != null)
            {
                if (!dbTicket.Pago)
                {
                    var difference = dateNow - dbTicket.Entrada;
                    if (dbTicket.Codigo.EndsWith("G")) //Valida se o ticket foi impresso no guiche, nesse caso o ticket foi extraviado
                    {
                        dbTicket.Valor = 50;
                    }
                    else if (difference.Hours >= 18 || difference.Days > 0)
                    {
                        dbTicket.Valor = 50;
                    }
                    else if (difference.Hours == 0 && difference.Minutes <= 15)
                    {
                        dbTicket.Valor = 0;
                    }
                    else if (difference.Hours <= 3)
                    {
                        dbTicket.Valor = 5;
                    }
                    else if (difference.Hours > 3 && difference.Hours < 15)
                    {
                        dbTicket.Valor = 20;
                    }


                    ViewBag.ConsultPrice = true;
                    return(View("Index", dbTicket));
                }
                else
                {
                    ViewBag.Error = "Ticket ja foi pago.";
                }
            }
            else
            {
                ViewBag.Error = "Código inválido, por favor tente novamente.";
            }
            vacanciesNumber();
            GetRole();
            return(View("Index"));
        }
Ejemplo n.º 6
0
        public IHttpActionResult GetTicket(string code)
        {
            var       tickets = GetAllTicketsFromDataBase();
            DAOTicket ticket  = new DAOTicket();

            if (tickets != null && tickets.Count > 0)
            {
                ticket = tickets.First(t => t.Codigo.Equals(code, StringComparison.InvariantCultureIgnoreCase));
            }
            if (ticket != null)
            {
                return(Ok(ticket));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 7
0
        public void ImprimirTicket(Ventas ventaActual, string recibido, string cambio, List <PantallaVenta> pantalla)
        {
            if (MessageBox.Show("¿Desea imprimir ticket?", "Ventas",
                                MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
                == DialogResult.Yes)
            {
                Ticket ticket = new Ticket();
                // ticket.FontSize = 14;
                Tickets configuracion = new Tickets();
                configuracion = new DAOTicket().GetTicket();
                if (configuracion.impresora != null)
                {
                    ticket.FontSize = configuracion.tamanoFuenta;

                    ticket.AddHeaderLine(configuracion.nombreDeLaEmpresa);
                    ticket.AddHeaderLine("Lo atendió: " + ventaActual.Usuario);
                    ticket.AddHeaderLine("EXPEDIDO EN:");
                    ticket.AddHeaderLine(configuracion.direccionDeLaEmpresa);
                    ticket.AddHeaderLine(configuracion.municipio + ", " + configuracion.estado);

                    ticket.AddSubHeaderLine("Clave de venta: " + Convert.ToString(ventaActual.Id));
                    ticket.AddSubHeaderLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());
                    foreach (PantallaVenta temp in pantalla)
                    {
                        ticket.AddItem(temp.Cantidad, temp.Producto, temp.Precio);
                    }
                    ticket.AddTotal("TOTAL", ventaActual.Total.ToString());
                    ticket.AddTotal("", "");
                    ticket.AddTotal("RECIBIDO", recibido);
                    ticket.AddTotal("CAMBIO", cambio);
                    ticket.AddTotal("", "");

                    ticket.AddFooterLine(configuracion.mensaje);
                    ticket.PrintTicket(configuracion.impresora); //Nombre de la impresora de tickets
                }
                else
                {
                    MessageBox.Show("Debes configurar una impresora", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Ejemplo n.º 8
0
        public void ImprimirTicketCorte(Usuarios usuarioActual, string UsuariodelCorte, string fecha, string total, List <CorteVentas> listaDeCortes)
        {
            if (MessageBox.Show("¿Desea imprimir ticket?", "Cortes",
                                MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
                == DialogResult.Yes)
            {
                Ticket ticket = new Ticket();

                Tickets ticketsito = new Tickets();
                ticketsito = new DAOTicket().GetTicket();
                if (ticketsito.impresora != null)
                {
                    ticket.FontSize = ticketsito.tamanoFuenta;

                    ticket.AddHeaderLine(ticketsito.nombreDeLaEmpresa);
                    ticket.AddHeaderLine("EXPEDIDO EN:");
                    ticket.AddHeaderLine(ticketsito.direccionDeLaEmpresa);
                    ticket.AddHeaderLine(ticketsito.municipio + ", " + ticketsito.estado);
                    ticket.AddHeaderLine("Corte del usuario: " + UsuariodelCorte);
                    ticket.AddFooterLine("CORTE GENERADO POR " + usuarioActual.Nombre);
                    ticket.AddFooterLine("TOTAL $" + total);
                    ticket.AddFooterLine("Corte del día " + fecha);
                    //ticket.AddSubHeaderLine(Convert.ToString());
                    ticket.AddSubHeaderLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());


                    foreach (CorteVentas corte in listaDeCortes)
                    {
                        ticket.AddItem(Convert.ToString(corte.cantidad), corte.producto, Convert.ToString(corte.total));
                    }


                    ticket.PrintTicket(ticketsito.impresora); //Nombre de la impresora de tickets
                }
                else
                {
                    MessageBox.Show("Debes configurar una impresora", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Ejemplo n.º 9
0
        public void ImprimirTicketCompra(Compras compra, List <PantallaCompras> pantalla)
        {
            if (MessageBox.Show("¿Desea imprimir ticket?", "Compras",
                                MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
                == DialogResult.Yes)
            {
                Ticket ticket = new Ticket();
                // ticket.FontSize = 14;
                Tickets configuracion = new Tickets();
                configuracion = new DAOTicket().GetTicket();
                if (configuracion.impresora != null)
                {
                    ticket.FontSize = configuracion.tamanoFuenta;

                    ticket.AddHeaderLine(configuracion.nombreDeLaEmpresa);
                    ticket.AddHeaderLine("Realizado por: " + compra.usuario);
                    ticket.AddHeaderLine("EXPEDIDO EN:");
                    ticket.AddHeaderLine(configuracion.direccionDeLaEmpresa);
                    ticket.AddHeaderLine(configuracion.municipio + ", " + configuracion.estado);
                    ticket.AddHeaderLine("TIPO DE COMPRA: " + compra.tipo);
                    ticket.AddSubHeaderLine("Clave de compra: " + Convert.ToString(compra.id_compra));
                    ticket.AddSubHeaderLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());
                    foreach (PantallaCompras temp in pantalla)
                    {
                        ticket.AddItem(temp.cantidad.ToString(), temp.Producto, temp.precio.ToString());
                    }
                    ticket.AddTotal("TOTAL", compra.total.ToString());
                    ticket.AddTotal("", "");
                    ticket.AddTotal("", "");

                    ticket.AddFooterLine("FIN DE COMPRAS");
                    ticket.PrintTicket(configuracion.impresora); //Nombre de la impresora de tickets
                }
                else
                {
                    MessageBox.Show("Debes configurar una impresora", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Ejemplo n.º 10
0
        private void button1_Click_1(object sender, EventArgs e)
        {
            Tickets tickets = new DAOTicket().GetTicket();

            if (tickets != null)
            {
                if (Printing(tickets.impresora))
                {
                    Ticket ticket = new Ticket();
                    ticket.FontSize = int.Parse(fuente_textbox.Text);
                    ticket.AddHeaderLine(nombre_empresa_textbox.Text);
                    ticket.AddHeaderLine("EXPEDIDO EN:");
                    ticket.AddHeaderLine(direccion_empresa_textbox.Text);
                    ticket.AddHeaderLine(municipio_texbox.Text + ", " + estado_textbox.Text);
                    ticket.AddSubHeaderLine("PRUEBA");
                    ticket.AddSubHeaderLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());
                    ticket.AddItem("10", "Cervezas", "$100");
                    ticket.AddItem("20", "Tequilas", "$1000");
                    ticket.AddItem("1", "Papas fritas", "$10");
                    ticket.AddTotal("Total", "1110");
                    ticket.AddTotal("", "");
                    ticket.AddTotal("RECIBIDO", "1200");
                    ticket.AddTotal("CAMBIO", "90");
                    ticket.AddTotal("", "");
                    ticket.AddFooterLine(mensaje_textBox.Text);
                    ticket.PrintTicket(comboInstalledPrinters.Text); //Nombre de la impresora de tickets
                }
                else
                {
                    MessageBox.Show("Impresora invalida.");
                }
            }
            else
            {
                MessageBox.Show("Debe llenar los campos.");
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        ///     Método utilizado para gerar um novo ticket no guichê. Neste método é adicionado a letra "G" ao
        ///     código do ticket, o que significa que este ticket foi gerado no guichê. Também é adicionado
        ///     um motivo "Extravio" no ticket, para mostrar o motivo pelo qual aquele ticket foi gerado no
        ///     guichê.
        /// </summary>
        /// <returns></returns>
        public ActionResult GenerateTicket()
        {
            DAOTicket newTicket = new DAOTicket()
            {
                Codigo      = GenerateCode() + "G",
                Entrada     = DateTime.Now,
                MotivoSaida = "Extravio"
            };

            using (var db = new DataBaseContext())
            {
                var dbTicket = (from ticket in db.Tickets
                                where ticket.Codigo.Equals(newTicket.Codigo)
                                select ticket).Count();

                if (dbTicket <= 0)
                {
                    db.Tickets.Add(newTicket);
                    db.SaveChanges();
                }
            }
            ViewBag.Funcao = "Gerar Ticket";
            return(View("Index", newTicket));
        }