protected void GuardarButton_Click(object sender, EventArgs e) { //declaraciones string nombre_tratamiento; string descripcion_tratamiento; string sesiones; int costo_tratamiento; DateTime fecha; //levantar contenidos del form a variables nombre_tratamiento = NombreTratamientoTextBox.Text; descripcion_tratamiento = DescripcionTratamientoTextBox.Text; costo_tratamiento = Convert.ToInt32(Conversion.GetDecimal(CostoTratamientoTextBox.Text)); sesiones = TratamientosHiddenField.Value; fecha = DateTime.Now; //levantar fecha en que se creo el tratamiento if (Session["TratamientoSession"] == null) { // crear objeto tratamiento y rellenarlo con los datos del form Struct_Treatment tratamiento = new Struct_Treatment(Conversion.ObtenerLocal(UserId), nombre_tratamiento, costo_tratamiento, descripcion_tratamiento, fecha, fecha, true); tratamiento.Guardar(); //llamar a la funcion de guardado del objeto //Guardado de sesiones// sesiones = TratamientosHiddenField.Value; string[] SesionesAux, SesionesParametrosAux; SesionesAux = sesiones.Split('*'); foreach (string i in SesionesAux) { if (i != "") { SesionesParametrosAux = i.Split(','); Struct_Sesiones SS = new Struct_Sesiones(tratamiento.Id, SesionesParametrosAux[0], int.Parse(SesionesParametrosAux[2]), int.Parse(SesionesParametrosAux[3]), SesionesParametrosAux[1]); SS.Guardar(); } } Response.Redirect(DotNetNuke.Common.Globals.NavigateURL()); } else { Struct_Treatment ET = Session["TratamientoSession"] as Struct_Treatment; ET.Nombre = nombre_tratamiento; ET.Descripcion = descripcion_tratamiento; ET.Precio = costo_tratamiento; ET.Actualizar(); Session.Remove("TratamientoSession"); Response.Redirect(DotNetNuke.Common.Globals.NavigateURL()); } }
protected void guardar_Click1(object sender, EventArgs e) { Struct_Cliente clienteAux = Session["cliente"] as Struct_Cliente; Struct_Treatment tratamientoAux = Session["tratamiento"] as Struct_Treatment; Guid IdUnico = Guid.NewGuid(); bool turnoOcupado = false; bool errorSaving = false; string tipoTurno = "none"; // Formato del hiddenfield: // Elementos de turno separados por comas y asteriscos: // // "idTurno","idSesion","dia","hora","box"+"*" // // Si IdTurno es 0, se crea un turno nuevo, // si no es 0, se asigna el turno no asignado. // String[] infoTurnos = turnosElegidos.Value.Split('*'); String[] elementoTurno; int IdTurno; int IdSesion; DateTime FechayHora = new DateTime(); Struct_Box Box = new Struct_Box(); Struct_Turno TurnoAux = new Struct_Turno(); Struct_Sesiones SesionAux = new Struct_Sesiones(); TurnoAux.CLIENTE = clienteAux; Log.ADD(turnosElegidos.Value, this); // Se recorre el hiddenfield de turnos a guardar o asignar for (int i = 0; i < infoTurnos.Length - 1; i++) { // Guardado de valores en variables auxilares elementoTurno = infoTurnos[i].Split(','); IdTurno = int.Parse(elementoTurno[0]); IdSesion = int.Parse(elementoTurno[1]); FechayHora = DateTime.Parse(elementoTurno[2] + ' ' + elementoTurno[3]); Box = Struct_Box.GetBoxById(int.Parse(elementoTurno[4])); // Si el IdTurno es distinto de 0, se trata de un turno existente que no fue asignado: if (IdTurno != 0) { TurnoAux = Struct_Turno.ObtenerTurnoById(IdTurno); TurnoAux.DiaReservacion = FechayHora; TurnoAux.BOX = Box; TurnoAux.Estado = "Ingresado"; tipoTurno = "NoAsignado"; } // Si el IdTurno es igual a 0, se trata de un turno nuevo de un tratamiento nuevo: else { SesionAux = Struct_Sesiones.GetSesionById(IdSesion); TurnoAux = new Struct_Turno(FechayHora, clienteAux, Conversion.ObtenerLocal(UserId), SesionAux, Box, IdUnico.ToString(), "Ingresado"); tipoTurno = "Nuevo"; } // Chequea si el turno ya existe List <Struct_Turno> turnosDeHoy = Struct_Turno.ObtenerTurnosDia(TurnoAux.DiaReservacion, Conversion.ObtenerLocal(UserId), Box.Id); if (turnosDeHoy != null) { foreach (Struct_Turno turno in turnosDeHoy) { if (turno.DiaReservacion == TurnoAux.DiaReservacion) { turnoOcupado = true; } } break; } // Verificacion de turno ya ocupado en ese dia y hora if (turnoOcupado) { string diaConflicto = TurnoAux.DiaReservacion.ToShortDateString(); string horaConflicto = TurnoAux.DiaReservacion.ToShortTimeString(); string boxConflicto = Box.Detalle; errorSaving = true; Response.Redirect(DotNetNuke.Common.Globals.NavigateURL() + "?addTurnoStatus=conflictingDate&fecha=" + diaConflicto + "&hora=" + horaConflicto + "&box=" + boxConflicto); } // Si se trata de un turno no asignado, se actualiza el turno, de lo contrario se guarda el turno nuevo if (string.Equals(tipoTurno, "NoAsignado")) { TurnoAux.ActualizarTurno(); } if (string.Equals(tipoTurno, "Nuevo")) { TurnoAux.GuardarTurno(); } } // Se recorren las sesiones del tratamiento para ver si quedo alguna sin asignar if (tratamientoAux != null) { // Obtener turnos ya existentes relacionados al tratamiento nuevo List <Struct_Turno> asignados = Struct_Turno.ObtenerTurnosByIdUnico(IdUnico.ToString()); foreach (Struct_Sesiones sesion in tratamientoAux.ListaSesiones) { bool itExists = false; // Chequear si la sesion ya tiene un turno en la agenda (asignado o no asignado, no importa) if (asignados != null) { foreach (Struct_Turno turno in asignados) { if (turno.IdSesion == sesion.Id) { itExists = true; break; } } } // Si la sesion no existe en "asignados", crear un turno nuevo y ponerlo como no asignado if (!itExists) { TurnoAux.DiaReservacion = new DateTime(1753, 1, 1); TurnoAux.IdSesion = sesion.Id; TurnoAux.SESION = sesion; Box = new Struct_Box(); TurnoAux.Estado = "NoAsignado"; TurnoAux.GuardarTurno(); } } } // Si no hay error en el guardado, se limpian todas las variables de sesion y los label if (!errorSaving) { Session.Remove("cliente"); Session.Remove("tratamiento"); labeldni.Text = ""; labelrs.Text = ""; labeltratamiento.Text = ""; labelnumsesiones.Text = ""; Response.Redirect(DotNetNuke.Common.Globals.NavigateURL() + "?addTurnoStatus=success"); } }