//step 5 private void Payment() { this.NextLabel = "Siguente"; //whether the user selected a photo or not //let¿s ask for payment info this.Description = "Información de pago"; this.ClearContentBox(); Label l1 = new Label("Inscribir en"); Label l2 = new Label("Miembro desde"); Label l3 = new Label("Día de pago"); ComboBox pack_combo; DateWidget dw_since = new DateWidget(); SpinButton payment_day_spin = new SpinButton(1, 31, 1); payment_day_spin.Value = dw_since.Date.Day; int found_index = -1; long found_id = -1; long id_0 = -1; PackModel pm = new PackModel(); IDataReader r = pm.GetAll(); string[] packs = new string[pm.Count()]; for(int i = 0; r.Read(); i++) { if(i == 0) id_0 = (long) r["Id"]; packs[i] = (string) r["Name"]; if(((long) r["Id"]) == this.TargetMember.Pack) { found_id = (long) r["Id"]; found_index = i; } } pack_combo = new ComboBox(packs); if(found_index == -1) { pack_combo.Active = 0; this.TargetMember.Pack = id_0; } else { pack_combo.Active = found_index; this.TargetMember.Pack = found_id; } dw_since.Date = this.TargetMember.JoinDate; payment_day_spin.Value = this.TargetMember.PaymentDay; //connect with targetmemeber dw_since.Changed += (s, a) => this.TargetMember.JoinDate = dw_since.Date; payment_day_spin.Changed += (s, a) => this.TargetMember.PaymentDay = payment_day_spin.ValueAsInt; pack_combo.Changed += (s, a) => { IDataReader r2 = pm.GetBy("Name", pack_combo.ActiveText); r2.Read(); this.TargetMember.Pack = (long) r2["Id"]; }; CheckButton month_check = new CheckButton("Cobrar primer mes"); CheckButton membership_check = new CheckButton("Cobrar inscripción"); month_check.Active = this.TargetMember.ChargeFirstMonth; membership_check.Active = this.TargetMember.ChargeMembership; month_check.Toggled += (object s, EventArgs args) => this.TargetMember.ChargeFirstMonth = ((CheckButton) s).Active; membership_check.Toggled += (object s, EventArgs args) => this.TargetMember.ChargeMembership = ((CheckButton) s).Active; this.PackWidgetPair(l1, pack_combo); this.PackWidgetPair(l2, dw_since.Box); this.PackWidgetPair(l3, payment_day_spin); this.PackWidgetSingle(new Label("\n")); this.PackWidgetSingle(month_check); this.PackWidgetSingle(membership_check); this.ContentVBox.ShowAll(); }
private void CustomBuild() { this.BirthdayWidget = new DateWidget(); this.SinceWidget = new DateWidget(); this.BirthdayBox.Add(this.BirthdayWidget.Box); this.SinceBox.Add(this.SinceWidget.Box); //configuring some ui elements /*this.HeightSpin.SetRange(1, 2.5); this.HeightSpin.SetIncrements(0.01, 0.01); this.WeightSpin.SetRange(40, 200); this.WeightSpin.SetIncrements(0.01, 0.01);*/ this.PhotoButton.FocusOnClick = false; this.GenderCombo.AppendText("Masculino"); this.GenderCombo.AppendText("Femenino"); PackModel pm = new PackModel(); IDataReader reader = pm.GetAll(); while(reader.Read()) this.PackCombo.AppendText((string) reader["Name"]); //columns for the nodeview this.MembersNodeView.AppendColumn("Id", new CellRendererText(), "text", 0); this.MembersNodeView.AppendColumn("Nombre", new CellRendererText(), "text", 1); }
//step 3 private void MemberInfo() { //if the member's inner client is null and the user has reached this //step, the user has chosen a client id instead of creating one... //and here we are verifying the info given before if(this.TargetMember.InnerClient == null) { ClientModel cm = new ClientModel(); bool error = false; string msg = ""; Client c = new Client(); c.Id = this.ClientId; if(!cm.ExistsById(c.Id)) { msg = "No se puede encontrar al número de cliente " + this.ClientId; error = true; } else if(cm.IsMember(c)) { msg = "El cliente elegido ya es un miembro del gimnasio"; error = true; } if(error) { GuiHelper.ShowError(this, msg); this.Step -= 1; return; } } //ok, let's continue if everything as expected: //if InnerClient == null, this.ClientId should hold //an integer pointing to an existing client :) if(!this.MemberInitialized) { this.MemberInitialized = true; this.TargetMember.Height = 1.0; this.TargetMember.Weight = 40.0; this.TargetMember.Gender = 'm'; this.TargetMember.BirthDate = DateTime.Today; Contact ctc = new Contact(); ctc.Name = ""; ctc.PhoneNumber = ""; this.TargetMember.InnerContact = ctc; this.TargetMember.PaymentDay = DateTime.Today.Day; this.TargetMember.JoinDate = DateTime.Today; this.TargetMember.Pack = 0; } this.ClearContentBox(); this.Description = "Información requerida del nuevo miembro"; Label l1 = new Label("Peso (Kg)"); Label l2 = new Label("Estatura (Mts)"); Label l3 = new Label("Sexo"); Label l4 = new Label("Nacimiento"); Label l5 = new Label("\nEn caso de accidente, contactar a la siguiente persona:\n"); Label l6 = new Label("Nombre"); Label l7 = new Label("Teléfono"); SpinButton weight_spin = new SpinButton(40, 200, 0.01); SpinButton height_spin = new SpinButton(1, 2.5, 0.01); ComboBox gender_combo = new ComboBox(new string[] {"Masculino", "Femenino"}); DateWidget dw = new DateWidget(); Entry contact_name_entry = new Entry(); Entry contact_phone_entry = new Entry(); weight_spin.Changed += (s, a) => { float weight; this.TargetMember.Weight = (float.TryParse(weight_spin.Text, out weight) ? weight : weight_spin.Value); }; height_spin.Changed += (s, a) => { float height; this.TargetMember.Height = (float.TryParse(height_spin.Text, out height) ? height : height_spin.Value); }; gender_combo.Changed += (s, a) => this.TargetMember.Gender = (gender_combo.Active == 0 ? 'm' : 'f'); contact_name_entry.Changed += (s, a) => this.TargetMember.InnerContact.Name = contact_name_entry.Text.Trim(); contact_phone_entry.Changed += (s, a) => this.TargetMember.InnerContact.PhoneNumber = contact_phone_entry.Text.Trim(); dw.Changed += (s, a) => this.TargetMember.BirthDate = dw.Date; this.PackWidgetPair(l1, weight_spin); this.PackWidgetPair(l2, height_spin); this.PackWidgetPair(l3, gender_combo); this.PackWidgetPair(l4, dw.Box); this.PackWidgetSingle(l5); this.PackWidgetPair(l6, contact_name_entry); this.PackWidgetPair(l7, contact_phone_entry); weight_spin.Value = this.TargetMember.Weight; height_spin.Value = this.TargetMember.Height; gender_combo.Active = (this.TargetMember.Gender == 'm' ? 0 : 1); dw.Date = this.TargetMember.BirthDate; contact_name_entry.Text = this.TargetMember.InnerContact.Name; contact_phone_entry.Text = this.TargetMember.InnerContact.PhoneNumber; this.ContentVBox.ShowAll(); }