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 button4_Click(object sender, EventArgs e)
        {
            //CHECK OUT
            int codReserva = 0;

            int idEstadia = 0;
            //si se va antes de la fecha de salida tengo que poner bien los dias porque dsp en la factura se hace algo con esto
            DateTime           date        = Utils.getSystemDatetimeNow();
            RepositorioEstadia repoEstadia = new RepositorioEstadia();
            RepositorioReserva repoReserva = new RepositorioReserva();

            if (textBox1.Text != "")
            {
                codReserva = int.Parse(textBox1.Text.Trim());
                //consigo del codigo de reserva el idEstadia
                idEstadia = repoReserva.getIdEstadiaByCodReserva(codReserva);
                if (idEstadia != 0)
                {
                    //veo que este con RCI
                    String estado = "";
                    estado = repoEstadia.getEstado(codReserva);
                    Reserva reserva = repoReserva.getIdByIdEstadia(idEstadia);
                    if (this.sesion.getHotel().getIdHotel() != reserva.getHotel().getIdHotel())
                    {
                        MessageBox.Show("La reserva ingresada no pertenece al hotel en el que el usuario esta logueado.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    if (estado.Equals("RCI") | estado.Equals("RCCR"))
                    {
                        //Estadia estadia = new Estadia(idEstadia, this.sesion.getUsuario(), date);
                        Estadia estadia = reserva.getEstadia();
                        estadia.setFechaSalida(date);
                        estadia.setCantidadNoches(Convert.ToDecimal((date - reserva.getFechaDesde()).TotalDays));
                        estadia.setUsuarioOut(this.sesion.getUsuario());

                        repoEstadia.update(estadia);
                        //hago update de EstadoReserva
                        RepositorioEstadoReserva repoEstadoReserva = new RepositorioEstadoReserva();
                        //int idEstadoReserva = 0;
                        //Reserva reserva = repoReserva.getIdByIdEstadia(estadia.getIdEstadia());
                        String        desc          = "Reserva Con Egreso";
                        String        tipoEstado    = "RCE";
                        EstadoReserva estadoReserva = new EstadoReserva(reserva.getIdReserva(), this.sesion.getUsuario(), reserva, tipoEstado, date, desc);
                        repoEstadoReserva.update(estadoReserva);
                        MessageBox.Show("Check out correcto, proceder a facturar Estadia.", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("La reserva ingresada no esta actualmente en estado 'Reserva con Ingreso' o 'Reserva con Consumibles Registrados'.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show("La estadia asociada a la reserva ingresada no existe.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Ingrese un numero de reserva válido.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            //llamo a facturar estadia para que sea mas happy path

            /*using (AltaFacturaEstadia form = new AltaFacturaEstadia())
             * {
             *  var result = form.ShowDialog();
             *
             *  if (result == DialogResult.OK)
             *  {
             *
             *  }
             * }*/
        }