/// <summary> /// Busca el registro que contiene el ID pasado por parametro y lo elimina. /// </summary> /// <param name="_ID_PedidoXMesaEliminar">Registro que se eliminará.</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 int Borrar(int _ID_PedidoXMesaEliminar, ref string _InformacionDelError) { using (BDRestauranteEntities BBDD = new BDRestauranteEntities()) { try { PedidoXMesa ObjetoAEliminar = BBDD.PedidoXMesa.SingleOrDefault(Identificador => Identificador.ID_PedidoXMesa == _ID_PedidoXMesaEliminar); if (ObjetoAEliminar != null) { BBDD.PedidoXMesa.Remove(ObjetoAEliminar); return(BBDD.SaveChanges()); } else { return(0); } } 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."; return(0); } } }
/// <summary> /// Actualiza el registro mediente el ID que contiene el objeto proporcionado como parametro. /// </summary> /// <param name="_PedidoXMesa">Objeto que contiene los datos del registro al que se le van a actualizar los datos.</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 int Actualizar(PedidoXMesa _PedidoXMesa, ref string _InformacionDelError) { using (BDRestauranteEntities BBDD = new BDRestauranteEntities()) { try { PedidoXMesa ObjetoActualizado = BBDD.PedidoXMesa.SingleOrDefault(Identificador => Identificador.ID_PedidoXMesa == _PedidoXMesa.ID_PedidoXMesa); if (ObjetoActualizado != null) { ObjetoActualizado.ID_PedidoXMesa = _PedidoXMesa.ID_PedidoXMesa; //ObjetoActualizado.Nombre = cliente.Nombre; //ObjetoActualizado.Direccion = cliente.Direccion; //ObjetoActualizado.Id_Localidad = cliente.Id_Localidad; return(BBDD.SaveChanges()); } else { return(0); } } 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."; return(0); } } }
/// <summary> /// Crea un nuevo registro a partir de los datos que contiene el objeto pasado por parametro. /// </summary> /// <param name="_PedidoXMesa">Objeto que contiene los datos del nuevo registro que se creará.</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 int Crear(PedidoXMesa _PedidoXMesa, ref string _InformacionDelError) { using (BDRestauranteEntities BBDD = new BDRestauranteEntities()) { try { BBDD.PedidoXMesa.Add(_PedidoXMesa); return(BBDD.SaveChanges()); } 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."; return(0); } } }
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); } }