Ejemplo n.º 1
0
        public static bool actualizarTarifa(DetallesHabitacion tur, Tarifa tarIni, DataGridViewRow dr)
        {
            Tarifa tarAct;
            DateTime now = DateTime.Now;
            int nroVuelta = 0;

            if (tarIni.hasta != DateTime.MinValue)
            {
                if (tarIni.hasta > now)
                {
                    bitHasta[tur.nroHab] = true;
                    tarAct = tarIni;
                    bucle1(tur, tarAct, now, tarIni, dr);

                    return true;
                }
                else
                {
                    if (!bitHasta.ContainsKey(tur.nroHab) || bitHasta[tur.nroHab])
                    {
                        bitHasta[tur.nroHab] = false;
                        contPernocte[tur.nroHab] = 0;
                    }
                    return bucle0(tur, out tarAct, now, tarIni, dr);
                }
            }
            else // No
            {
                return bucle0(tur, out tarAct, now, tarIni, dr);
            }
        }
Ejemplo n.º 2
0
        static void bucle4(bool sumCont, DetallesHabitacion tur, int nroHab, DateTime hora, Tarifa tar, DataGridViewRow dr)
        {
            decimal monto;

            Tarifa tarSig = obtenerTarSiguiente(tur.catId, Calendario.nroDia(DateTime.Now), Calendario.nroDiaSig(DateTime.Now), hora);
            if (tur.hasta.AddMinutes(tar.extension) > tarSig.desde)
            {
                monto = calcularPrecioExtDesdeHasta(tar, tur.hasta, tarSig.desde);
                tur.hasta = new DateTime(tur.hasta.Year, tur.hasta.Month, tur.hasta.Day, tarSig.desde.Hour, tarSig.desde.Minute, 0);
            }
            else
            {
                monto =  tar.PrecioExtension();
                tur.hasta = tur.hasta.AddMinutes(tar.extension);
            }
            monto = tools.redondeo(monto);
            tur.impHabitacion += monto;
            if (sumCont)
                contPernocte[nroHab] += monto;

            updateDetallesTurno(nroHab, monto, tur.hasta, contPernocte[nroHab], dr);
        }
Ejemplo n.º 3
0
        private static void bucle1(DetallesHabitacion tur, Tarifa tarAct, DateTime now, Tarifa tar, DataGridViewRow dr)
        {
            decimal precioTotal = tools.redondeo(contPernocte[tur.nroHab] + tarAct.PrecioExtension());

            if (precioTotal >= tarAct.precioTN) // Si
            {
                decimal montoAsumar = tools.redondeo(tarAct.precioTN - contPernocte[tur.nroHab]);
                tur.impHabitacion += montoAsumar;
                if (now.TimeOfDay > tarAct.hasta.TimeOfDay)
                    tur.hasta = new DateTime(now.AddDays(1).Year, now.AddDays(1).Month, now.AddDays(1).Day, tarAct.hasta.Hour, tarAct.hasta.Minute,0);
                else
                    tur.hasta = new DateTime(now.Year, now.Month, now.Day, tarAct.hasta.Hour, tarAct.hasta.Minute, 0);

                updateDetallesTurno(tur.nroHab, montoAsumar, tur.hasta, tarAct.precioTN, dr);
                contPernocte[tur.nroHab] = tarAct.precioTN;
            }
            else // No
            {
                bucle4(true, tur, tur.nroHab, now, tar, dr);
            }
        }
Ejemplo n.º 4
0
        private static void bucle0(DetallesHabitacion tur, out Tarifa tarAct, DateTime now, Tarifa tar, DataGridViewRow dr)
        {
            tarAct = Tarifa.obtenerTarifaActual(tur.catId, Calendario.nroDia(now), Calendario.nroDiaAnt(now), now);

            if (tarAct.pernocte) // si
            {
                bucle1(tur, tarAct, now, tar, dr);
            }
            else // no
            {
                contPernocte[tur.nroHab] = 0;
                bucle4(false, tur, tur.nroHab, now, tarAct, dr);
            }
        }
