/// <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)); }
/// <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")); }
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")); } }
/// <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)); }
/// <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")); }
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()); } }
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); } } }
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); } } }
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); } } }
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."); } }
/// <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)); }