private void SaveNewAvtal() { Avtalsmodel avtal = GetFormInputs(); var leveranser = GetLeveransDates(); int avtalId = -1; string connstr = ConfigurationManager.ConnectionStrings["postgres connection"].ConnectionString; using (var conn = new NpgsqlConnection(connstr)) { conn.Open(); var query = "insert into sbk_avtal.avtal(diarienummer, startdate, enddate, status, motpartstyp, sbkavtalsid, orgnummer, enligt_avtal, internt_alias, kommentar, ansvarig_avd, ansvarig_enhet, avtalstecknare, avtalskontakt, upphandlat_av, ansvarig_sbk, datakontakt, scan_url, konto, kstl, vht, mtp, aktivitet, objekt, avtalstyp) values(@diarienummer, @startdate, @enddate, @status, @motpartstyp, @sbkavtalsid, @orgnummer, @enligt_avtal, @internt_alias, @kommentar, @ansvarig_avd, @ansvarig_enhet, @avtalstecknare, @avtalskontakt, @upphandlat_av, @ansvarig_sbk, @datakontakt, @scan_url, @konto, @kstl, @vht, @mtp, @aktivitet, @objekt, @avtalstyp) returning id;"; using (var cmd = new NpgsqlCommand(query, conn)) { cmd.Parameters.AddWithValue("diarienummer", avtal.diarienummer); cmd.Parameters.AddWithValue("startdate", avtal.startdate); cmd.Parameters.AddWithValue("enddate", avtal.enddate); cmd.Parameters.AddWithValue("status", avtal.status); cmd.Parameters.AddWithValue("motpartstyp", avtal.motpartstyp); cmd.Parameters.AddWithValue("sbkavtalsid", avtal.sbkid); cmd.Parameters.AddWithValue("orgnummer", avtal.orgnummer); cmd.Parameters.AddWithValue("enligt_avtal", avtal.enligtAvtal); cmd.Parameters.AddWithValue("internt_alias", avtal.interntAlias); cmd.Parameters.AddWithValue("kommentar", avtal.kommentar); cmd.Parameters.AddWithValue("ansvarig_avd", avtal.ansvarig_avdelning); cmd.Parameters.AddWithValue("ansvarig_enhet", avtal.ansvarig_enhet); cmd.Parameters.AddWithValue("avtalstecknare", (Object)avtal.avtalstecknare ?? DBNull.Value); cmd.Parameters.AddWithValue("avtalskontakt", (Object)avtal.avtalskontakt ?? DBNull.Value); cmd.Parameters.AddWithValue("upphandlat_av", (Object)avtal.upphandlat_av ?? DBNull.Value); cmd.Parameters.AddWithValue("ansvarig_sbk", (Object)avtal.ansvarig_sbk ?? DBNull.Value); cmd.Parameters.AddWithValue("datakontakt", (Object)avtal.datakontakt ?? DBNull.Value); cmd.Parameters.AddWithValue("scan_url", avtal.scan_url); cmd.Parameters.AddWithValue("konto", avtal.konto); cmd.Parameters.AddWithValue("kstl", avtal.kstl); cmd.Parameters.AddWithValue("vht", avtal.vht); cmd.Parameters.AddWithValue("mtp", avtal.mtp); cmd.Parameters.AddWithValue("aktivitet", avtal.aktivitet); cmd.Parameters.AddWithValue("objekt", avtal.objekt); cmd.Parameters.AddWithValue("avtalstyp", avtal.avtalstyp); //cmd.ExecuteNonQuery(); var reader = cmd.ExecuteReader(); while (reader.Read()) { avtalId = reader.GetInt32(0); } } } // sparar id i sessionen Session.Add("avtalsid", avtalId); using (var conn = new NpgsqlConnection(connstr)) { conn.Open(); // lägger till i innehållmaptable foreach (var innehallId in GetCheckedInnehall()) { var innehallsquery = "insert into sbk_avtal.map_avtal_innehall(avtal_id, avtalsinnehall_id) values(@avtal_id, @avtalsinnehall_id);"; using (var cmd = new NpgsqlCommand(innehallsquery, conn)) { cmd.Parameters.AddWithValue("avtal_id", avtalId); cmd.Parameters.AddWithValue("avtalsinnehall_id", innehallId); cmd.ExecuteNonQuery(); } } // lägg till leveranser foreach (var date in leveranser) { var insertlevquery = "insert into sbk_avtal.leveranser(datum, avtal_id) values(@datum, @avtal_id);"; using (var cmd = new NpgsqlCommand(insertlevquery, conn)) { cmd.Parameters.AddWithValue("datum", date); cmd.Parameters.AddWithValue("avtal_id", avtalId); cmd.ExecuteNonQuery(); } } } }
private Avtalsmodel GetFormInputs() { Avtalsmodel avtal = new Avtalsmodel { diarienummer = diarietb.Text, startdate = DateTime.Parse(startdatetb.Text), enddate = DateTime.Parse(enddate.Text), status = statusdd.SelectedValue, motpartstyp = motpartsdd.SelectedValue, sbkid = sbkidtb.Text != "" ? int.Parse(sbkidtb.Text) : -1, orgnummer = orgnrtb.Text, enligtAvtal = enlavttb.Text, interntAlias = intidtb.Text, kommentar = kommentartb.Text, scan_url = pathtoavtaltb.Text, konto = kontotb.Text, kstl = kstltb.Text, vht = vhttb.Text, mtp = mtptb.Text, aktivitet = aktivitettb.Text, objekt = objekttb.Text, avtalstyp = avtalstyptb.SelectedValue, }; List <Person> personer = (List <Person>)Session["persons"]; try { avtal.avtalstecknare = personer.Where(x => avtalstecknaredd.SelectedIndex == x.dropdownindex).FirstOrDefault().id; } catch (Exception) { avtal.avtalstecknare = null; } try { avtal.avtalskontakt = personer.Where(x => kontaktdd.SelectedIndex == x.dropdownindex).FirstOrDefault().id; } catch (Exception) { avtal.avtalskontakt = null; } try { avtal.upphandlat_av = personer.Where(x => upphandlatdd.SelectedIndex == x.dropdownindex).FirstOrDefault().id; } catch (Exception) { avtal.upphandlat_av = null; } try { avtal.ansvarig_sbk = personer.Where(x => ansvarig_sbkdd.SelectedIndex == x.dropdownindex).FirstOrDefault().id; } catch (Exception) { avtal.ansvarig_sbk = null; } try { avtal.datakontakt = personer.Where(x => datakontaktdd.SelectedIndex == x.dropdownindex).FirstOrDefault().id; } catch (Exception) { avtal.datakontakt = null; } var avdelningslist = (List <DBDropdownContent>)Session["avdelningslist"]; try { avtal.ansvarig_avdelning = avdelningslist.Where(x => ansvarig_avddd.SelectedIndex == x.ListIndex).FirstOrDefault().id; } catch (Exception) { avtal.ansvarig_avdelning = null; } var enhetslist = (List <DBDropdownContent>)Session["enhetslist"]; try { avtal.ansvarig_enhet = enhetslist.Where(x => ansvarig_enhetdd.SelectedIndex == x.ListIndex).FirstOrDefault().id; } catch (Exception) { avtal.ansvarig_enhet = null; } return(avtal); }
protected void Page_Load(object sender, EventArgs e) { if (Page.IsPostBack) { return; } var test = new Avtalsmodel(); //var id = Request.Params["id"]; //idlabel.Text = id; //diarietb.Text = "endast läsning"; //statusdd.SelectedIndex = 1; var avtal = new Avtalsmodel(); var persons = new List <Person>(); var innehallslist = new List <DBDropdownContent>(); var leveranslist = new List <DateTime>(); var avdelningslist = new List <DBDropdownContent>(); var enhetslist = new List <DBDropdownContent>(); // ta fram personer till rullister string connstr = ConfigurationManager.ConnectionStrings["postgres connection"].ConnectionString; using (var conn = new NpgsqlConnection(connstr)) { conn.Open(); var personquery = "select id, first_name, last_name from sbk_avtal.person order by last_name asc;"; using (var cmd = new NpgsqlCommand(personquery, conn)) { using (var reader = cmd.ExecuteReader()) { persons = Avtalsfactory.GetNamesAndId(reader); } } // fyll lista med avtalsinnehåll using (var cmd = new NpgsqlCommand("select id, beskrivning from sbk_avtal.avtalsinnehall;", conn)) { using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { innehallslist.Add(new DBDropdownContent { id = reader.GetInt32(0), beskrivning = reader.GetString(1) }); } } } // lista med avdelningar var avdelningsquery = "select id, namn from sbk_avtal.ansvarig_avd"; using (var cmd = new NpgsqlCommand(avdelningsquery, conn)) { using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { avdelningslist.Add(new DBDropdownContent { id = reader.GetInt32(0), beskrivning = reader.GetString(1) }); } } } // lista med enheter var enhetsquery = "select id, namn from sbk_avtal.ansvarig_enhet"; using (var cmd = new NpgsqlCommand(enhetsquery, conn)) { using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { enhetslist.Add(new DBDropdownContent { id = reader.GetInt32(0), beskrivning = reader.GetString(1) }); } } } } // sparar i sessionen Session.Add("persons", persons); Session.Add("innehallslist", innehallslist); Session.Add("avdelningslist", avdelningslist); Session.Add("enhetslist", enhetslist); for (int i = 0; i < persons.Count; i++) { var person = persons[i]; person.dropdownindex = i; avtalstecknaredd.Items.Add(string.Format("{0} {1}", person.FirstName, person.LastName)); kontaktdd.Items.Add(string.Format("{0} {1}", person.FirstName, person.LastName)); upphandlatdd.Items.Add(string.Format("{0} {1}", person.FirstName, person.LastName)); ansvarig_sbkdd.Items.Add(string.Format("{0} {1}", person.FirstName, person.LastName)); datakontaktdd.Items.Add(string.Format("{0} {1}", person.FirstName, person.LastName)); } // lägger till val för ny person avtalstecknaredd.Items.Add("+ Ny person"); // ("+ Ny avtalstecknare"); kontaktdd.Items.Add("+ Ny person"); upphandlatdd.Items.Add("+ Ny person"); ansvarig_sbkdd.Items.Add("+ Ny person"); datakontaktdd.Items.Add("+ Ny person"); // lägger till tom rad avtalstecknaredd.Items.Add(""); kontaktdd.Items.Add(""); upphandlatdd.Items.Add(""); ansvarig_sbkdd.Items.Add(""); datakontaktdd.Items.Add(""); // avtalsinnehåll for (int i = 0; i < innehallslist.Count; i++) { DBDropdownContent inn = innehallslist[i]; innehallcbl.Items.Add(new ListItem(inn.beskrivning)); inn.ListIndex = i; } // lägger till i ansvarig_avd dropdown, först ett tomt val och sedan listan ansvarig_avddd.Items.Add(new ListItem("")); for (int i = 0; i < avdelningslist.Count; i++) { var avd = avdelningslist[i]; avd.ListIndex = i + 1; ansvarig_avddd.Items.Add(new ListItem(avd.beskrivning)); } // lägger till i ansvarig_enhet, först ett tomt val och sedan listan ansvarig_enhetdd.Items.Add(new ListItem("")); //foreach (var enhet in enhetslist) //{ // ansvarig_enhetdd.Items.Add(new ListItem(enhet.beskrivning)); //} for (int i = 0; i < enhetslist.Count; i++) { var enhet = enhetslist[i]; enhet.ListIndex = i + 1; ansvarig_enhetdd.Items.Add(new ListItem(enhet.beskrivning)); } if (Request.Params["nytt_avtal".ToLower()] == "true") { // debugl.Text = "nytt avtal"; //submitbtn.Text = "Lägg till nytt avtal"; SetSubmitButtonAppearance(SubmitButtonState.SparaNytt); // väljer tomt innehåll i dropdowns avtalstecknaredd.Items.FindByText("").Selected = true; kontaktdd.Items.FindByText("").Selected = true; upphandlatdd.Items.FindByText("").Selected = true; ansvarig_sbkdd.Items.FindByText("").Selected = true; datakontaktdd.Items.FindByText("").Selected = true; ansvarig_avddd.Items.FindByText("").Selected = true; ansvarig_enhetdd.Items.FindByText("").Selected = true; return; } else { //submitbtn.Text = "Uppdatera avtal"; SetSubmitButtonAppearance(SubmitButtonState.Uppdatera); var dbid = Request.Params["id"]; // string connstr = ConfigurationManager.ConnectionStrings["postgres connection"].ConnectionString; using (var conn = new NpgsqlConnection(connstr)) { conn.Open(); // avtal var sqlquery = "select id, diarienummer, startdate, enddate, status, motpartstyp, SBKavtalsid, scan_url, orgnummer, enligt_avtal, internt_alias, kommentar, avtalstecknare, avtalskontakt, ansvarig_sbk, ansvarig_avd, ansvarig_enhet, upphandlat_av, datakontakt, konto, kstl, vht, mtp, aktivitet, objekt, avtalstyp from sbk_avtal.avtal where id = @p1;"; using (var cmd = new NpgsqlCommand(sqlquery, conn)) { // cmd.Connection = conn; // cmd.CommandText = "select id, diarienummer, startdate, enddate, status, motpartstyp, SBKavtalsid, scan_url, orgnummer, enligt_avtal, internt_alias, kommentar from sbkavtal.avtal"; cmd.Parameters.AddWithValue("p1", dbid); using (var reader = cmd.ExecuteReader()) { avtal = Avtalsfactory.ParseAvtal(reader).First(); } } using (var cmd = new NpgsqlCommand("select avtalsinnehall_id from sbk_avtal.map_avtal_innehall where avtal_id = @avtal_id;", conn)) { cmd.Parameters.AddWithValue("avtal_id", dbid); using (var reader = cmd.ExecuteReader()) { // kryssa för avtalsinnehåll while (reader.Read()) { var innehalls_id = reader.GetInt32(0); var idx = innehallslist.Where(x => x.id == innehalls_id).First().ListIndex; innehallcbl.Items[idx].Selected = true; } } } // leveranser var levquery = "select datum from sbk_avtal.leveranser where avtal_id=@avtal_id order by datum;"; using (var cmd = new NpgsqlCommand(levquery, conn)) { cmd.Parameters.AddWithValue("avtal_id", dbid); using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { leveranslist.Add(reader.GetDateTime(0)); } } } } } // avtalstyp avtalstyptb.ClearSelection(); avtalstyptb.Items.FindByValue(avtal.avtalstyp).Selected = true; diarietb.Text = avtal.diarienummer; startdatetb.Text = string.Format("{0:d}", avtal.startdate); enddate.Text = string.Format("{0:d}", avtal.enddate); statusdd.Items.FindByValue(avtal.status).Selected = true; motpartsdd.Items.FindByValue(avtal.motpartstyp).Selected = true; sbkidtb.Text = avtal.sbkid.ToString(); orgnrtb.Text = avtal.orgnummer; enlavttb.Text = avtal.enligtAvtal; intidtb.Text = avtal.interntAlias; kommentartb.Text = avtal.kommentar; //ansvavdtb.Text = avtal.ansvarig_avdelning; //ansvenhtb.Text = avtal.ansvarig_enhet; if (avtal.ansvarig_avdelning != null) { ansvarig_avddd.Items.FindByValue(avdelningslist.Where(x => x.id == avtal.ansvarig_avdelning).First().beskrivning).Selected = true; } if (avtal.ansvarig_enhet != null) { ansvarig_enhetdd.Items.FindByValue(enhetslist.Where(x => x.id == avtal.ansvarig_enhet).First().beskrivning).Selected = true; } pathtoavtaltb.Text = avtal.scan_url; // ekonomi kontotb.Text = avtal.konto; kstltb.Text = avtal.kstl; vhttb.Text = avtal.vht; mtptb.Text = avtal.mtp; aktivitettb.Text = avtal.aktivitet; objekttb.Text = avtal.objekt; // leveranser var levsb = new StringBuilder(); foreach (var date in leveranslist) { levsb.AppendLine(date.ToShortDateString()); //string.Format("{0:d}", date.ToString())); } manuellevtb.Text = levsb.ToString(); //dropdowns Person avtalstecknare = persons.Where(x => x.id == avtal.avtalstecknare).FirstOrDefault(); if (avtalstecknare != null) { avtalstecknaredd.SelectedIndex = (int)avtalstecknare.dropdownindex; } else { avtalstecknaredd.Items.FindByValue("").Selected = true; } Person avtalskontakt = persons.Where(x => x.id == avtal.avtalskontakt).FirstOrDefault(); if (avtalskontakt != null) { kontaktdd.SelectedIndex = (int)avtalskontakt.dropdownindex; } else { kontaktdd.Items.FindByValue("").Selected = true; } Person ansvarig_sbk = persons.Where(x => x.id == avtal.ansvarig_sbk).FirstOrDefault(); if (ansvarig_sbk != null) { ansvarig_sbkdd.SelectedIndex = (int)ansvarig_sbk.dropdownindex; } else { ansvarig_sbkdd.Items.FindByValue("").Selected = true; } Person upphandlat_av = persons.Where(x => x.id == avtal.upphandlat_av).FirstOrDefault(); if (upphandlat_av != null) { upphandlatdd.SelectedIndex = (int)upphandlat_av.dropdownindex; } else { upphandlatdd.Items.FindByValue("").Selected = true; } Person datakontakt = persons.Where(x => x.id == avtal.datakontakt).FirstOrDefault(); if (datakontakt != null) { datakontaktdd.SelectedIndex = (int)datakontakt.dropdownindex; } else { datakontaktdd.Items.FindByValue("").Selected = true; } ShowHideControls(); }