Ejemplo n.º 5
0
        private void tbNroHab_KeyPress(object sender, KeyPressEventArgs e)
        {
            string msj;
            try
            {
                if ((char)Keys.Enter == e.KeyChar)
                {
                    e.Handled = true;

                    switch (pasoAsignacion)
                    {
                        case "nroHabitacion":

                            msj = validarNroHabitacion(tbNroHab);
                            if (msj != string.Empty)
                            {
                                labelMensaje.Text = msj;
                                labelMensaje.Visible = true;
                                return;
                            }
                            labelMensaje.Visible = false;

                            nroHab = int.Parse(tbNroHab.Text);
                            detallesHab = Habitacion.obtenerDetalles(nroHab);
                            decimal saldoAfavor = decimal.Parse(detallesHab.ptosCambiados.ToString()) - detallesHab.impHabitacion < 0 ? 0 : decimal.Parse(detallesHab.ptosCambiados.ToString()) - detallesHab.impHabitacion;
                            dgvOpcionesElegidas.Rows[0].Cells[0].Value = dgvOpcionesElegidas.Rows[0].Cells[0].Value.ToString() + "    " + nroHab;
                            decimal importeAux2 = detallesHab.impHabitacion - decimal.Parse(detallesHab.ptosCambiados);
                            importeAux2 = importeAux2 < 0 ? 0 : importeAux2;// Si es negativo ,pongo cero.
                            dgvOpcionesElegidas.Rows[1].Cells[0].Value = dgvOpcionesElegidas.Rows[1].Cells[0].Value.ToString() + "    " + String.Format("{0:C}",importeAux2 );
                            dgvOpcionesElegidas.Rows[2].Cells[0].Value = dgvOpcionesElegidas.Rows[2].Cells[0].Value.ToString() + " " + detallesHab.ptosCambiados;
                            dgvOpcionesElegidas.Rows[3].Cells[0].Value = dgvOpcionesElegidas.Rows[3].Cells[0].Value.ToString() + "     " + String.Format("{0:C}", saldoAfavor); ;

                            labelNroHab.Text = "Medio de Pago ";
                            tbNroHab.Text = "0";
                            pasoAsignacion = "medioPago";
                            panelPromos.Visible = true;
                            dgvMedioPago.ClearSelection();

                            break;

                        case "medioPago":

                            medioPago = string.IsNullOrEmpty(tbNroHab.Text) ? 0 : int.Parse(tbNroHab.Text);
                            if (!dictMediosDePago.ContainsKey(medioPago))
                            {
                                labelMensaje.Text = "* El medio de Pago no existe *";
                                labelMensaje.Visible = true;
                                return;
                            }
                            labelMensaje.Visible = false;

                            //Agrego el tema de los Puntos

                            if (dictMediosDePago[medioPago].ToLower().Contains("puntos"))
                            {
                                if (string.IsNullOrEmpty(detallesHab.nroSocio))
                                {
                                    labelMensaje.Text = "* El cliente no es socio *";
                                    labelMensaje.Visible = true;
                                    return;
                                }
                                socio = Socio.registrarYobtener(int.Parse(detallesHab.nroSocio));

                                /*--- Modificar panel medios de pago---*/
                                dgvMedioPago.Rows.Clear();
                                dgvMedioPago.Columns[1].HeaderText = "Datos Socio";
                                dgvMedioPago.Rows.Add("","Puntos: "+ socio.puntaje);
                                dgvMedioPago.Rows.Add("", "Vencimiento: " + socio.fechaVencimientoPuntaje.ToString("dd-MM-yyyy"));
                                /*-------------------------------------*/
                                labelNroHab.Text = "Puntos a Cambiar";
                                pasoAsignacion = "puntos";
                            }
                            else
                            {
                                labelNroHab.Text = "Monto a Adelantar $ ";
                                pasoAsignacion = "monto";
                            }
                            dgvOpcionesElegidas.Rows[4].Cells[0].Value = dgvOpcionesElegidas.Rows[4].Cells[0].Value.ToString() + "    " + dictMediosDePago[medioPago];
                            tbNroHab.Text = "0";

                            break;

                        case "monto":

                            if (string.IsNullOrEmpty(tbNroHab.Text) || tbNroHab.Text == "0")
                            {
                                labelMensaje.Text = "* El monto debe ser mayor a cero *";
                                labelMensaje.Visible = true;
                                return;
                            }
                            monto = decimal.Parse(tbNroHab.Text.Replace('.', ','));
                            if (monto > detallesHab.impHabitacion - decimal.Parse(detallesHab.ptosCambiados) )
                            {
                                labelMensaje.Text = "* El monto debe ser inferior o igual al total *";
                                labelMensaje.Visible = true;
                                return;
                            }
                            labelMensaje.Visible = false;
                            dgvOpcionesElegidas.Rows[5].Cells[0].Value = dgvOpcionesElegidas.Rows[5].Cells[0].Value.ToString() + "  " + String.Format("{0:C}", decimal.Parse(tbNroHab.Text.Replace('.', ',')));

                            pasoAsignacion = "confirmar";
                            labelNroHab.Text = "Confirma Adelanto?";
                            tbNroHab.Visible = false;
                            mostrarOpcionConfirmar();

                            break;

                        case "puntos":

                            if (string.IsNullOrEmpty(tbNroHab.Text) || tbNroHab.Text == "0")
                            {
                                labelMensaje.Text = "* La cantidad de puntos debe ser mayor a cero *";
                                labelMensaje.Visible = true;
                                return;
                            }
                            puntos = int.Parse(tbNroHab.Text);
                            if (puntos > socio.puntaje)
                            {
                                labelMensaje.Text = "* Puntaje insuficiente *";
                                tbNroHab.Clear();
                                labelMensaje.Visible = true;
                                return;
                            }
                            labelMensaje.Visible = false;
                            dgvOpcionesElegidas.Rows[5].Cells[0].Value = dgvOpcionesElegidas.Rows[5].Cells[0].Value.ToString() + " " + puntos.ToString();

                            pasoAsignacion = "confirmar";
                            labelNroHab.Text = "Confirma Adelanto?";
                            tbNroHab.Visible = false;

                            /*--- Modifico el dgv Promos ---*/
                            mostrarOpcionConfirmar();

                            break;

                        case "confirmar":

                            if(puntos == 0)
                                Habitacion.Adelanto((fPrincipal2)this.Owner, nroHab, monto, medioPago);
                            else
                                //adelanto puntos y se los descuento al socio.
                                Habitacion.AdelantarPuntos((fPrincipal2)this.Owner, nroHab, puntos,ref socio);

                            LoggerProxy.Info(string.Format("Ejecuto Adelanto de Dinero - Hab:{0}  Monto:{1}",nroHab,monto));
                            volverFormPrincipal();
                            return;

                        default:
                            break;
                    }
                    tbNroHab.Select(0, tbNroHab.TextLength);
                    dgvMedioPago.ClearSelection();
                    //tbNroHab.SelectionStart = tbNroHab.TextLength;
                    return;
                }
                if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != (char)Keys.Back && e.KeyChar != '.' || (e.KeyChar == '.' && (pasoAsignacion == "nroHabitacion" || tbNroHab.Text.Contains('.'))))
                {
                    if (e.KeyChar == '+')
                    {
                        e.KeyChar = (char)Keys.Back;
                        tbNroHab_KeyPress(sender, e);
                    }
                    else
                        e.Handled = true;
                }
            }
            catch (Exception ex)
            {
                labelMensaje.Text = ex.Message;
                labelMensaje.Visible = true;
                LoggerProxy.Error(ex.Message + " - " + ex.StackTrace);
            }
        }
