private void ButtonExit_Click(object sender, EventArgs e) { string puertoHasta = lbResultado.Items[lbResultado.Items.Count - 1].ToString(); int longDesde = puertoHasta.LastIndexOf("HASTA: ") + 7; int longHasta = puertoHasta.Length - longDesde; List<Filtro> filtros = new List<Filtro>(); filtros.Add(FiltroFactory.Exacto("descripcion", puertoHasta.Substring(longDesde, longHasta))); Dictionary<string, List<object>> resul = conexion.ConsultaPlana(Tabla.Puerto, new List<string>(new string[] { "ID" }), filtros); int IdPuertoDest = Convert.ToInt32(resul["ID"][0]); Dictionary<string, object> data = new Dictionary<string, object>(); data["puerto_destino_id"] = IdPuertoDest; string puertoDesde = lbResultado.Items[0].ToString(); longDesde = 7; longHasta = puertoDesde.LastIndexOf(';') - longDesde; filtros[0] = FiltroFactory.Exacto("descripcion", puertoDesde.Substring(longDesde, longHasta)); resul = conexion.ConsultaPlana(Tabla.Puerto, new List<string>(new string[] { "ID" }), filtros); data["puerto_origen_id"] = resul["ID"][0]; Transaccion tr = conexion.IniciarTransaccion(); int PkRecorrido = tr.Insertar(Tabla.Recorrido, data); foreach (int cod in IDsInsert) tr.InsertarTablaIntermedia(Tabla.Tramo_X_Recorrido, "id_recorrido", "id_tramo", PkRecorrido, cod); tr.Commit(); DialogResult = DialogResult.OK; }
private void button1_Click(object sender, EventArgs e) { if (this.camposVacios()) { MessageBox.Show("Se han encontrado campos vacios. Por favor completelos e intentelo nuevamente", "Campos vacios", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { List <Filtro> filtros2 = new List <Filtro>(); filtros2.Add(FiltroFactory.Exacto("codigo", textBox1.Text)); filtros2.Add(FiltroFactory.Exacto("pagado", "0")); List <string> colum = new List <string>(); colum.Add("ID"); colum.Add("cliente_id"); colum.Add("fecha_de_reserva"); colum.Add("cabina_id"); colum.Add("precio"); Dictionary <string, List <object> > resulta3 = conexion.ConsultaPlana(Tabla.Reserva, colum, filtros2); if (resulta3["precio"].Count == 0) { MessageBox.Show("No se encontro reserva con ese código", "Error ID Reserva", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var fkPago = 1; if (cmbMetodoDePago.Text != "EFECTIVO") { List <Filtro> filtros = new List <Filtro>(); filtros.Add(FiltroFactory.Exacto("tipo", cmbMetodoDePago.Text)); filtros.Add(FiltroFactory.Exacto("numero_de_tarjeta", txtNumeroDeTarjerta.Text)); List <string> col = new List <string>(); col.Add("ID"); Dictionary <string, List <object> > resul = conexion.ConsultaPlana(Tabla.MedioDePago, col, filtros); if (resul["ID"].Count > 0) { fkPago = int.Parse(resul["ID"][0].ToString()); } else { Dictionary <string, object> campos = new Dictionary <string, object> { { "tipo", cmbMetodoDePago.Text }, { "numero_de_tarjeta", txtNumeroDeTarjerta.Text } }; fkPago = conexion.Insertar(Tabla.MedioDePago, campos); } } DateTime fecha = Convert.ToDateTime(resulta3["fecha_de_reserva"][0]); TimeSpan dif = ConfigurationHelper.FechaActual.Subtract(fecha); if (dif.Days > 3) { MessageBox.Show("Esa reserva se encuentra vencida", "Reserva vencida", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Dictionary <string, object> valores = new Dictionary <string, object>(); valores["cliente_id"] = resulta3["cliente_id"][0]; valores["fecha_de_compra"] = resulta3["fecha_de_reserva"][0]; valores["cabina_id"] = resulta3["cabina_id"][0]; valores["medio_de_pago_id"] = fkPago; valores["precio"] = resulta3["precio"][0]; if (MessageBox.Show("El precio total es de " + resulta3["precio"][0].ToString() + "\n¿Desea continuar?", "confirmar", MessageBoxButtons.YesNo) == DialogResult.Yes) { if (conexion.Insertar(Tabla.Pasaje, valores) != -1) { conexion.PagarReserva(int.Parse(textBox1.Text), Tabla.Reserva); MessageBox.Show("Se pago el pasaje exitosamente", "Pago exitoso", MessageBoxButtons.OK, MessageBoxIcon.Information); txtNumeroDeTarjerta.Text = string.Empty; cmbCantidadDeCuotas.Text = string.Empty; cmbMetodoDePago.Text = string.Empty; textBox1.Text = string.Empty; } else { MessageBox.Show("Hubo un error, intente de nuevo más tarde", "Error rancio", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("Se cancelo la operacion", "Operacion", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } }
private void BtnConfirmar_Click(object sender, EventArgs e) { String mensaje = ValidarCampos(); if (mensaje == "") { // Se obtienen los datos que se van a insertar Dictionary <string, object> datosMetodoDePago = ObtenerDatosMetodoDePago(); Dictionary <string, object> datosViaje = ObtenerDatosViaje(); string tipo = ""; // Se Inserta el Cliente en caso de que no exista if (ClienteComprador.Id == -1) { Dictionary <string, object> datos = new Dictionary <string, object>(); datos["fecha_nacimiento"] = ClienteComprador.FechaDeNacimiento; datos["telefono"] = ClienteComprador.Telefono; datos["nombre"] = ClienteComprador.Nombre; datos["apellido"] = ClienteComprador.Apellido; datos["DNI"] = ClienteComprador.Dni; datos["direccion"] = ClienteComprador.Direccion; datos["mail"] = ClienteComprador.Mail; ClienteComprador.Id = conexion.Insertar(Tabla.Cliente, datos); } int idMetodoDePago = 0; List <Filtro> filtros = new List <Filtro>(); if (TipoDeOperacion == "COMPRA" && MedioDePago.Tipo != "EFECTIVO") { filtros.Add(FiltroFactory.Exacto("tipo", MedioDePago.Tipo)); filtros.Add(FiltroFactory.Exacto("numero_de_tarjeta", MedioDePago.NumeroTarjeta.ToString())); if (!(conexion.ExisteRegistro(Tabla.MedioDePago, new List <string>(new string[] { "ID" }), filtros))) { // Se inserta metodo de pago idMetodoDePago = conexion.Insertar(Tabla.MedioDePago, datosMetodoDePago); } else { Dictionary <string, List <object> > tipoCabina = conexion.ConsultaPlana(Tabla.MedioDePago, new List <string>(new string[] { "ID" }), filtros); idMetodoDePago = Convert.ToInt32(tipoCabina["ID"].First()); } } if (TipoDeOperacion == "COMPRA") { idMetodoDePago = 1; } // Se suma al viaje elegido por el usuario la cantidad de pasajes vendidos conexion.Modificar(ViajeElegido.Id, Tabla.Viaje, datosViaje); // Se marcan a las cabinas como ocupada y se insertan las compras/reservas for (int i = 0; i < CantidadDePasajes; i++) { int idCabina = ObtenerIdCabina(); int nroOperacion; Dictionary <string, object> datosOperacion = ObtenerDatosOperacion(idCabina); datosOperacion["cliente_id"] = ClienteComprador.Id; if (TipoDeOperacion == "COMPRA") { // Se inserta una compra nroOperacion = NumerosOperacion[i]; datosOperacion["medio_de_pago_id"] = idMetodoDePago; datosOperacion["fecha_de_compra"] = FrbaCrucero.ConfigurationHelper.FechaActual; datosOperacion["codigo"] = nroOperacion; conexion.Insertar(Tabla.Pasaje, datosOperacion); tipo = "compra"; } else { // Se inserta una reserva nroOperacion = NumerosOperacion[0]; datosOperacion["fecha_de_reserva"] = FrbaCrucero.ConfigurationHelper.FechaActual; datosOperacion["codigo"] = nroOperacion; conexion.Insertar(Tabla.Reserva, datosOperacion); tipo = "reserva"; } // Se marca a la cabina como ocupada Dictionary <string, object> datosCabina = ObtenerDatosCabina(); conexion.Modificar(idCabina, Tabla.Cabina, datosCabina); } MessageBox.Show("Se ha hecho la " + tipo + " correctamente!\n" + "Gracias por su " + tipo + "\n", "Confirmación"); if (tipo == "reserva") { MessageBox.Show("Su codigo de reserva es " + NumerosOperacion[0]); } DialogResult = DialogResult.OK; } else { MessageBox.Show(mensaje, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private String ValidarEsteDisponibleCrucero(string resultado) { if (resultado == "") { // EL CRUCERO ESTA DE BAJA DEFINITIVA List <Filtro> filtros = new List <Filtro>(); filtros.Add(FiltroFactory.Exacto("ID", txtCrucero.Text.ToString())); List <string> columnasFechaBajaDefinitiva = new List <string>(); columnasFechaBajaDefinitiva.Add("fecha_baja_definitiva"); Dictionary <string, List <object> > fechaBajaDefinitiva = conexion.ConsultaPlana(Tabla.Crucero, columnasFechaBajaDefinitiva, filtros); if (!Convert.IsDBNull(fechaBajaDefinitiva["fecha_baja_definitiva"].First())) { if (Convert.ToDateTime(fechaBajaDefinitiva["fecha_baja_definitiva"].First()) < ViajeAGenerar.Fecha_Fin_Estimada) { return("El crucero está de baja de forma definitiva en el rango de fechas que eligió.\n"); } } // EL CRUCERO NO EMPEZO A INICIAR SU SERVICIO List <string> columnasFechaDeInicioServicio = new List <string>(); columnasFechaDeInicioServicio.Add("fecha_de_alta"); Dictionary <string, List <object> > fechaDeInicioServicio = conexion.ConsultaPlana(Tabla.Crucero, columnasFechaDeInicioServicio, filtros); if (!Convert.IsDBNull(fechaDeInicioServicio["fecha_de_alta"].First())) { if (Convert.ToDateTime(fechaDeInicioServicio["fecha_de_alta"].First()) > ViajeAGenerar.FechaInicio) { return("El crucero no empezó a iniciar su servicio en rango de fechas que eligió.\n"); } } // EL CRUCERO ESTA DE BAJA EN RANGO DE FECHAS List <Filtro> filtrosFechasBajas = new List <Filtro>(); filtrosFechasBajas.Add(FiltroFactory.Exacto("id_Crucero", txtCrucero.Text.ToString())); List <string> campos = new List <string>(); campos.Add("fecha_reinicio_servicio"); campos.Add("fecha_fuera_de_servicio"); Dictionary <string, List <object> > fechasFueraServicio = conexion.ConsultaPlana(Tabla.Fuera_Servicio, campos, filtrosFechasBajas); if (fechasFueraServicio[campos[0]].Count > 0 || fechasFueraServicio[campos[1]].Count > 0) { if (!(Convert.IsDBNull(fechasFueraServicio["fecha_reinicio_servicio"].First()) || Convert.IsDBNull(fechasFueraServicio["fecha_fuera_de_servicio"].First()))) { for (int i = 0; i < fechasFueraServicio["fecha_reinicio_servicio"].Count(); i++) { if (!( (Convert.ToDateTime(fechasFueraServicio["fecha_reinicio_servicio"][i]) <= ViajeAGenerar.FechaInicio && Convert.ToDateTime(fechasFueraServicio["fecha_fuera_de_servicio"][i]) < ViajeAGenerar.FechaInicio) || (Convert.ToDateTime(fechasFueraServicio["fecha_fuera_de_servicio"][i]) > ViajeAGenerar.Fecha_Fin_Estimada && Convert.ToDateTime(fechasFueraServicio["fecha_reinicio_servicio"][i]) > ViajeAGenerar.Fecha_Fin_Estimada))) { return("El crucero está de baja en el rango de fechas que eligió.\n"); } } } } // ESTA EL CRUCERO OCUPADO EN OTRO VIAJE EN LAS FECHAS ELEGIDAS List <Filtro> filtrosCruceroEnViaje = new List <Filtro>(); filtrosCruceroEnViaje.Add(FiltroFactory.Exacto("crucero_id", txtCrucero.Text.ToString())); List <string> camposViajes = new List <string>(); camposViajes.Add("id_viaje"); camposViajes.Add("fecha_inicio"); camposViajes.Add("fecha_fin_estimada"); Dictionary <string, List <object> > viajesConCrucero = conexion.ConsultaPlana(Tabla.ViajesConCrucero, camposViajes, filtrosCruceroEnViaje); int cantidadDeViajesConCrucero = viajesConCrucero["id_viaje"].Count(); for (int i = 0; i < cantidadDeViajesConCrucero; i++) { if (!((Convert.ToDateTime(viajesConCrucero["fecha_inicio"][i]) <= ViajeAGenerar.FechaInicio && Convert.ToDateTime(viajesConCrucero["fecha_fin_estimada"][i]) <= ViajeAGenerar.FechaInicio) || (Convert.ToDateTime(viajesConCrucero["fecha_inicio"][i]) >= ViajeAGenerar.Fecha_Fin_Estimada && Convert.ToDateTime(viajesConCrucero["fecha_fin_estimada"][i]) >= ViajeAGenerar.Fecha_Fin_Estimada))) { return("El crucero está ocupado en otro viaje en el rango de fechas que eligió.\n"); } } // EL CRUCERO ESTA DISPONIBLE return(""); } return(""); }
private void button1_Click(object sender, EventArgs e) { if (this.camposVacios()) { MessageBox.Show("Se han encontrado campos vacios. Por favor completelos e intentelo nuevamente", "Campos vacios", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (this.identRepetido()) { MessageBox.Show("Ya existe un crucero con ese identificador", "Identificador existente", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { // Extraigo fabricante Filtro filtroNombre = FiltroFactory.Exacto("nombre", comboBox2.Text); var returnFabricante = conexion.ConsultaPlana(Tabla.Fabricante, new List <string> { "id" }, new List <Filtro> { filtroNombre }); var id = returnFabricante["id"][0]; Transaccion tr = conexion.IniciarTransaccion(); Dictionary <string, object> crucero = new Dictionary <string, object>(); crucero.Add("modelo", textBox1.Text); crucero.Add("fabricante_id", id); crucero.Add("identificador", textBox2.Text); crucero.Add("baja_fuera_de_servicio", false); crucero.Add("baja_vida_util", false); crucero.Add("fecha_de_alta", ConfigurationHelper.FechaActual); int pkCrucero = tr.Insertar(Tabla.Crucero, crucero); Dictionary <string, object> piso = new Dictionary <string, object>(); for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) { var row = dataGridView1.Rows[i]; piso["Nro_piso"] = row.Cells["nroPiso"].Value; piso["id_crucero"] = pkCrucero; piso["id_tipo"] = row.Cells["tipoPiso"].Value.ToString(); var tipo = row.Cells["tipoPiso"].Value.ToString(); Filtro filtroTipo = FiltroFactory.Exacto("tipo", tipo); var returnAsqueroso = conexion.ConsultaPlana(Tabla.Tipo, new List <string>() { "ID" }, new List <Filtro> { filtroTipo }); piso["id_tipo"] = returnAsqueroso["ID"][0]; piso["cant_cabina"] = row.Cells["cantCabinasPiso"].Value; tr.Insertar(Tabla.Piso, piso); } tr.Commit(); MessageBox.Show("Crucero dado de alta exitosamente. Felicidades :D", "Crucero creado", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = DialogResult.OK; } }