示例#1
0
        /// <summary>
        /// Konstruktören för FormBoka-formen, här börjar koden från FormBoka.
        /// Här initalieras alla komponenter och kund objektet sparas som global variabel för formen.
        /// 
        /// Här tas även bilarna fram och sparas i Listan kundbilar.
        /// </summary>
        /// <param name="anvandare">Kund objektet för den som bokar</param>
        public FormBoka(kund anvandare)
        {
            InitializeComponent();
            SqlCeDatabase db = new SqlCeDatabase();
            bil_objekt bil = new bil_objekt();
            this.anvandare = anvandare;
            List<string> kundBilar = new List<string>();

            // Kolla efter bilar registrerade till kunden / användaren.
            if (bil.kollaKundsBilar(anvandare,"reg") == 2)
            {
                if (DEBUG)
                    richTextBoxBokningMeny.Text = "Något är fel med kollaKundsBilar-funktionen i bil_objekt.cs";
            }
            else if (bil.kollaKundsBilar(anvandare) == 0)
            {
                kundBilar.AddRange(bil.GetTmpMsgs());
                this.kundHarReggadBil = true;
            }

            // Lägg till en rad "Ny bil..." och lägg till bilarna till regnr-comboboxens datasource
            kundBilar.Add("Ny bil...");
            comboBoxReg.DataSource = kundBilar;

            // Fixar så man bara kan välja ett datum i monthCalendar1.
            monthCalendar1.MaxSelectionCount = 1;
            panelTider.Hide();
            buttonBoka.Hide();

            richTextBoxBokningMeny.Text = "Tryck på Ny bokning för att göra en ny bokning.\nTryck på Mina Bokningar för att se vad du har bokat och när.";
            if (DEBUG)
            {
                richTextBoxBokningMeny.Text += "\nNamn: " + anvandare.GetNamn();
                richTextBoxBokningMeny.Text += "\nEmail: " + anvandare.GetEmail();
                richTextBoxBokningMeny.Text += "\nPersonnummer: " + anvandare.GetPersonnummer();
            }
        }
示例#2
0
        /// <summary>
        /// Skriver ut i en tabellayout med all iformation som är nödvändig för kunden
        /// </summary>
        /// <param name="typ">Vilken typ kunden vill ha</param>
        /// <param name="startdag">Startdagen för hyrningen</param>
        /// <param name="slutdag">Slutdagen för hyrningen</param>
        private void HyrablaFordon(string typ, string startdag, string slutdag)
        {
            bil_objekt hyrabel = new bil_objekt();

            int hyrabelStatus = hyrabel.kollaLedigaHyrFordon(typ, startdag, slutdag);
            if (hyrabelStatus == 10)
            {
                this.tableLayoutPanelTyp.Hide();
                this.labelFordonsTypMeddelande.Text = "Det finns inga lediga fordon utav denna typ under din önskade tid";
                this.labelFordonsTypMeddelande.Show();
            }
            else if (hyrabelStatus == 0)
            {
                tableLayoutPanelTyp.Visible = true;
                panelTyp.Show();

                string[] ledigaFordon = hyrabel.GetTmpMsgs();
                SortedList<string, string>[] hyrabelInformation = hyrabel.hamtaValtHyrfordon(ledigaFordon);
                int length = ledigaFordon.Length;
                for (int i = 0; i < length; i++)
                {
                    Label labelLedigaFordonMarke = new Label(), labelLedigaFordonModell = new Label(), labelLedigaFordonArsmodell = new Label(), labelLedigaFordonReg = new Label(), labelLedigaFordonHyr = new Label();
                    Label[] labelFordon = { labelLedigaFordonReg, labelLedigaFordonMarke, labelLedigaFordonModell, labelLedigaFordonArsmodell, labelLedigaFordonHyr };
                    for (int o = 0; o < 5; o++)
                    {
                        switch (o)
                        {
                            case 0:
                                labelFordon[o].Text = hyrabelInformation[i]["regnr"];
                                break;

                            case 1:
                                labelFordon[o].Text = hyrabelInformation[i]["marke"];
                                break;

                            case 2:
                                labelFordon[o].Text = hyrabelInformation[i]["modell"];
                                break;

                            case 3:
                                labelFordon[o].Text = hyrabelInformation[i]["arsmodell"];
                                break;

                            case 4:
                                labelFordon[o].Text = "Hyr";
                                labelFordon[o].Name = "Hyr_" + hyrabelInformation[i]["regnr"];
                                labelFordon[o].Cursor = Cursors.Hand;
                                labelFordon[o].Click += new System.EventHandler(this.Hyr);
                                break;
                        }
                        this.tableLayoutPanelTyp.Controls.Add(labelFordon[o]);
                    }
                }
            }
        }
示例#3
0
        /// <summary>
        /// Funktion som hyr det valda fordonet
        /// </summary>
        /// <param name="sender">label</param>
        /// <param name="e"></param>
        private void Hyr(object sender, EventArgs e)
        {
            hyrnings_objekt hyrning = new hyrnings_objekt(new SqlCeDatabase(), this.anvandare);
            bil_objekt hyrabel = new bil_objekt();
            Label hyr = sender as Label;

            string reg = hyr.Name.Substring(4);

            if (hyrning.hyra(this.anvandare, startdag.ToShortDateString(), slutdag.ToShortDateString(), reg))
            {
                DoljHyr();
                richTextBoxMeddelandenHyra.Text = "Bokningen genomfördes utan problem.";
                richTextBoxMeddelandenHyra.Text += "\n\nDu har nu hyrt en;\n" + fordon as string + "\nRegnummer: " + reg + "\nStartdagen: " + startdag.ToShortDateString() + "\nSlutdagen: " + slutdag.ToShortDateString();
            }
            else
            {
                richTextBoxMeddelandenHyra.Text = "Det blev något fel med hyrningen";
                string[] felmeddelande = hyrning.GetTmpMsgs();
                if (DEBUG)
                {
                    richTextBoxMeddelandenHyra.ScrollBars = RichTextBoxScrollBars.ForcedBoth;
                    richTextBoxMeddelandenHyra.Text += "\n**** FELMEDDELANDE ****";
                    foreach (string fel in felmeddelande)
                        richTextBoxMeddelandenHyra.Text += "\n" + fel + "\n";
                }
            }
        }
示例#4
0
        /// <summary>
        /// Bokar en tid för ett fordon för en kund som är oregistread
        /// </summary>
        /// <param name="fnamn">Förnamnet på kunden</param>
        /// <param name="enamn">Efternamnet på kunden</param>
        /// <param name="regnr">Fordonets registreringsnummer</param>
        /// <param name="datum">Bokningens datum</param>
        /// <param name="marke">Fordonets marke</param>
        /// <param name="modell">Fordonets modell</param>
        /// <param name="arsmodell">Fordonets årsmodell</param>
        /// <returns></returns>
        public bool boka(string fnamn, string enamn, string tfn, string regnr, string datum, string marke, string modell, string arsmodell, string agare, string spec)
        {
            List<string> errorMsgs = new List<string>();
            SqlCeDatabase db = new SqlCeDatabase();
            bil_objekt bil = new bil_objekt();

            string tid = datum.Substring(11);
            datum = datum.Substring(0, 10);
            int kod = bil.insertFordon(regnr, modell, arsmodell, marke, agare);
            if (kod == 0)
            {
                string query = "INSERT INTO Bokning " +
                   "(datum, fnamn, enamn, bil, tfn, tid, spec) " +
                   "VALUES  ('?x?','?x?','?x?', '?x?', '?x?', '?x?', '?x?')";
                string[] args = { datum, fnamn, enamn, regnr, tfn, tid, spec };

                if (db.query(query, args) == 0)
                {
                    int opResultat = db.operation();
                    if (opResultat == 0)
                        return true;
                    else
                    {
                        errorMsgs.Add("Det blev något fel när din bokning skulle processeras. Kontakta systemansvarig");
                        if (DEBUG)
                            errorMsgs.AddRange(db.GetTmpMsgs());
                    }
                }
                else
                {
                    errorMsgs.Add("Det blev ett fel vid skapandet av frågan. Kontakta ansvarig för programmet.");
                    if (DEBUG)
                        errorMsgs.AddRange(db.GetTmpMsgs());
                }
            }
            else
            {
                if (DEBUG)
                    errorMsgs.AddRange(bil.GetTmpMsgs());
                else
                    errorMsgs.Add("Det blev något fel när ditt fordon skulle registreras");
            }
            if (errorMsgs.Count > 0)
            {
                this.tmpMsgs = errorMsgs.ToArray();
            }
            return false;
        }
示例#5
0
        /// <summary>
        /// Funktion som använder sig av hamtaValtFordon för att hämta information och sen skriver den fordonets information i richTextBoxInfoBil
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void fordonsInfo(object sender, EventArgs e)
        {
            bil_objekt fordon = new bil_objekt();
            Label labelSender = sender as Label;
            string reg = labelSender.Text;

            SortedList<string, string> fetch = fordon.hamtaValtFordon(reg);
            string[] lines = { "Regnummer: " + fetch["reg"], "Märke: " + fetch["marke"],
                                 "Modell: " + fetch["modell"], "Årsmodell: " + fetch["arsmodell"], "Ägare: " + fetch["agare"] };
            richTextBoxInfoBil.Lines = lines;
            richTextBoxInfoBil.Show();
        }
示例#6
0
        /// <summary>
        /// Lägger till hyrfordon
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonLäggTillFordon_Click(object sender, EventArgs e)
        {
            bil_objekt fordon = new bil_objekt();
            string reg, marke, modell, arsmodell, typ;
            reg = TextBoxReg.Text;
            marke = TextBoxMarke.Text;
            modell = TextBoxModell.Text;
            arsmodell = TextBoxArsmodell.Text;
            typ = checkedListBoxFordonsTyp.CheckedItems[0].ToString();

            int insertStatus = fordon.insertHyrFordon(reg, modell, arsmodell, marke, typ);
            if (insertStatus == 0)
                richTextBoxFormAdminMsgs.Text = "Fordonet lades till";
            else
            {
                string msgs = "Det blev ett fel när fordonet lades till";
                if (!DEBUG)
                    richTextBoxFormAdminMsgs.Text = msgs;
                else
                {
                    List<string> debugMsgs = new List<string>();
                    debugMsgs.Add(msgs);
                    debugMsgs.AddRange(fordon.GetTmpMsgs());
                    richTextBoxFormAdminMsgs.Lines = debugMsgs.ToArray();
                }
                richTextBoxFormAdminMsgs.Show();
            }
        }
示例#7
0
        /// <summary>
        /// Funktin som fyller bokningarna och kundens fordon
        /// </summary>
        private void fyllBokningar_bilar()
        {
            boknings_objekt bokningar = new boknings_objekt(new SqlCeDatabase(), anvandare);
            bil_objekt fordon = new bil_objekt();

            SortedList<string, string>[] bokningsResultat = bokningar.hamtaMinaBokningar();
            int bilResultat = fordon.kollaKundsBilar(anvandare);

            if (bilResultat != 0)
            {
                this.tableLayoutPanelBilar.Hide();
                this.labelBilarMeddelande.Text = "Det finns inga bilar registrerade i systemet tryck på registrera för att registrera en bil";
                this.labelBilarMeddelande.Show();
            }

            if (bokningsResultat.Length == 0)
            {
                this.tableLayoutPanelBokningar.Hide();
                this.labelBokningarMeddelande.Text = "Du har inga bokade tider";
                this.labelBokningarMeddelande.Show();
            }

            if (this.tableLayoutPanelBilar.Visible)
            {
                SortedList<string, string>[] fordonLista = fordon.GetTmpMsgs(true);
                int length = fordonLista.Length;
                for (int i = 0; i < length; i++)
                {
                    SortedList<string, string> fordonsfält = fordonLista[i] as SortedList<string, string>;
                    Label labelBilarReg = new Label(), labelBilarMarke = new Label(), labelBilarModell = new Label(), labelBilarArsmodell = new Label();
                    Label[] labelBilar = { labelBilarReg, labelBilarMarke, labelBilarModell, labelBilarArsmodell };
                    for (int o = 0; o < 4; o++)
                    {
                        labelBilar[o].Text = fordonsfält[fordonsfält.Keys[o]];
                        this.tableLayoutPanelBilar.Controls.Add(labelBilar[o]);
                    }
                }
            }

            int lengthRes = bokningsResultat.Length;
            for (int i = 0; i < lengthRes; i++)
            {
                SortedList<string, string> bokningsString = bokningsResultat[i] as SortedList<string, string>;
                Label labelBokningDatum = new Label(), labelBokningBil = new Label(), labelBokningId = new Label();
                Label[] labelBokning = { labelBokningDatum, labelBokningBil, labelBokningId };
                for (int o = 0; o < 3; o++)
                {
                    switch (o)
                    {
                        case 0:
                            labelBokning[o].Text = bokningsString["datum"];
                            break;

                        case 1:
                            labelBokning[o].Text = bokningsString["bil"];
                            break;

                        case 2:
                            labelBokning[o].Text = "Ta bort";
                            labelBokning[o].Name = "Tabort_" + bokningsString["id"];
                            labelBokning[o].Cursor = System.Windows.Forms.Cursors.Hand;
                            labelBokning[o].Click += new System.EventHandler(this.TaBort);
                            break;
                    }
                    this.tableLayoutPanelBokningar.Controls.Add(labelBokning[o]);
                }
                this.tableLayoutPanelBokningar.Show();
            }
        }