private void BtnPedidoTerminado_Click(object sender, EventArgs e) { tmrActualizaPedidos.Stop(); int TotalDeFilas = dgvListaPedidos.Rows.Count; string InformacionDelError = string.Empty; ClsDetalles Detalles = new ClsDetalles(); ClsPedidos Pedidos = new ClsPedidos(); Pedido ActualizarPedido = new ClsPedidos(); ClsDeliveries Delivery = new ClsDeliveries(); Delivery ActualizarDelivery = new Delivery(); for (int Indice = 0; Indice < TotalDeFilas; Indice++) { //Pregunto si la celda es diferente a null if (dgvListaPedidos.Rows[Indice].Cells[(int)ENumColDGVListaPedidos.Seleccionar].Value != null) { //Casteo el check del objeto a booleano y pregunto si es true if ((bool)dgvListaPedidos.Rows[Indice].Cells[(int)ENumColDGVListaPedidos.Seleccionar].Value) { InformacionDelError = string.Empty; List <Detalle> ActualizarDetalle = Detalles.LeerListado((int)dgvListaPedidos.Rows[Indice].Cells[(int)ENumColDGVListaPedidos.ID_Pedido].Value, ClsDetalles.ETipoDeListado.ParaCocina, ref InformacionDelError); ActualizarPedido = Pedidos.LeerPorNumero((int)dgvListaPedidos.Rows[Indice].Cells[(int)ENumColDGVListaPedidos.ID_Pedido].Value, ref InformacionDelError); if (ActualizarDetalle != null && ActualizarPedido != null) { if (ActualizarPedido.ID_EstadoPedido == (int)ClsEstadosPedidos.EEstadosPedidos.EnProceso) { foreach (Detalle Elemento in ActualizarDetalle) { if (Elemento.ID_EstadoDetalle == (int)ClsEstadoDetalle.EEstadoDetalle.CantidadAumentada) { Elemento.Cantidad += Elemento.CantidadAgregada; Elemento.CantidadAgregada = 0; } Elemento.ID_EstadoDetalle = (int)ClsEstadoDetalle.EEstadoDetalle.YaCocinado; if (Detalles.Actualizar(Elemento, ref InformacionDelError) != 0) { dgvPlatosPorMesa.Rows.Clear(); lblDetallesDelPedido.Text = string.Empty; } else if (InformacionDelError != string.Empty) { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } if (ActualizarPedido.ID_Delivery == null) { ActualizarPedido.TiempoEspera = null; } if (ActualizarPedido.ID_Delivery == null) { ActualizarPedido.ID_EstadoPedido = (int)ClsEstadosPedidos.EEstadosPedidos.ParaEntrega; } else { ActualizarPedido.ID_EstadoPedido = (int)ClsEstadosPedidos.EEstadosPedidos.Entregado; ActualizarDelivery = Delivery.LeerPorNumero(ActualizarPedido.ID_Delivery, ref InformacionDelError); if (ActualizarDelivery != null) { ActualizarDelivery.ID_EstadoDelivery = (int)ClsEstadosDeliveries.EEstadosDeliveries.ParaEntrega; if (Delivery.Actualizar(ActualizarDelivery, ref InformacionDelError) != 0) { FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Delivery actualizado con exito"; } else if (InformacionDelError == string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el delivery"); } else { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el delivery"); MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else if (InformacionDelError == string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el delivery"); } else { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el delivery"); MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } if (Pedidos.Actualizar(ActualizarPedido, ref InformacionDelError) != 0) { if (ActualizarPedido.ID_Delivery != null && ckbImprimirTicketDelivery.Checked) { ID_PedidoImprimir = ActualizarPedido.ID_Pedido; PtdImprimirTicket = new PrintDocument(); if (ClsComprobarEstadoImpresora.ComprobarEstadoImpresora(PtdImprimirTicket.PrinterSettings.PrinterName)) { PtdImprimirTicket.PrintPage += PrintPageEventHandler; PtdImprimirTicket.Print(); } ID_PedidoImprimir = -1; } PedidosSeleccionados.RemoveAll(I => I == (int)dgvListaPedidos.Rows[Indice].Cells[(int)ENumColDGVListaPedidos.ID_Pedido].Value); lblMostrarNumeroPedido.Text = string.Empty; dgvPlatosPorMesa.Rows.Clear(); dgvListaPedidos.Rows.Remove(dgvListaPedidos.Rows[Indice]); Indice -= 1; TotalDeFilas -= 1; FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Pedido actualizado"; } else if (InformacionDelError != string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el pedido"); MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { using (FrmInformacion FormInformacion = new FrmInformacion($"El pedido numero {ActualizarPedido.ID_Pedido}, no se indico como cocinado debido a " + $"que fue retirado de la lista desde otra computadora y no llego a quitarse de esta al momento de indicarlo como terminado. " + $"El pedido sera retirado de la lista al cerrar este mensaje (no se indicara como cocinado).", ClsColores.Blanco, 200, 400)) { FormInformacion.ShowDialog(); } lblMostrarNumeroPedido.Text = string.Empty; dgvPlatosPorMesa.Rows.Clear(); dgvListaPedidos.Rows.Remove(dgvListaPedidos.Rows[Indice]); Indice -= 1; TotalDeFilas -= 1; } } else if (InformacionDelError == string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el pedido"); } else { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al actualizar el pedido"); MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } dgvListaPedidos.ClearSelection(); tmrActualizaPedidos.Start(); }