private void BtnDeliveryEntregado_Click(object sender, EventArgs e) { using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.Todos)) { FormValidarUsuario.ShowDialog(); if (FormValidarUsuario.DialogResult == DialogResult.OK) { int TotalDeFilas = dgvDelivery.Rows.Count; for (int Indice = 0; Indice < TotalDeFilas; Indice++) { //Pregunto si la celda es diferente a null if (dgvDelivery.Rows[Indice].Cells[(int)ENumColDGVDelivery.Seleccionar].Value != null) { //Casteo el check del objeto a booleano y pregunto si es true if ((bool)dgvDelivery.Rows[Indice].Cells[(int)ENumColDGVDelivery.Seleccionar].Value) { string InformacionDelError = string.Empty; ClsPedidos Pedidos = new ClsPedidos(); Pedido VerDelivery = Pedidos.LeerPorNumero((int)dgvDelivery.Rows[Indice].Cells[(int)ENumColDGVDelivery.ID_Delivery].Value, ref InformacionDelError); ClsDetalles Detalles = new ClsDetalles(); if (VerDelivery != null) { if (VerDelivery.Delivery.ID_EstadoDelivery == (int)ClsEstadosDeliveries.EEstadosDeliveries.ParaEntrega) { using (FrmResumenPedido FormResumenDePedido = new FrmResumenPedido((int)dgvDelivery.Rows[Indice].Cells[(int)ENumColDGVDelivery.ID_Pedido].Value, FormValidarUsuario.G_ID_UsuarioQueValido)) { FormResumenDePedido.ShowDialog(); if (FormResumenDePedido.DialogResult == DialogResult.OK) { int TotalDelPedido = 0; List <Detalle> CalcularTotal = Detalles.LeerListado((int)dgvDelivery.Rows[Indice].Cells[(int)ENumColDGVDelivery.ID_Pedido].Value, ClsDetalles.ETipoDeListado.PorIDPedido, ref InformacionDelError); if (CalcularTotal != null) { foreach (Detalle Elemento in CalcularTotal) { TotalDelPedido += Convert.ToInt32(Elemento.Cantidad * Elemento.Articulo.Precio); } VerDelivery.TotalPedido = TotalDelPedido; } else if (InformacionDelError == string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar calcular el total del pedido"); } else { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar calcular el total del pedido"); MessageBox.Show($"Error al intentar calcular el total del pedido {(int)dgvDelivery.Rows[Indice].Cells[(int)ENumColDGVDelivery.ID_Pedido].Value}: {InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } VerDelivery.ID_EstadoPedido = (int)ClsEstadosPedidos.EEstadosPedidos.Finalizado; VerDelivery.TiempoEspera = null; if (Pedidos.Actualizar(VerDelivery, ref InformacionDelError) != 0) { FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Pedido y delivery finalizado"; ClsDeliveries Deliveries = new ClsDeliveries(); Delivery ActualizarDelivery = new Delivery(); ActualizarDelivery = Deliveries.LeerPorNumero(VerDelivery.Delivery.ID_Delivery, ref InformacionDelError); ActualizarDelivery.ID_EstadoDelivery = (int)ClsEstadosDeliveries.EEstadosDeliveries.Entregado; Deliveries.Actualizar(ActualizarDelivery, ref InformacionDelError); dgvDelivery.Rows.Remove(dgvDelivery.Rows[Indice]); Indice -= 1; TotalDeFilas -= 1; } else if (InformacionDelError != string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al finalizar el delivery"); MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } else { using (FrmInformacion FormInformacion = new FrmInformacion($"No puede editar o eliminar el delivery de {VerDelivery.Cliente.Nombre} {VerDelivery.Cliente.Apellido} " + $"porque ya fue confirmado su estado (eliminado, entregado, etc) o este todavia se encuentra en cocina.", ClsColores.Blanco, 250, 300)) { FormInformacion.ShowDialog(); } } } else if (InformacionDelError == string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al buscar platos sin cocinar"); MessageBox.Show("Ocurrio un fallo al buscar platos sin cocinar", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al buscar platos sin cocinar"); MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } } } }
private void BtnActualizar_Click(object sender, EventArgs e) { if (dtpVencimientoGeneral.Value.Date >= dtpVencimientoFuncionesEspecificas.Value.Date) { using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.Desarrolladores)) { FormValidarUsuario.ShowDialog(); if (FormValidarUsuario.DialogResult == DialogResult.OK) { string InformacionDelError = string.Empty; ClsVencimientosFuncionalidades VencimientoFuncionalidades = new ClsVencimientosFuncionalidades(); VencimientoFuncionalidades ActualizarFechas = VencimientoFuncionalidades.LeerPorNumero(1, ref InformacionDelError); if (ActualizarFechas != null) { ActualizarFechas.VencimientoGeneral = dtpVencimientoGeneral.Value.Date; ActualizarFechas.VencimientoFunciones = dtpVencimientoFuncionesEspecificas.Value.Date; if (VencimientoFuncionalidades.Actualizar(ActualizarFechas, ref InformacionDelError) != 0) { using (FrmInformacion FormInformacion = new FrmInformacion($"Se actualizaron las fechas de vencimiento con exito:\r\n\r\n" + $"Fecha de vencimiento general = {ActualizarFechas.VencimientoGeneral.ToShortDateString()}\r\n\r\n" + $"Fecha de vencimiento de funciones especificas = {ActualizarFechas.VencimientoFunciones.ToShortDateString()}", ClsColores.Blanco, 200, 500)) { FormInformacion.ShowDialog(); } Close(); } else if (InformacionDelError != string.Empty) { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else if (InformacionDelError == string.Empty) { MessageBox.Show("Fallo al leer los datos", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { using (FrmInformacion FormInformacion = new FrmInformacion("Usuario no autorizado, actualizacion de vencimientos cancelada.", ClsColores.Blanco, 150, 300)) { FormInformacion.ShowDialog(); } } } } else { using (FrmInformacion FormInformacion = new FrmInformacion("La fecha de vencimiento de las funciones generales no puede ser menor " + "a la de las funciones especificas.", ClsColores.Blanco, 150, 300)) { FormInformacion.ShowDialog(); } } }
private void BtnDeliveryNoRecibido_Click(object sender, EventArgs e) { FrmRespuesta FormRespuesta = new FrmRespuesta($"¿Esta seguro que quiere marcar el pedido del delivery como 'Fallido'? Si selecciona 'si', " + $"se creara un registro del mismo como perdida en caja", FrmRespuesta.ETamaño.Mediano, FrmRespuesta.ETipo.Si_No); if (FormRespuesta.DialogResult == DialogResult.Yes) { int TotalDeFilas = dgvDelivery.Rows.Count; ClsPedidos Pedidos = new ClsPedidos(); Pedido VerDelivery = new Pedido(); ClsDeliveries Deliveries = new ClsDeliveries(); Delivery ActualizarDelivery = null; ClsCajas Cajas = new ClsCajas(); Caja CrearRegistro = null; ClsDetalles Detalle = new ClsDetalles(); List <Detalle> CalcularPerdida = new List <Detalle>(); using (FrmValidarUsuario FormValidarUsuario = new FrmValidarUsuario(FrmValidarUsuario.EFiltroUsuariosAutorizados.Todos)) { FormValidarUsuario.ShowDialog(); if (FormValidarUsuario.DialogResult == DialogResult.OK) { for (int Indice = 0; Indice < TotalDeFilas; Indice++) { //Pregunto si la celda es diferente a null if (dgvDelivery.Rows[Indice].Cells[(int)ENumColDGVDelivery.Seleccionar].Value != null) { //Casteo el check del objeto a booleano y pregunto si es true if ((bool)dgvDelivery.Rows[Indice].Cells[(int)ENumColDGVDelivery.Seleccionar].Value) { string InformacionDelError = string.Empty; ClsDetalles Detalles = new ClsDetalles(); List <Detalle> BuscarArticuloSinCocinar = Detalles.LeerListado((int)dgvDelivery.Rows[Indice].Cells[(int)ENumColDGVDelivery.ID_Pedido].Value, (int)ClsDetalles.ETipoDeListado.PorIDPedido, ref InformacionDelError); bool FaltanCocinar = false; if (BuscarArticuloSinCocinar != null) { foreach (Detalle Elemento in BuscarArticuloSinCocinar) { if (Elemento.ID_EstadoDetalle == (int)ClsEstadoDetalle.EEstadoDetalle.NoCocinado) { FaltanCocinar = true; break; } } VerDelivery = Pedidos.LeerPorNumero((int)dgvDelivery.Rows[Indice].Cells[(int)ENumColDGVDelivery.ID_Pedido].Value, ref InformacionDelError); if (VerDelivery != null) { if (!FaltanCocinar) { double TotalPerdido = 0; CalcularPerdida = Detalle.LeerListado((int)dgvDelivery.Rows[Indice].Cells[(int)ENumColDGVDelivery.ID_Pedido].Value, ClsDetalles.ETipoDeListado.PorIDPedido, ref InformacionDelError); foreach (Detalle Elemento in CalcularPerdida) { if (Elemento.Articulo.PrecioDelivery != null) { TotalPerdido += Elemento.Cantidad * (double)Elemento.Articulo.PrecioDelivery; } } if (VerDelivery.Delivery.ID_EstadoDelivery == (int)ClsEstadosDeliveries.EEstadosDeliveries.ParaEntrega) { ActualizarDelivery = Deliveries.LeerPorNumero(VerDelivery.Delivery.ID_Delivery, ref InformacionDelError); ActualizarDelivery.ID_EstadoDelivery = (int)ClsEstadosDeliveries.EEstadosDeliveries.NoEntregado; Deliveries.Actualizar(ActualizarDelivery, ref InformacionDelError); VerDelivery.ID_EstadoPedido = (int)ClsEstadosPedidos.EEstadosPedidos.Finalizado; VerDelivery.TiempoEspera = null; int TotalDelPedido = 0; List <Detalle> CalcularTotal = Detalles.LeerListado((int)dgvDelivery.Rows[Indice].Cells[(int)ENumColDGVDelivery.ID_Pedido].Value, ClsDetalles.ETipoDeListado.PorIDPedido, ref InformacionDelError); if (CalcularTotal != null) { foreach (Detalle Elemento in CalcularTotal) { TotalDelPedido += Convert.ToInt32(Elemento.Cantidad * Elemento.Articulo.Precio); } VerDelivery.TotalPedido = TotalDelPedido; } else if (InformacionDelError == string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar calcular el total del pedido"); } else { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar calcular el total del pedido"); MessageBox.Show($"Error al intentar calcular el total del pedido {(int)dgvDelivery.Rows[Indice].Cells[(int)ENumColDGVDelivery.ID_Pedido].Value}: {InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } if (Pedidos.Actualizar(VerDelivery, ref InformacionDelError) != 0) { FrmPrincipal.ObtenerInstancia().S_tslResultadoOperacion = "Pedido y delivery actualizado"; CrearRegistro = new Caja(); CrearRegistro.ID_Usuario = FormValidarUsuario.G_ID_UsuarioQueValido; CrearRegistro.Fecha = DateTime.Today.Date; CrearRegistro.Hora = TimeSpan.Parse(DateTime.Now.ToString(@"HH\:mm\:ss")); CrearRegistro.Monto = TotalPerdido; CrearRegistro.Detalle = "Perdida por delivery no entregado"; CrearRegistro.ID_Pedido = VerDelivery.ID_Pedido; CrearRegistro.ID_TipoDeMonto = (int)ClsTiposDeMontos.ETiposDeMontos.EgresoDelivery; CrearRegistro.ID_EstadoCaja = (int)ClsEstadosCajas.EEstadosCajas.Activo; if (Cajas.Crear(CrearRegistro, ref InformacionDelError) != 0) { dgvDelivery.Rows.Remove(dgvDelivery.Rows[Indice]); Indice -= 1; TotalDeFilas -= 1; } else if (InformacionDelError == string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al crear el registro de perdida en caja"); MessageBox.Show($"Fallo al crear el registro de perdida en caja", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al crear el registro de perdida en caja"); MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else if (InformacionDelError != string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al marcar el delivery como no recibido"); MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { using (FrmInformacion FormInformacion = new FrmInformacion($"No puede editar o eliminar el delivery de {VerDelivery.Cliente.Nombre} {VerDelivery.Cliente.Apellido} " + $"porque ya fue confirmado su estado o fue eliminado.", ClsColores.Blanco, 250, 300)) { FormInformacion.ShowDialog(); } } } else { using (FrmInformacion FormInformacion = new FrmInformacion($"No puede marcar como 'No entregado' el delivery de {VerDelivery.Cliente.Nombre} {VerDelivery.Cliente.Apellido} porque falta que " + $"cocina marque los platos del pedido como finalizados (solo se puede marcar esta opcion si " + $"ya fueron cocinados los platos y nadie pago el delivery).", ClsColores.Blanco, 250, 300)) { FormInformacion.ShowDialog(); } } } else if (InformacionDelError == string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al marcar el delivery como no recibido"); MessageBox.Show("Ocurrio un fallo al marcar el delivery como no recibido", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Fallo al marcar el delivery como no recibido"); MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } } } } } }