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); } }
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); }
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); } }
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); } }
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); } }
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(); }