private void CargarDatos(Reserva reserva) { this.lblTipoEvento2.Text = reserva.Evento.Descripcion; this.lblCantidadAdultos2.Text = reserva.CantidadAdultos.ToString(); this.lblCantidadNiños2.Text = reserva.CantidadNiños.ToString(); this.lblEmpleadosNecesarios2.Text = reserva.Empleados.Count().ToString(); this.lblExcedente2.Text = reserva.Excedentes == null ? "-" : GestorReserva.ObtenerInstancia().CalcularCostoExcedentes(reserva).ToString("C2"); this.listServicios.DataSource = reserva.Servicios.ToArray(); this.lblDUCliente2.Text = reserva.Cliente.DU.ToString(); this.lblApellido2.Text = reserva.Cliente.Apellido; this.lblNombre2.Text = reserva.Cliente.Nombre; this.lblTel2.Text = reserva.Cliente.Telefono; this.lblDireccion2.Text = reserva.Cliente.Direccion == null ? " - " : reserva.Cliente.Direccion.ToString(); this.lblMontoPagado2.Text = reserva.MontoPagado.ToString("C2"); this.lblMontoTotal2.Text = reserva.MontoTotal.ToString("C2"); switch (reserva.Estado) { case "R": this.lblEstado.Text = "RESERVADO"; break; case "P": this.lblEstado.Text = "PAGADO"; break; case "T": this.lblEstado.Text = "TERMINADO"; break; default: break; } }
public bool ActualizarReserva(Reserva reserva) { try { reserva.DVH = GestorHash.ObtenerInstancia().GenerarHashDatos(reservaDAO.GenerarListaDatos(reserva)); return reservaDAO.ActualizarReserva(reserva); } catch (Exception) { throw; } }
public bool AgregarEmpleadosReserva(Reserva reserva) { try { int filasAfectadas = 0; using (SqlConnection conexion = Conexion.ObtenerInstancia().CrearConexionSQL()) { using (SqlCommand comando = conexion.CreateCommand()) { comando.CommandType = CommandType.StoredProcedure; comando.Connection.Open(); if (reserva.Empleados != null) { comando.CommandText = "SPU_Reserva_Empleado"; foreach (Empleado emp in reserva.Empleados) { comando.Parameters.Clear(); comando.Parameters.Add(new SqlParameter("@IdReserva", reserva.ID)); comando.Parameters.Add(new SqlParameter("@IdEmpleado", emp.DU)); filasAfectadas += comando.ExecuteNonQuery(); } } } } if (filasAfectadas > 0) { return true; } else { return false; } } catch (AccesoBDException ex) { throw new DALException("ReservaDAO", "ActualizarReserva", "AccesoBD", ex.Message, ex); } catch (SqlException ex) { throw new DALException("ReservaDAO", "ActualizarReserva", "SQL", ex.Message, ex); } catch (Exception ex) { throw new DALException("ReservaDAO", "ActualizarReserva", "General: " + ex.GetType().ToString(), ex.Message, ex); } }
public bool ActualizarReserva(Reserva reserva) { try { int filasAfectadas = 0; using (SqlConnection conexion = Conexion.ObtenerInstancia().CrearConexionSQL()) { using (SqlCommand comando = conexion.CreateCommand()) { comando.CommandType = CommandType.StoredProcedure; comando.CommandText = "SPU_Reserva"; comando.Parameters.Add(new SqlParameter("@IdReserva", reserva.ID)); if (reserva.Evento != null) { comando.Parameters.Add(new SqlParameter("@Evento", reserva.Evento.ID)); } if (reserva.Cliente != null) { comando.Parameters.Add(new SqlParameter("@Cliente", reserva.Cliente.DU)); } comando.Parameters.Add(new SqlParameter("@CantidadNiños", reserva.CantidadNiños)); comando.Parameters.Add(new SqlParameter("@CantidadAdultos", reserva.CantidadAdultos)); comando.Parameters.Add(new SqlParameter("@MontoPagado", reserva.MontoPagado)); comando.Parameters.Add(new SqlParameter("@MontoTotal", reserva.MontoTotal)); comando.Parameters.Add(new SqlParameter("@FechaHoraInicio", reserva.FechaHoraInicio)); comando.Parameters.Add(new SqlParameter("@FechaHoraFin", reserva.FechaHoraFin)); comando.Parameters.Add(new SqlParameter("@CantidadBebidas", reserva.CantidadBebidas)); comando.Parameters.Add(new SqlParameter("@Estado", reserva.Estado)); comando.Parameters.Add(new SqlParameter("@Usuario", reserva.Usuario)); comando.Parameters.Add(new SqlParameter("@FechaHora", reserva.FechaHora)); comando.Parameters.Add(new SqlParameter("@DVH", reserva.DVH)); comando.Connection.Open(); filasAfectadas = comando.ExecuteNonQuery(); if (reserva.Servicios != null) { comando.CommandText = "SPU_Reserva_Servicio"; foreach (Servicio ser in reserva.Servicios) { comando.Parameters.Clear(); comando.Parameters.Add(new SqlParameter("@IdReserva", reserva.ID)); comando.Parameters.Add(new SqlParameter("@IdServicio", ser.ID)); comando.ExecuteNonQuery(); } } if (reserva.Empleados != null) { comando.CommandText = "SPU_Reserva_Empleado"; foreach (Empleado emp in reserva.Empleados) { comando.Parameters.Clear(); comando.Parameters.Add(new SqlParameter("@IdReserva", reserva.ID)); comando.Parameters.Add(new SqlParameter("@IdEmpleado", emp.DU)); comando.ExecuteNonQuery(); } } if (reserva.Excedentes != null) { comando.CommandText = "SPI_Excedente"; foreach (Excedente exc in reserva.Excedentes) { if (exc.ID == 0) { comando.Parameters.Clear(); comando.Parameters.Add(new SqlParameter("@IdReserva", reserva.ID)); comando.Parameters.Add(new SqlParameter("@Monto", exc.Monto)); comando.ExecuteNonQuery(); } } } } } if (filasAfectadas > 0) { return true; } else { return false; } } catch (AccesoBDException ex) { throw new DALException("ReservaDAO", "ActualizarReserva", "AccesoBD", ex.Message, ex); } catch (SqlException ex) { throw new DALException("ReservaDAO", "ActualizarReserva", "SQL", ex.Message, ex); } catch (Exception ex) { throw new DALException("ReservaDAO", "ActualizarReserva", "General: " + ex.GetType().ToString(), ex.Message, ex); } }
public List<Reserva> TraerReservasEmpleado(long duEmpleado, DateTime fechaDesde, DateTime fechaHasta) { try { List<Reserva> listaReservas = null; Reserva reserva = null; using (SqlConnection conexion = Conexion.ObtenerInstancia().CrearConexionSQL()) { using (SqlCommand comando = conexion.CreateCommand()) { comando.CommandType = CommandType.StoredProcedure; comando.CommandText = "SPS_Reserva_por_Empleado_y_Fechas"; comando.Parameters.Add(new SqlParameter("@Empleado", duEmpleado)); comando.Parameters.Add(new SqlParameter("@FechaDesde", fechaDesde)); comando.Parameters.Add(new SqlParameter("@FechaHasta", fechaHasta)); comando.Connection.Open(); SqlDataReader dataReader = comando.ExecuteReader(CommandBehavior.CloseConnection); if (dataReader.HasRows) { listaReservas = new List<Reserva>(); while (dataReader.Read()) { reserva = new Reserva(); reserva.ID = Convert.ToInt64(dataReader["ID"]); reserva.Evento = dataReader["EVENTO"] == DBNull.Value ? null : ConsultarEvento(Convert.ToInt32(dataReader["EVENTO"])); reserva.Cliente = dataReader["CLIENTE"] == DBNull.Value ? null : ConsultarCliente(Convert.ToInt64(dataReader["CLIENTE"])); reserva.Empleados = ConsultarEmpleados(reserva.ID); reserva.Servicios = ConsultarServicios(reserva.ID); reserva.Excedentes = ConsultaExcedentes(reserva.ID); reserva.CantidadNiños = Convert.ToInt32(dataReader["CANTIDAD_NIÑOS"]); reserva.CantidadAdultos = Convert.ToInt32(dataReader["CANTIDAD_ADULTOS"]); reserva.MontoPagado = Convert.ToDouble(dataReader["MONTO_PAGADO"]); reserva.MontoTotal = Convert.ToDouble(dataReader["MONTO_TOTAL"]); reserva.FechaHoraInicio = Convert.ToDateTime(dataReader["FECHA_HORA_INICIO"]); reserva.FechaHoraFin = Convert.ToDateTime(dataReader["FECHA_HORA_FIN"]); reserva.CantidadBebidas = Convert.ToInt32(dataReader["CANTIDAD_BEBIDAS"]); reserva.Estado = dataReader["ESTADO"].ToString(); reserva.Usuario = dataReader["USUARIO"].ToString(); reserva.FechaHora = Convert.ToDateTime(dataReader["FECHA_HORA"]); reserva.DVH = dataReader["DVH"].ToString(); listaReservas.Add(reserva); } } } } return listaReservas; } catch (AccesoBDException ex) { throw new DALException("ReservaDAO", "TraerReservas", "AccesoBD", ex.Message, ex); } catch (SqlException ex) { throw new DALException("ReservaDAO", "TraerReservas", "SQL", ex.Message, ex); } catch (Exception ex) { throw new DALException("ReservaDAO", "TraerReservas", "General: " + ex.GetType().ToString(), ex.Message, ex); } }
public int CalcularCantidadBebidas(Reserva reserva) { int cantBebidas = 0; try { double litrosAdultos = reserva.CantidadAdultos * 1.5; double litrosNiños = reserva.CantidadNiños; cantBebidas = (int)Math.Ceiling((litrosAdultos + litrosNiños) / 2.25); reserva.CantidadBebidas = cantBebidas; return reserva.CantidadBebidas; } catch (Exception) { throw; } }
public Int64 InsertarNuevaReserva(Reserva reserva) { try { using (SqlConnection conexion = Conexion.ObtenerInstancia().CrearConexionSQL()) { using (SqlCommand comando = conexion.CreateCommand()) { comando.CommandType = CommandType.StoredProcedure; comando.CommandText = "SPI_Reserva"; comando.Parameters.Add(new SqlParameter("@DuCliente", reserva.Cliente.DU)); comando.Parameters.Add(new SqlParameter("@FechaHoraInicio", reserva.FechaHoraInicio)); comando.Parameters.Add(new SqlParameter("@FechaHoraFin", reserva.FechaHoraFin)); comando.Parameters.Add(new SqlParameter("@Estado", reserva.Estado)); comando.Parameters.Add(new SqlParameter("@Usuario", reserva.Usuario)); comando.Parameters.Add(new SqlParameter("@FechaHora", reserva.FechaHora)); comando.Parameters.Add(new SqlParameter("@DVH", reserva.DVH)); comando.Connection.Open(); reserva.ID = Convert.ToInt64(comando.ExecuteScalar()); } } return reserva.ID; } catch (AccesoBDException ex) { throw new DALException("ReservaDAO", "InsertarNuevaReserva", "AccesoBD", ex.Message, ex); } catch (SqlException ex) { throw new DALException("ReservaDAO", "InsertarNuevaReserva", "SQL", ex.Message, ex); } catch (Exception ex) { throw new DALException("ReservaDAO", "InsertarNuevaReserva", "General: " + ex.GetType().ToString(), ex.Message, ex); } }
public double CalcularCostoPersonasExtra(Reserva reserva) { double resultado = 0; try { int cantPersonasMinima = reserva.Evento.CantidadAdultos + reserva.Evento.CantidadNiños; int cantPersonas = reserva.CantidadAdultos + reserva.CantidadNiños; int decenasExtra = (cantPersonas - cantPersonasMinima) / 10; resultado = decenasExtra * reserva.Evento.PrecioDecenaExtra; return resultado; } catch (Exception) { throw; } }
private void CargarDatosReserva(Reserva res) { this.lblFecha2.Text = res.FechaHoraInicio.ToShortDateString(); this.lblHoraInicio2.Text = res.FechaHoraInicio.TimeOfDay.ToString(); this.lblHoraFin2.Text = res.FechaHoraFin.TimeOfDay.ToString(); this.lblNombre.Text = res.Cliente.ToString(); this.lblDuracion2.Text = res.FechaHoraFin.Subtract(res.FechaHoraInicio).TotalHours.ToString("N1") + " Hs."; this.listServiciosAgregados.DataSource = res.Servicios.ToArray(); this.listEmpleadosAsignados.DataSource = res.Empleados.ToArray(); }
public Int64 NuevaReserva(DateTime fechaDesde, DateTime fechaHasta, Cliente cliente) { Reserva nuevaReserva = null; try { if (ValidarHorarioReserva(fechaDesde, fechaHasta)) { Reserva reserva = new Reserva(); reserva.Cliente = cliente; reserva.FechaHoraInicio = fechaDesde; reserva.FechaHoraFin = fechaHasta; reserva.Estado = "I"; //Inicial reserva.Usuario = GestorLogin.ObtenerInstancia().Usuario.Nombre; reserva.FechaHora = DateTime.Now; reserva.DVH = GestorHash.ObtenerInstancia().GenerarHashDatos(reservaDAO.GenerarListaDatos(reserva)); Int64 idReserva = reservaDAO.InsertarNuevaReserva(reserva); if (idReserva > 0) { nuevaReserva = reservaDAO.TraerReserva(idReserva); nuevaReserva.DVH = GestorHash.ObtenerInstancia().GenerarHashDatos(reservaDAO.GenerarListaDatos(nuevaReserva)); if (reservaDAO.ActualizarReserva(nuevaReserva)) { return idReserva; } else { return 0; } } else { return 0; } } else { return -1; } } catch (Exception) { throw; } }
private void CargarDatos(Reserva reserva) { this.lblTipoEvento2.Text = reserva.Evento.Descripcion; this.lblAdultos2.Text = reserva.CantidadAdultos.ToString(); this.lblNiños2.Text = reserva.CantidadNiños.ToString(); this.listServicios.DataSource = reserva.Servicios.ToArray(); this.lblFecha2.Text = reserva.FechaHoraInicio.ToShortDateString(); this.lblHoraInicio2.Text = reserva.FechaHoraInicio.TimeOfDay.ToString(); this.lblHoraFin2.Text = reserva.FechaHoraFin.TimeOfDay.ToString(); this.lblCantidadHoras2.Text = reserva.FechaHoraFin.Subtract(reserva.FechaHoraInicio).TotalHours.ToString(); this.lblMontoPagado2.Text = reserva.MontoPagado.ToString("C2"); this.lblMontoTotalAnt2.Text = reserva.MontoTotal.ToString("C2"); if (reserva.Estado == "R") { this.lblEstado2.Text = "RESERVADO"; this.gbDetalleEvento.Enabled = true; } else { this.lblEstado2.Text = reserva.Estado == "P" ? "PAGADO" : "TERMINADO"; gbDetalleEvento.Enabled = false; } }
public List<Empleado> ConsultarEmpleadosDisponibles(Reserva reserva) { try { return reservaDAO.ConsultarEmpleadosDisponibles(reserva.FechaHoraInicio, reserva.FechaHoraFin); } catch (Exception) { throw; } }
public bool EliminarEmpleadosReserva(Reserva reserva) { try { return reservaDAO.EliminarEmpleadosReserva(reserva); } catch (Exception) { throw; } }
public double CalcularCostoTotalReserva(Reserva reserva) { try { reserva.MontoTotal = CalcularCostoPersonasExtra(reserva) + CalcularCostoServicios(reserva) + CalcularCostoTiempoExtra(reserva) + reserva.Evento.Precio + CalcularCostoExcedentes(reserva); return reserva.MontoTotal; } catch (Exception) { throw; } }
public double CalcularCostoTiempoExtra(Reserva reserva) { double resultado = 0; int cantBloquesExtra = 0; try { TimeSpan duracion = reserva.FechaHoraFin.Subtract(reserva.FechaHoraInicio); if (duracion.TotalHours >= 2.5) { cantBloquesExtra = Convert.ToInt32((duracion.TotalHours - 2.5) / 0.5); } resultado = cantBloquesExtra * reserva.Evento.PrecioBloqueExtra; return resultado; } catch (Exception) { throw; } }
public double CalcularCostoServicios(Reserva reserva) { double resultado = 0; try { foreach (Servicio servicio in reserva.Servicios) { resultado += servicio.Precio; } return resultado; } catch (Exception) { throw; } }
private void CargarDatos(Reserva reserva) { this.lblMontoPagado2.Text = reserva.MontoPagado.ToString("C2"); this.lblMontoTotalAnt2.Text = reserva.MontoTotal.ToString("C2"); if (reserva.Estado == "R" || reserva.Estado == "P") { gbCotizacion.Enabled = true; } else { gbCotizacion.Enabled = false; } }
private void LimpiarControles() { reserva = null; this.txtClienteDU.Clear(); this.txtPago.Clear(); this.gridReserva.DataSource = null; this.listServicios.DataSource = null; this.gbDetalleEvento.Enabled = false; this.lblTipoEvento2.Text = "-"; this.lblAdultos2.Text = "0"; this.lblNiños2.Text = "0"; this.listServicios.DataSource = null; this.lblFecha2.Text = "-"; this.lblHoraInicio2.Text = "-"; this.lblHoraFin2.Text = "-"; this.lblCantidadHoras2.Text = "-"; this.lblMontoPagado2.Text = 0.ToString("C2"); this.lblMontoTotalAnt2.Text = 0.ToString("C2"); this.lblMontoTotalNvo2.Text = 0.ToString("C2"); this.chkCancelar.Checked = false; }
private void LimpiarControles() { reserva = null; this.txtClienteDU.Clear(); this.txtExcedente.Clear(); this.lblMontoPagado2.Text = 0.ToString("C2"); this.lblMontoTotalAnt2.Text = 0.ToString("C2"); this.lblMontoTotalNvo2.Text = 0.ToString("C2"); }
public double CalcularCostoExcedentes(Reserva reserva) { double resultado = 0; try { foreach (Excedente excedente in reserva.Excedentes) { resultado += excedente.Monto; } return resultado; } catch (Exception) { throw; } }
private void gridReserva_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { try { if (this.gridReserva.Rows.Count > 0) { reserva = (Reserva)this.gridReserva.CurrentRow.DataBoundItem; if (reserva != null) { CargarDatos(reserva); } } } catch (Exception ex) { ErrorManager.ObtenerInstancia().LoguearErrorBD(ex); MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public bool ValidarHorarioReserva(Reserva reserva, DateTime fechaDesde, DateTime fechaHasta) { bool resultado = true; try { List<Reserva> reservas = reservaDAO.TraerReservas(fechaDesde.Date); reservas.RemoveAll(x => x.ID == reserva.ID); if (reservas != null) { foreach (Reserva res in reservas) { if (fechaHasta < res.FechaHoraInicio || fechaDesde > res.FechaHoraFin) { resultado = true && resultado; } else { resultado = false && resultado; } } } return resultado; } catch (Exception) { throw; } }
private void btnBuscarReserva_Click(object sender, EventArgs e) { try { if (string.IsNullOrWhiteSpace(this.txtIdReserva.Text)) { MessageBox.Show("Debe ingresar un ID de reserva.", "Cotización", MessageBoxButtons.OK, MessageBoxIcon.Error); this.txtIdReserva.Focus(); return; } long idReserva = 0; if (Int64.TryParse(this.txtIdReserva.Text, out idReserva)) { reserva = GestorReserva.ObtenerInstancia().ConsultarReserva(idReserva); if (reserva != null) { CargarDatosReserva(reserva); CargarControles(); } else { DialogResult dialogo = MessageBox.Show("Reserva inexistente. ¿Desea generar una nueva reserva?", "Cotización", MessageBoxButtons.YesNo); if (dialogo == System.Windows.Forms.DialogResult.Yes) { FormHelper.ObtenerInstancia().MostrarFormulario(this.MdiParent, new FReserva()); } } } else { MessageBox.Show("Debe ingresar un valor númerico.", "Cotización", MessageBoxButtons.OK, MessageBoxIcon.Error); this.txtIdReserva.Focus(); return; } } catch (Exception ex) { string mensajeError = ErrorManager.ObtenerInstancia().LoguearGenerarMensajeError(ex, MensajeError.ConsultaReservasFallida, FormHelper.ObtenerInstancia().TraerUltimoIdioma()); MessageBox.Show(mensajeError, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public List<String> GenerarListaDatos(Reserva reserva) { try { List<String> datos = new List<string>(); datos.Add(reserva.ID.ToString(CultureInfo.InvariantCulture)); if (reserva.Evento != null) { datos.Add(reserva.Evento.ID.ToString(CultureInfo.InvariantCulture)); } if (reserva.Cliente != null) { datos.Add(reserva.Cliente.DU.ToString(CultureInfo.InvariantCulture)); } datos.Add(reserva.CantidadNiños.ToString(CultureInfo.InvariantCulture)); datos.Add(reserva.CantidadAdultos.ToString(CultureInfo.InvariantCulture)); datos.Add(reserva.MontoPagado.ToString(CultureInfo.InvariantCulture)); datos.Add(reserva.MontoTotal.ToString(CultureInfo.InvariantCulture)); datos.Add(reserva.FechaHoraInicio.ToString(CultureInfo.InvariantCulture)); datos.Add(reserva.FechaHoraFin.ToString(CultureInfo.InvariantCulture)); datos.Add(reserva.CantidadBebidas.ToString(CultureInfo.InvariantCulture)); datos.Add(reserva.Estado.ToString(CultureInfo.InvariantCulture)); datos.Add(reserva.Usuario.ToString(CultureInfo.InvariantCulture)); datos.Add(reserva.FechaHora.ToString(CultureInfo.InvariantCulture)); return datos; } catch (AccesoBDException ex) { throw new DALException("ReservaDAO", "GenerarListaDatos", "AccesoBD", ex.Message, ex); } catch (Exception ex) { throw new DALException("ReservaDAO", "GenerarListaDatos", "General: " + ex.GetType().ToString(), ex.Message, ex); } }
private void LimpiarControles(bool todos) { if (todos) { reserva = null; this.txtIdReserva.Clear(); HabilitarControles(false); this.lblFecha2.Text = "-"; this.lblHoraInicio2.Text = "-"; this.lblHoraFin2.Text = "-"; this.lblNombre.Text = "-"; this.lblDuracion2.Text = "-"; this.lblCantidadAdultos2.Text = "0"; this.lblCantidadNiños2.Text = "0"; } this.lblAdultosExtra2.Text = "0"; this.lblNiñosExtra2.Text = "0"; this.listServiciosAgregados.DataSource = null; this.listEmpleadosAsignados.DataSource = null; this.txtPagoAdelantado.Clear(); this.lblPrecioEvento2.Text = 0.ToString("C2"); this.lblPrecioPersonasExtra2.Text = 0.ToString("C2"); this.lblPrecioServiciosExtra2.Text = 0.ToString("C2"); this.lblPrecioTiempoExtra2.Text = 0.ToString("C2"); this.lblTotal2.Text = 0.ToString("C2"); this.lblBebidas2.Text = "0"; }
public void AsignarEmpleadosDisponibles(Reserva reserva) { try { double cantidadPersonas = reserva.CantidadAdultos + reserva.CantidadNiños; int cantCocineros = (int)Math.Ceiling(cantidadPersonas / 30); int cantMozos = (int)Math.Ceiling(cantidadPersonas / 15); List<Empleado> empleadosAsignados = new List<Empleado>(reserva.Empleados); List<Empleado> empleadosDisponibles = reservaDAO.ConsultarEmpleadosDisponibles(reserva.FechaHoraInicio, reserva.FechaHoraFin); foreach (Empleado empleado in empleadosDisponibles) { if (!empleadosAsignados.Contains(empleado)) { empleadosAsignados.Add(empleado); } } reserva.Empleados.Clear(); reserva.Empleados.AddRange(empleadosAsignados.Where(e => e.Cargo.ID == 1).Take(cantCocineros)); reserva.Empleados.AddRange(empleadosAsignados.Where(e => e.Cargo.ID == 2).Take(cantMozos)); } catch (Exception) { throw; } }