private void CargarMesasPedidoNormal() { int CapacidadTotal = 0; string InformacionDelError = string.Empty; ClsPedidosXMesas PedidoXMesa = new ClsPedidosXMesas(); List <PedidoXMesa> BuscarMesasDelPedido = new List <PedidoXMesa>(); BuscarMesasDelPedido = PedidoXMesa.LeerListado(ClsPedidosXMesas.ETipoDeListado.BuscarMesasYMozo, ref InformacionDelError, ID_Pedido); if (BuscarMesasDelPedido != null) { foreach (PedidoXMesa Elemento in BuscarMesasDelPedido) { int NumeroDeFila = dgvMesasReservadas.Rows.Add(); dgvMesasReservadas.Rows[NumeroDeFila].Cells[(int)ENumColDGVMesas.ID_Mesa].Value = Elemento.Mesa.ID_Mesa; dgvMesasReservadas.Rows[NumeroDeFila].Cells[(int)ENumColDGVMesas.Numero].Value = Elemento.Mesa.Numero; dgvMesasReservadas.Rows[NumeroDeFila].Cells[(int)ENumColDGVMesas.Capacidad].Value = Elemento.Mesa.Capacidad; CapacidadTotal += Elemento.Mesa.Capacidad; } } else if (InformacionDelError == string.Empty) { MessageBox.Show("Ocurrio un fallo al listar las mesas", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } dgvMesasReservadas.Sort(dgvMesasReservadas.Columns[(int)ENumColDGVMesas.Numero], ListSortDirection.Ascending); lblResultadoCapacidadTotal.Text = Convert.ToString(CapacidadTotal); }
/// <summary> /// Arma el ticket del resumen del pedido. /// </summary> /// <param name="e">Evento que arma el ticket.</param> /// <param name="_ID_Pedido">Numero del pedido.</param> /// <param name="_EsDelivery">Para determinar si debe imprimir los datos de un delivery.</param> /// <param name="_DatosPedido">Array que debe contener los datos alojados en el DataGridView, como /// nombre de los productos, cantidad, etc.</param> /// <param name="_Descuento">Cantidad de descuento.</param> /// <param name="_Recargo">Cantidad de aumento.</param> /// <param name="_Total">Total a pagar.</param> /// <param name="_TotalAumento">Total a aumentar.</param> /// <param name="_TotalDescuento">Total a descontar.</param> /// <param name="_Porcentaje">Porcentaje que se aplico.</param> /// <param name="_InformacionDelError">Devuelve una cadena de texto con informacion para el usuario en caso de que el /// metodo devuelva null (debido a que ocurrio un error).</param> /// <returns>El evento armado.</returns> public static void TicketResumenPedido(ref PrintPageEventArgs e, int _ID_Pedido, bool _EsDelivery, string[,] _DatosPedido, bool _Descuento, bool _Recargo, string _Total, string _TotalAumento, string _TotalDescuento, string _Porcentaje, ref string _InformacionDelError) { try { string InformacionDelError = string.Empty; ClsInformacionesRestaurantes InformacionesRestaurantes = new ClsInformacionesRestaurantes(); InformacionRestaurante BuscarDatosRestaurante = InformacionesRestaurantes.LeerPorNumero(1, ref InformacionDelError); Font FuenteCuerpo = new Font("Arial", 7, FontStyle.Regular, GraphicsUnit.Point); Font FuenteTituloCuerpo = new Font("Arial", 7, FontStyle.Bold, GraphicsUnit.Point); Font FuenteEncabezadoPie = new Font("Arial", 10, FontStyle.Bold, GraphicsUnit.Point); Font FuenteEncabezadoPieSimple = new Font("Arial", 7, FontStyle.Bold, GraphicsUnit.Point); Font FuenteNombreRestaurante = new Font("Arial", 20, FontStyle.Bold, GraphicsUnit.Point); SolidBrush Pincel = new SolidBrush(Color.Black); int AlturaFuente = (int)FuenteCuerpo.GetHeight(); int ComienzoX = 5; int ComienzoY = 0; int Compensar = 40; int SubCompensar = 3; if (BuscarDatosRestaurante != null) { int PosicionX = 10; if (BuscarDatosRestaurante.Nombre.Length >= 11 && BuscarDatosRestaurante.Nombre.Length < 16) { FuenteNombreRestaurante = new Font("Arial", 14, FontStyle.Bold, GraphicsUnit.Point); } else if (BuscarDatosRestaurante.Nombre.Length >= 16) { FuenteNombreRestaurante = new Font("Arial", 10, FontStyle.Bold, GraphicsUnit.Point); } switch (BuscarDatosRestaurante.Nombre.Length) { case 3: PosicionX = 63; break; case 4: PosicionX = 53; break; case 5: PosicionX = 48; break; case 6: PosicionX = 36; break; case 7: PosicionX = 27; break; case 8: PosicionX = 18; break; case 9: PosicionX = 10; break; case 10: PosicionX = 5; break; case 11: PosicionX = 20; break; case 12: PosicionX = 18; break; case 13: PosicionX = 14; break; case 14: PosicionX = 12; break; case 15: PosicionX = 10; break; case 16: PosicionX = 20; break; case 17: PosicionX = 18; break; case 18: PosicionX = 16; break; case 19: PosicionX = 14; break; case 20: PosicionX = 12; break; } e.Graphics.DrawString(BuscarDatosRestaurante.Nombre, FuenteNombreRestaurante, Pincel, PosicionX, ComienzoY); if (BuscarDatosRestaurante.Eslogan != null) { e.Graphics.DrawString($" {BuscarDatosRestaurante.Eslogan}", FuenteEncabezadoPie, Pincel, ComienzoX, ComienzoY + FuenteNombreRestaurante.GetHeight()); Compensar += AlturaFuente + SubCompensar; } } string NombreMozo = string.Empty; int MesasAcumuladas = 0; string LineaUnoMesas = string.Empty; string lineaDosMesas = string.Empty; ClsPedidosXMesas PedidosXMesas = new ClsPedidosXMesas(); List <PedidoXMesa> BuscarDatos = PedidosXMesas.LeerListado(ClsPedidosXMesas.ETipoDeListado.BuscarMesasYMozo, ref InformacionDelError, _ID_Pedido); if (BuscarDatos != null) { if (BuscarDatos.Count > 0 && !_EsDelivery) { foreach (PedidoXMesa Elemento in BuscarDatos) { if (MesasAcumuladas < 7) { LineaUnoMesas += Elemento.Mesa.Numero + "-"; } else { lineaDosMesas += Elemento.Mesa.Numero + "-"; } NombreMozo = $"{Elemento.Mesa.Usuario.Nombre} {Elemento.Mesa.Usuario.Apellido}"; MesasAcumuladas++; } LineaUnoMesas = LineaUnoMesas.Remove(LineaUnoMesas.Length - 1, 1); if (lineaDosMesas != string.Empty) { lineaDosMesas = lineaDosMesas.Remove(lineaDosMesas.Length - 1, 1); } } } e.Graphics.DrawString($"Fecha: {DateTime.Now.ToShortDateString()} Hora: {DateTime.Now.ToString(@"HH\:mm")}", FuenteEncabezadoPieSimple, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar * 2; if (BuscarDatosRestaurante != null) { e.Graphics.DrawString($"Direccion: {BuscarDatosRestaurante.Direccion}", FuenteEncabezadoPieSimple, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; if (BuscarDatosRestaurante.TelefonoDos == null) { e.Graphics.DrawString($"Contacto: {BuscarDatosRestaurante.TelefonoUno}", FuenteEncabezadoPieSimple, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar * 2; } else { e.Graphics.DrawString($"Contactos: {BuscarDatosRestaurante.TelefonoUno} / {BuscarDatosRestaurante.TelefonoDos}", FuenteEncabezadoPieSimple, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar * 2; } } if (BuscarDatos != null) { if (BuscarDatos.Count > 0 && !_EsDelivery) { e.Graphics.DrawString($"Mozo: {NombreMozo}", FuenteTituloCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; e.Graphics.DrawString($"Mesa/s: {LineaUnoMesas}", FuenteTituloCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); if (lineaDosMesas != string.Empty) { Compensar += AlturaFuente + SubCompensar; e.Graphics.DrawString($"{lineaDosMesas}", FuenteTituloCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar * 2; } else { Compensar += AlturaFuente + SubCompensar * 2; } } else { ClsPedidos Pedidos = new ClsPedidos(); Pedido BuscarPedido = Pedidos.LeerPorNumero(_ID_Pedido, ref InformacionDelError); if (BuscarPedido != null) { if (BuscarPedido.ID_Delivery != null) { e.Graphics.DrawString($"Destino: {BuscarPedido.Delivery.Destino}", FuenteTituloCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; e.Graphics.DrawString($"Cliente: {BuscarPedido.Cliente.Nombre} {BuscarPedido.Cliente.Apellido}", FuenteTituloCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; if (BuscarPedido.Cliente.Telefono != 0) { e.Graphics.DrawString($"Telefono cliente: {BuscarPedido.Cliente.Telefono} {BuscarPedido.Cliente.Apellido}", FuenteTituloCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar * 2; } else { Compensar += SubCompensar; } } } } } string NombreEncabezado = "Nombre"; string CantidadEncabezado = "Cant."; string SubtotalEncabezado = "Subtotal"; e.Graphics.DrawString($"{CantidadEncabezado.PadRight(6)}{NombreEncabezado.PadRight(27)}{SubtotalEncabezado.PadLeft(11)}", FuenteTituloCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; for (int Indice = 0; Indice < _DatosPedido.GetLength(0); Indice++) { e.Graphics.DrawString($"{_DatosPedido[Indice, 1].PadLeft(7)} {_DatosPedido[Indice, 0]}", FuenteCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; e.Graphics.DrawString($"{string.Empty.PadLeft(48, '.')}{_DatosPedido[Indice, 2]}", FuenteCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; } if (_Descuento) { e.Graphics.DrawString($"Descuento ${_TotalDescuento} ({_Porcentaje}%)", FuenteEncabezadoPieSimple, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; } else if (_Recargo) { e.Graphics.DrawString($"Recargo ${_TotalAumento} ({_Porcentaje}%)", FuenteEncabezadoPieSimple, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; } e.Graphics.DrawString($"Total ${Convert.ToString(Math.Round(Convert.ToDouble(_Total) + Convert.ToDouble(_TotalAumento) - Convert.ToDouble(_TotalDescuento), 2))}", FuenteEncabezadoPie, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar * 3; e.Graphics.DrawString($" TICKET NO VALIDO COMO FACTURA", FuenteEncabezadoPieSimple, Pincel, ComienzoX, ComienzoY + Compensar); } catch (Exception Error) { _InformacionDelError = $"OCURRIO UN ERROR INESPERADO AL INTENTAR LISTAR LA INFORMACIÓN: {Error.Message}\r\n\r\n" + $"ORIGEN DEL ERROR: {Error.StackTrace}\r\n\r\n" + $"OBJETO QUE GENERÓ EL ERROR: {Error.Data}\r\n\r\n\r\n" + $"ENVIE AL PROGRAMADOR UNA FOTO DE ESTE MENSAJE CON UNA DESCRIPCION DE LO QUE HIZO ANTES DE QUE SE GENERARÁ " + $"ESTE ERROR PARA QUE SEA ARREGLADO."; e.Cancel = true; } }
/// <summary> /// Imprime un ticket que puede ser entregado a cocina para listar los pedidos. /// </summary> /// <param name="e">Evento que arma el ticket.</param> /// <param name="_ID_Pedido">Numero del pedido.</param> /// <param name="_PlatonsSinCocinar">Objeto que contiene la lista de platos a imprimir.</param> /// <param name="_InformacionDelError">Devuelve una cadena de texto con informacion para el usuario en caso de que el /// metodo devuelva null (debido a que ocurrio un error).</param> public static void TicketParaCocina(ref PrintPageEventArgs e, int _ID_Pedido, List <Detalle> _PlatonsSinCocinar, ref string _InformacionDelError) { try { string InformacionDelError = string.Empty; ClsInformacionesRestaurantes InformacionesRestaurantes = new ClsInformacionesRestaurantes(); InformacionRestaurante BuscarDatosRestaurante = InformacionesRestaurantes.LeerPorNumero(1, ref InformacionDelError); Font FuenteCuerpo = new Font("Arial", 7, FontStyle.Regular, GraphicsUnit.Point); Font FuenteTituloCuerpo = new Font("Arial", 7, FontStyle.Bold, GraphicsUnit.Point); Font FuenteEncabezadoPie = new Font("Arial", 10, FontStyle.Bold, GraphicsUnit.Point); Font FuenteEncabezadoPieSimple = new Font("Arial", 7, FontStyle.Bold, GraphicsUnit.Point); Font FuenteNombreRestaurante = new Font("Arial", 20, FontStyle.Bold, GraphicsUnit.Point); SolidBrush Pincel = new SolidBrush(Color.Black); int AlturaFuente = (int)FuenteCuerpo.GetHeight(); int ComienzoX = 5; int ComienzoY = 0; int Compensar = 40; int SubCompensar = 3; if (BuscarDatosRestaurante != null) { int PosicionX = 10; if (BuscarDatosRestaurante.Nombre.Length >= 11 && BuscarDatosRestaurante.Nombre.Length < 16) { FuenteNombreRestaurante = new Font("Arial", 14, FontStyle.Bold, GraphicsUnit.Point); } else if (BuscarDatosRestaurante.Nombre.Length >= 16) { FuenteNombreRestaurante = new Font("Arial", 10, FontStyle.Bold, GraphicsUnit.Point); } switch (BuscarDatosRestaurante.Nombre.Length) { case 3: PosicionX = 63; break; case 4: PosicionX = 53; break; case 5: PosicionX = 48; break; case 6: PosicionX = 36; break; case 7: PosicionX = 27; break; case 8: PosicionX = 18; break; case 9: PosicionX = 10; break; case 10: PosicionX = 5; break; case 11: PosicionX = 20; break; case 12: PosicionX = 18; break; case 13: PosicionX = 14; break; case 14: PosicionX = 12; break; case 15: PosicionX = 10; break; case 16: PosicionX = 20; break; case 17: PosicionX = 18; break; case 18: PosicionX = 16; break; case 19: PosicionX = 14; break; case 20: PosicionX = 12; break; } e.Graphics.DrawString(BuscarDatosRestaurante.Nombre, FuenteNombreRestaurante, Pincel, PosicionX, ComienzoY); if (BuscarDatosRestaurante.Eslogan != null) { e.Graphics.DrawString($" {BuscarDatosRestaurante.Eslogan}", FuenteEncabezadoPie, Pincel, ComienzoX, ComienzoY + FuenteNombreRestaurante.GetHeight()); Compensar += AlturaFuente + SubCompensar; } } string NombreMozo = string.Empty; int MesasAcumuladas = 0; string LineaUnoMesas = string.Empty; string lineaDosMesas = string.Empty; string TextoDetalle = string.Empty; string[] Detalle = new string[3]; Detalle[0] = string.Empty; Detalle[1] = string.Empty; Detalle[2] = string.Empty; ClsPedidosXMesas PedidosXMesas = new ClsPedidosXMesas(); List <PedidoXMesa> BuscarDatos = PedidosXMesas.LeerListado(ClsPedidosXMesas.ETipoDeListado.BuscarMesasYMozo, ref InformacionDelError, _ID_Pedido); if (BuscarDatos != null) { if (BuscarDatos.Count > 0) { foreach (PedidoXMesa Elemento in BuscarDatos) { if (MesasAcumuladas < 7) { LineaUnoMesas += Elemento.Mesa.Numero + "-"; } else { lineaDosMesas += Elemento.Mesa.Numero + "-"; } NombreMozo = $"{Elemento.Mesa.Usuario.Nombre} {Elemento.Mesa.Usuario.Apellido}"; if (Elemento.Pedido.Nota != null) { TextoDetalle = Convert.ToString(Elemento.Pedido.Nota).ToLower(); } MesasAcumuladas++; } LineaUnoMesas = LineaUnoMesas.Remove(LineaUnoMesas.Length - 1, 1); if (lineaDosMesas != string.Empty) { lineaDosMesas = lineaDosMesas.Remove(lineaDosMesas.Length - 1, 1); } } } e.Graphics.DrawString($"Fecha: {DateTime.Now.ToShortDateString()} Hora: {DateTime.Now.ToString(@"HH\:mm")}", FuenteEncabezadoPieSimple, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar * 2; if (BuscarDatos != null) { if (BuscarDatos.Count > 0) { e.Graphics.DrawString($"Mozo: {NombreMozo}", FuenteTituloCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; e.Graphics.DrawString($"Mesa/s: {LineaUnoMesas}", FuenteTituloCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); if (lineaDosMesas != string.Empty) { Compensar += AlturaFuente + SubCompensar; e.Graphics.DrawString($"{lineaDosMesas}", FuenteTituloCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar * 2; } else { Compensar += AlturaFuente + SubCompensar * 2; } } } string NombreEncabezado = "Nombre"; string CantidadEncabezado = "Cant."; e.Graphics.DrawString($"{CantidadEncabezado.PadRight(6)}{NombreEncabezado.PadRight(27)}", FuenteTituloCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; foreach (Detalle Elemento in _PlatonsSinCocinar) { if (Elemento.ID_EstadoDetalle == (int)ClsEstadoDetalle.EEstadoDetalle.NoCocinado) { e.Graphics.DrawString($"{Convert.ToString(Elemento.Cantidad).PadLeft(7)} {Elemento.Articulo.Nombre}", FuenteCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; } else { e.Graphics.DrawString($"{Convert.ToString(Elemento.CantidadAgregada).PadLeft(7)} {Elemento.Articulo.Nombre}", FuenteCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; } } Compensar += SubCompensar; if (TextoDetalle.Length <= 40) { Detalle[0] = Convert.ToString(TextoDetalle); } else if (TextoDetalle.Length > 40 && TextoDetalle.Length <= 80) { Detalle[0] = Convert.ToString(TextoDetalle.Substring(0, 41)); Detalle[1] = Convert.ToString(TextoDetalle.Substring(41)); } else { Detalle[0] = Convert.ToString(TextoDetalle.Substring(0, 41)); Detalle[1] = Convert.ToString(TextoDetalle.Substring(41, 40)); Detalle[2] = Convert.ToString(TextoDetalle.Substring(81, TextoDetalle.Length - 81)); } if (Detalle[1] == string.Empty && Detalle[0] != string.Empty) { e.Graphics.DrawString($"{Detalle[0]}", FuenteCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); } else if (Detalle[2] == string.Empty && Detalle[1] != string.Empty) { e.Graphics.DrawString($"{Detalle[0]}", FuenteCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; e.Graphics.DrawString($"{Detalle[1]}", FuenteCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); } else if (Detalle[2] != string.Empty) { e.Graphics.DrawString($"{Detalle[0]}", FuenteCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; e.Graphics.DrawString($"{Detalle[1]}", FuenteCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); Compensar += AlturaFuente + SubCompensar; e.Graphics.DrawString($"{Detalle[2]}", FuenteCuerpo, Pincel, ComienzoX, ComienzoY + Compensar); } } catch (Exception Error) { _InformacionDelError = $"OCURRIO UN ERROR INESPERADO AL INTENTAR LISTAR LA INFORMACIÓN: {Error.Message}\r\n\r\n" + $"ORIGEN DEL ERROR: {Error.StackTrace}\r\n\r\n" + $"OBJETO QUE GENERÓ EL ERROR: {Error.Data}\r\n\r\n\r\n" + $"ENVIE AL PROGRAMADOR UNA FOTO DE ESTE MENSAJE CON UNA DESCRIPCION DE LO QUE HIZO ANTES DE QUE SE GENERARÁ " + $"ESTE ERROR PARA QUE SEA ARREGLADO."; e.Cancel = true; } }
private void CargarDGVListarPedidos() { dgvListaPedidos.Rows.Clear(); string InformacionDelError = string.Empty; ClsPedidos Pedidos = new ClsPedidos(); List <Pedido> PedidosEnProceso = Pedidos.LeerListado(ClsPedidos.ETipoDeListado.PedidosEnProceso, ref InformacionDelError); if (PedidosEnProceso != null) { foreach (Pedido Elemento in PedidosEnProceso) { int NumeroDeFila = dgvListaPedidos.Rows.Add(); dgvListaPedidos.Columns[(int)ENumColDGVListaPedidos.ID_Pedido].SortMode = DataGridViewColumnSortMode.NotSortable; dgvListaPedidos.Columns[(int)ENumColDGVListaPedidos.TiempoEspera].SortMode = DataGridViewColumnSortMode.NotSortable; dgvListaPedidos.Columns[(int)ENumColDGVListaPedidos.EsDelivery].SortMode = DataGridViewColumnSortMode.NotSortable; dgvListaPedidos.Columns[(int)ENumColDGVListaPedidos.Mozos].SortMode = DataGridViewColumnSortMode.NotSortable; dgvListaPedidos.Columns[(int)ENumColDGVListaPedidos.Mesas].SortMode = DataGridViewColumnSortMode.NotSortable; dgvListaPedidos.Columns[(int)ENumColDGVListaPedidos.Seleccionar].SortMode = DataGridViewColumnSortMode.NotSortable; dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.ID_Pedido].Value = Elemento.ID_Pedido; string[] Tiempo; int Horas = 0; int Minutos = 0; if (Elemento.TiempoEspera.Value.Date == DateTime.Now.Date && (Horas < 24 && Minutos < 60)) { Tiempo = (DateTime.Now.TimeOfDay - Elemento.TiempoEspera.Value.TimeOfDay).ToString(@"hh\:mm").Split(':'); Horas = Convert.ToInt32(Tiempo[0]); Minutos = Convert.ToInt32(Tiempo[1]); dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = (DateTime.Now.TimeOfDay - Elemento.TiempoEspera.Value.TimeOfDay).ToString(@"hh\:mm"); } else { // Hay un dia de diferencia solamente if (Elemento.TiempoEspera.Value.Day == DateTime.Now.AddDays(-1).Day) { Tiempo = (new TimeSpan(24, 0, 0) - Elemento.TiempoEspera.Value.TimeOfDay).ToString(@"hh\:mm").Split(':'); Horas = Convert.ToInt32(Tiempo[0]) + DateTime.Now.Hour; Minutos = Convert.ToInt32(Tiempo[1]) + DateTime.Now.Minute; // Calcular aumento de hora if (Minutos >= 60) { Horas += 1; Minutos += (60 - Minutos); } // Este if evitara mostrar una hora mayor a 24 en caso de problemas con la sincronizacion del // reloj de la computadora if (Horas < 24) { if (Minutos < 10) { if (Horas < 10) { dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = $"0{Horas}:0{Minutos}"; } else { dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = $"{Horas}:0{Minutos}"; } } else { if (Horas < 10) { dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = $"0{Horas}:{Minutos}"; } else { dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = $"{Horas}:{Minutos}"; } } } else { dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = "--:--"; } } else { dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.TiempoEspera].Value = "--:--"; } } if (Horas > 0 || Minutos > 40) { dgvListaPedidos.Rows[NumeroDeFila].DefaultCellStyle.BackColor = ClsColores.Rojo; } else if (Minutos >= 20) { dgvListaPedidos.Rows[NumeroDeFila].DefaultCellStyle.BackColor = ClsColores.NaranjaClaro; } string NombreMozo = string.Empty; if (Elemento.ID_Delivery == null) { dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.EsDelivery].Value = "NO"; ClsPedidosXMesas PedidosXMesas = new ClsPedidosXMesas(); PedidoXMesa BuscarDatos = PedidosXMesas.LeerPorNumero(Elemento.ID_Pedido, ref InformacionDelError); if (BuscarDatos != null) { NombreMozo = $"{BuscarDatos.Mesa.Usuario.Nombre} {BuscarDatos.Mesa.Usuario.Apellido}"; } } else { dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.EsDelivery].Value = "SI"; } dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Mozos].Value = NombreMozo; dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Mesas].Value = "Ver"; dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Seleccionar].Value = false; dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Mesas].Style.SelectionBackColor = ClsColores.Transparente; dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Seleccionar].Style.SelectionBackColor = ClsColores.Transparente; // Quitarle el color de toda la fila a estas casillas dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Mesas].Style.BackColor = ClsColores.GrisOscuroFondo; dgvListaPedidos.Rows[NumeroDeFila].Cells[(int)ENumColDGVListaPedidos.Seleccionar].Style.BackColor = ClsColores.GrisOscuroFondo; UltimaFilaSeleccionada = -1; dgvListaPedidos.ClearSelection(); } } else if (InformacionDelError == string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al cargar el pedido"); } else { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al cargar el pedido"); MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } // Comprobar si el pedido que estaba en pantalla sigue disponible al actualizar if (dgvPlatosPorMesa.Rows.Count > 0) { int PedidoCargado = (int)dgvPlatosPorMesa.Rows[0].Cells[(int)ENumColDGVPlatosPorMesa.ID_Pedido].Value; int TotalDeFilas = dgvListaPedidos.Rows.Count; bool PedidoNoEncontrado = true; for (int Indice = 0; Indice < TotalDeFilas; Indice++) { if (PedidoCargado == (int)dgvListaPedidos.Rows[Indice].Cells[(int)ENumColDGVPlatosPorMesa.ID_Pedido].Value) { PedidoNoEncontrado = false; } } if (PedidoNoEncontrado) { dgvPlatosPorMesa.Rows.Clear(); lblDetallesDelPedido.Text = string.Empty; } else { // Encontro el pedido, lo actualizo ActualizaInformacionPedido(PedidoCargado); } } PedidosCancelados(); }
private void BtnRegistrarPago_Click(object sender, EventArgs e) { bool HuboError = false; string InformacionDelError = string.Empty; ClsCajas Cajas = new ClsCajas(); Caja CrearRegistro = new Caja(); Caja CrearSubRegistro = new Caja(); // Creo el registro de la mesa CrearRegistro.Fecha = DateTime.Today.Date; CrearRegistro.Hora = TimeSpan.Parse(DateTime.Now.ToString(@"HH\:mm\:ss")); CrearRegistro.Monto = Convert.ToDouble(lblMostratTotal.Text); CrearRegistro.Detalle = string.Empty; CrearRegistro.ID_Pedido = ID_Pedido; if (EsDelivery) { CrearRegistro.ID_TipoDeMonto = (int)ClsTiposDeMontos.ETiposDeMontos.IngresoDelivery; } else { CrearRegistro.ID_TipoDeMonto = rbnIngreso.Checked ? (int)ClsTiposDeMontos.ETiposDeMontos.IngresoCierreDeMesa : (int)ClsTiposDeMontos.ETiposDeMontos.EgresoCierreDeMesa; } CrearRegistro.ID_EstadoCaja = (int)ClsEstadosCajas.EEstadosCajas.Activo; //buscar el usuario ClsPedidosXMesas PedidosXMesas = new ClsPedidosXMesas(); PedidoXMesa BuscarMozo = new PedidoXMesa(); BuscarMozo = PedidosXMesas.LeerPorNumero(ID_Pedido, ref InformacionDelError); if (BuscarMozo != null || ID_UsuarioQueConfirmaDelivery != -1) { if (ID_UsuarioQueConfirmaDelivery != -1) { CrearRegistro.ID_Usuario = ID_UsuarioQueConfirmaDelivery; CrearSubRegistro.ID_Usuario = ID_UsuarioQueConfirmaDelivery; } else { CrearRegistro.ID_Usuario = BuscarMozo.Mesa.ID_Usuario; CrearSubRegistro.ID_Usuario = BuscarMozo.Mesa.ID_Usuario; } // creo un registro de aumento/descuento si lo selecciono if (rbnDescuento.Checked) { CrearSubRegistro.Fecha = DateTime.Today.Date; CrearSubRegistro.Hora = TimeSpan.Parse(DateTime.Now.ToString(@"HH\:mm\:ss")); CrearSubRegistro.Monto = Convert.ToDouble(lblMostrarTotalDescuento.Text); if (EsDelivery) { CrearSubRegistro.Detalle = $"{nudPorcentaje.Value}% con " + $"fecha {DateTime.Today.ToShortDateString()} a las " + $"{TimeSpan.Parse(DateTime.Now.ToString(@"HH\:mm\:ss"))}"; CrearSubRegistro.ID_TipoDeMonto = (int)ClsTiposDeMontos.ETiposDeMontos.DescuentoDelivery; } else { CrearSubRegistro.Detalle = $"{nudPorcentaje.Value}% a la mesa con " + $"fecha {DateTime.Today.ToShortDateString()} a las " + $"{TimeSpan.Parse(DateTime.Now.ToString(@"HH\:mm\:ss"))}"; CrearSubRegistro.ID_TipoDeMonto = (int)ClsTiposDeMontos.ETiposDeMontos.DescuentoCierreDeMesa; } CrearSubRegistro.ID_Pedido = ID_Pedido; CrearSubRegistro.ID_EstadoCaja = (int)ClsEstadosCajas.EEstadosCajas.Activo; } else if (rbnAumento.Checked) { CrearSubRegistro.Fecha = DateTime.Today.Date; CrearSubRegistro.Hora = TimeSpan.Parse(DateTime.Now.ToString(@"HH\:mm\:ss")); CrearSubRegistro.Monto = Convert.ToDouble(lblMostrarTotalAumento.Text); CrearSubRegistro.Detalle = $"{nudPorcentaje.Value}% a la mesa con " + $"fecha {DateTime.Today.ToShortDateString()} a las " + $"{TimeSpan.Parse(DateTime.Now.ToString(@"HH\:mm\:ss"))}"; CrearSubRegistro.ID_Pedido = ID_Pedido; CrearSubRegistro.ID_TipoDeMonto = (int)ClsTiposDeMontos.ETiposDeMontos.AumentoCierreDeMesa; CrearSubRegistro.ID_EstadoCaja = (int)ClsEstadosCajas.EEstadosCajas.Activo; } if (Cajas.Crear(CrearRegistro, ref InformacionDelError) != 0) { if (rbnDescuento.Checked || rbnAumento.Checked) { if (Cajas.Crear(CrearSubRegistro, ref InformacionDelError) != 0) { HuboError = false; } else if (InformacionDelError == string.Empty) { MessageBox.Show($"Fallo al crear el registro de aumento/descuento en caja", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); Cajas.Borrar(CrearRegistro.ID_Caja, ref InformacionDelError); HuboError = true; } else { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); Cajas.Borrar(CrearRegistro.ID_Caja, ref InformacionDelError); HuboError = true; } } if (!HuboError) { DialogResult = DialogResult.OK; Close(); } } else if (InformacionDelError == string.Empty) { MessageBox.Show($"Fallo al crear el registro en caja", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else if (InformacionDelError == string.Empty) { MessageBox.Show($"Fallo al buscar el mozo para crear el registro en caja", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }