private void button2_Click(object sender, EventArgs e)
        {
            //traigo la estadia con sus items de factura si la estadia ya tiene checkout hecho.
            int idEstadia = 0;
            RepositorioEstadia       repositorioEstadia = new RepositorioEstadia();
            RepositorioEstadoReserva repoEstadoReserva  = new RepositorioEstadoReserva();

            Estadia       estadia       = null;
            EstadoReserva estadoReserva = null;

            if (textIdEstadia.Text != "")
            {
                idEstadia = int.Parse(textIdEstadia.Text);

                estadia = repositorioEstadia.getById(idEstadia);
                RepositorioReserva repoReserva = new RepositorioReserva();
                Reserva            reserva     = repoReserva.getIdByIdEstadia(idEstadia);
                //buscar por estado reserva que este con check out ya realizado
                estadoReserva = repoEstadoReserva.getByIdEstadia(idEstadia);
                if (estadoReserva == null)
                {
                    MessageBox.Show("La estadia ingresada no existe", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                if ((!estadoReserva.getTipoEstado().Equals("RCE") && !estadoReserva.getTipoEstado().Equals("RCCR")) | estadia.getFacturada() == true | reserva.getHotel().getIdHotel() != this.sesion.getHotel().getIdHotel())
                {
                    if (estadoReserva.getTipoEstado().Equals("RCI"))
                    {
                        MessageBox.Show("Todavia no se realizo el checkout de la estadia ingresada.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else if (estadoReserva.getTipoEstado().Equals("RF"))
                    {
                        MessageBox.Show("La estadia ya fue facturada.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else if (estadia.getFacturada() == true)
                    {
                        MessageBox.Show("La estadia ingresada ya fue facturada.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else if (reserva.getHotel().getIdHotel() != this.sesion.getHotel().getIdHotel())
                    {
                        MessageBox.Show("La estadia ingresada no corresponde al hotel al cual el usuario esta logueado.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        MessageBox.Show("La estadia ingresada no esta en estado para facturarse", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    //lleno los datos de la estadia aca se puede ver la cantidad de noches que de verdad se alojo.
                    //List<Estadia> estadias = new List<Estadia>();
                    estadias.Add(estadia);
                    dataGridView1.DataSource = estadias;
                    dataGridView1.AutoResizeColumns();
                    dataGridView1.ClearSelection();
                    //lleno los consumibles por estadia en el datagrid2
                    //List<Consumible> consumiblesXEstadia = new List<Consumible>();
                    //repositorioEstadia.getConsumiblesXIdEstadia(estadia.getIdEstadia()).ForEach(i => consumiblesXEstadia.Add(new ConsumibleParaMostrar(i, );
                    consumiblesXEstadia      = repoConsumibles.getByQuery(estadia.getIdEstadia());
                    dataGridView2.DataSource = consumiblesXEstadia;
                    dataGridView2.AutoResizeColumns();
                    dataGridView2.ClearSelection();
                }
            }
            else
            {
                MessageBox.Show("Por favor ingresar ID de estadia.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Beispiel #2
0
        private void buscarReservas()
        {
            dataGridReserva.DataSource = null;
            try
            {
                int codigoReserva = Utils.validateIntField(textCodigoReserva.Text, "Codigo de Reserva");
                RepositorioReserva repoReserva = new RepositorioReserva();
                Reserva            reserva     = repoReserva.getReservaByCodigoReserva(codigoReserva);

                if (reserva != null)
                {
                    if (sesion != null && reserva.getHotel().getIdHotel() != sesion.getHotel().getIdHotel())
                    {
                        MessageBox.Show("La reserva buscada no corresponde al hotel " + sesion.getHotel().getNombre() + ".", "Error al editar reserva", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    EstadoReserva estadoDeLaReserva     = reserva.getEstadoReserva();
                    List <String> estadosNoModificables = new List <String>(new String[] { "RCC", "RCR", "RCNS", "RCE", "RCI", "RCCR", "RF" });
                    bool          noPuedeModificar      = estadosNoModificables.Exists(estadoNoModificable => estadoNoModificable.Equals(estadoDeLaReserva.getTipoEstado()));

                    if (noPuedeModificar)
                    {
                        MessageBox.Show("No puede modificar la reserva por que la misma ha alcanzado un estado no modificable.", "Error al editar reserva", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }


                    DateTime fechaAhora  = Utils.getSystemDatetimeNow();
                    DateTime fechaInicio = reserva.getFechaDesde();


                    if (((fechaInicio - fechaAhora).TotalDays > 1) && (fechaInicio > fechaAhora))
                    {
                        this.buttonModificar.Enabled = true;
                        this.buttonCancelar.Enabled  = true;
                    }
                    else
                    {
                        MessageBox.Show("Las reservas pueden ser editadas hasta 24 horas antes de la fecha de inicio de la misma.", "Error al editar reserva", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }



                    List <Reserva> reservas = new List <Reserva>();
                    reservas.Add(reserva);
                    dataGridReserva.DataSource = reservas;
                    dataGridReserva.AutoResizeColumns();

                    this.AcceptButton = this.buttonModificar;
                }
                else
                {
                    MessageBox.Show("No se ha encontrado la reserva que intenta modificar.", "Error al editar reserva", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            //catch (RequestInvalidoException exception)
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message, "Verifique los datos ingresados", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }