Пример #1
0
    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();
    }
Пример #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        var lst = new List <Avtalsmodel>();

        string connstr = ConfigurationManager.ConnectionStrings["postgres connection"].ConnectionString;

        using (var conn = new NpgsqlConnection(connstr))
        {
            conn.Open();
            using (var cmd = new NpgsqlCommand())
            {
                cmd.Connection  = conn;
                cmd.CommandText = "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 from sbk_avtal.avtal;";
                //cmd.CommandText = "select @fields from sbkavtal.avtal";
                //cmd.Parameters.AddWithValue("fields", Avtalsfactory.Fields);

                using (var reader = cmd.ExecuteReader())
                {
                    lst = Avtalsfactory.ParseAvtal(reader);
                }
            }
        }

        Session.Add("avtalslista", lst);



        //var row = new TableRow();
        //var cell1 = new TableCell();
        //cell1.Text = "en cell";
        //var cell2 = new TableCell();
        //cell2.Text = "en till";
        //row.Cells.Add(cell1);
        //row.Cells.Add(cell2);
        //avtalstabell.Rows.Add(row);

        foreach (var item in lst)
        {
            var row = new TableRow();

            // lite fix...
            string alink;
            if (item.scan_url != "")
            {
                alink = string.Format("<a href=\"{0}\">Länk till scannat avtal</a>", new Uri(item.scan_url).AbsoluteUri);
            }
            else
            {
                alink = "";
            }

            // redigeringslänken
            var editlink = new HyperLink();
            editlink.NavigateUrl = String.Format("./avtal_detail.aspx?id={0}&nytt_avtal=false", item.id);
            editlink.Text        = "Redigera";
            var editc = new TableCell();
            editc.Controls.Add(editlink);

            // var editc = new TableCell() { Text = string.Format("<a href=\"./avtal_detail.aspx?id={0}>Redigera</a>", item.id) };

            var dc = new TableCell()
            {
                Text = item.diarienummer.ToString()
            };
            var sdc = new TableCell()
            {
                Text = string.Format("{0:d}", item.startdate)
            };
            sdc.CssClass = "text-nowrap";
            var edc = new TableCell()
            {
                Text = string.Format("{0:d}", item.enddate)
            };
            var sc = new TableCell()
            {
                Text = item.status
            };
            var mpc = new TableCell()
            {
                Text = item.motpartstyp
            };
            var idc = new TableCell()
            {
                Text = item.sbkid.ToString()
            };
            var urlc = new TableCell()
            {
                Text = alink
            };
            var orgc = new TableCell()
            {
                Text = item.orgnummer
            };
            var enlavt = new TableCell()
            {
                Text = item.enligtAvtal
            };
            var alc = new TableCell()
            {
                Text = item.interntAlias
            };
            var kommc = new TableCell()
            {
                Text = item.kommentar
            };

            row.Cells.Add(editc);
            row.Cells.Add(dc);
            row.Cells.Add(sdc);
            row.Cells.Add(edc);
            row.Cells.Add(sc);
            row.Cells.Add(mpc);
            row.Cells.Add(idc);
            row.Cells.Add(urlc);
            row.Cells.Add(orgc);
            row.Cells.Add(enlavt);
            row.Cells.Add(alc);
            row.Cells.Add(kommc);

            avtalstabell.Rows.Add(row);
        }
    }