Ejemplo n.º 6
0
        private static void bucle1(DetallesHabitacion tur, Tarifa tarAct, DateTime now, Tarifa tar, DataGridViewRow dr)
        {
            decimal precioTotal = tools.redondeo(contPernocte[tur.nroHab] + tarAct.PrecioExtension());

            if (precioTotal >= tarAct.precioTN) // Si supero el precio turno noche
            {
                decimal montoAsumar = tools.redondeo(tarAct.precioTN - contPernocte[tur.nroHab]);
                tur.impHabitacion += montoAsumar;
                tur.hasta = tarAct.hasta;
                updateDetallesTurno(tur.nroHab, montoAsumar, tur.hasta, tarAct.precioTN, dr);
                contPernocte[tur.nroHab] = tarAct.precioTN;
            }
            else // No
            {
                bucle4(true, tur, tur.nroHab, now, tarAct, dr);
            }
        }
        private void cargarDetallesTurno(int nroHab)
        {
            detallesHab = Habitacion.obtenerDetalles(nroHab);

            if (detallesHab.impHabitacion < 0)
                detallesHab.impHabitacion = 0;
            string detHabitacion = "HABITACIÓN  Desde: " + detallesHab.desde.ToString("HH:mm") +
                " Hasta: " + detallesHab.hasta.ToString("HH:mm");
            dgvDetallesTurno.Rows.Add("", detHabitacion, string.Format("{0:C}", (detallesHab.impHabitacion + detallesHab.impAdelantado + detallesHab.descuentoDinero - detallesHab.impArticulos + detallesHab.descArticulos + int.Parse(detallesHab.ptosCambiados))));

            if ((decimal)form.drDetalles[4] > 0)
                dgvDetallesTurno.Rows.Add("", "Adelanto Efectivo", "- " + (decimal.Parse(form.drDetalles[4].ToString()).ToString("C")));
            if ((decimal)form.drDetalles[5] > 0)
                dgvDetallesTurno.Rows.Add("", "Adelanto Tarjeta", "- " + (decimal.Parse(form.drDetalles[5].ToString()).ToString("C")));
            if (detallesHab.descuentoDinero + int.Parse(detallesHab.ptosCambiados) > 0)
                dgvDetallesTurno.Rows.Add("", "Descuento Habitación", "- " + (detallesHab.descuentoDinero + int.Parse(detallesHab.ptosCambiados)).ToString("C"));

            GenerarArchivoPantalla2();

            foreach (DataRow dr in Articulo.obtenerConsumos(nroHab).Rows)
            {
                dgvDetallesTurno.Rows.Add(dr[1].ToString(), dr[2].ToString(), String.Format("{0:C}", decimal.Parse(dr[3].ToString())));
                if (tools.obtenerParametroInt("mostrarVisualEXE") == 1)
                    CargarFilaDetalle(decimal.Parse(dr[3].ToString()).ToString(), dr[2].ToString(), int.Parse(dr[1].ToString()));
            }

            if (tools.obtenerParametroInt("mostrarVisualEXE") == 1)
                CerrarArchivoPantalla2();
            //            dgvDetallesTurno.Rows.Add("", "Total Articulos", detallesHab.impArticulos.ToString("C"));

            if(detallesHab.descArticulos>0)
                dgvDetallesTurno.Rows.Add("", "Descuento por Artículos", "- " + detallesHab.descArticulos.ToString("C"));
            if(form.descuento>0)
                dgvDetallesTurno.Rows.Add("", "Descuento Al Cierre", "- " + form.descuento.ToString("C"));

            lHoraEnt.Text = detallesHab.desde.ToString("HH:mm");
            lHoraSal.Text = DateTime.Now.ToString("HH:mm");
            if (dgvDetallesTurno.Rows.Count < 15)
                dgvDetallesTurno.ClearSelection();
        }