private void btn_Save_Click(object sender, EventArgs e)
        {
            if (edit)
            {
                //TODO: módosítást létrehozni
                this.Close();
            }
            else
            {
                mainData m = new mainData();

                m.nev            = tb_Customer_Name.Text;
                m.születesi_nev  = tb_Customer_OriginalName.Text;
                m.lakcim_varos   = tb_Customer_City.Text;
                m.lakcim_uh      = tb_Customer_UH.Text;
                m.lakcim_zip     = lbl_ZipCode.Text;
                m.szul_datum     = tb_Customer_BirthDate.Text;
                m.szul_hely      = tb_Customer_BirthPlace.Text;
                m.szig_szam      = tb_Customer_PIDNum.Text;
                m.anyja_neve     = tb_Customer_MothersName.Text;
                m.vegzettseg     = tb_Customer_Schooling.Text;
                m.szakkepzettseg = tb_Customer_Skill.Text;
                m.foglalkozas    = tb_Customer_Work.Text;
                m.munkaltato     = tb_Customer_Employer.Text;
                m.vallas         = cb_Religion.SelectedIndex < 7 ? cb_Religion.SelectedIndex + "" : tb_OtherReligion.Text;

                m.azonosito = c_DBHandler.getNextAzonosito(sqlc);

                string allapot = "";

                foreach (ListViewItem lvi in lv_States.Items)
                {
                    allapot += lvi.SubItems[1].Text + "|";
                }

                allapot   = allapot.Trim('|');
                m.allapot = allapot;

                m.felvevo_profil               = lbl_ProfileName.Text;
                m.hozzaadas_datuma             = lbl_CreationDate.Text;
                m.legutobb_modositotta         = "";
                m.legutobbi_modositas_datuma   = "";
                m.környezettanulmanyt_végezte  = tb_StudyBy.Text;
                m.környezettanulmany_idopontja = tb_StudyOn.Text;

                customer_id = c_DBHandler.addNewCustomerAllData(sqlc, m);
                OK          = true;
                reload      = true;

                this.Close();
            }
        }
        public void loadData()
        {
            //TODO: load data from DB
            customerAllData cad = c_DBHandler.getCustomerAllData(sqlc, customer_id);

            m = cad.cust_0_mainData;

            Text = "Adatlap Szerkesztése - " + m.nev;

            //------------- Személyes Adatok

            cbb_PassedAway.Checked = m.elhunyt;



            if (cbb_PassedAway.Checked)
            {
                //TODO: kiszürkíteni mindent
                tb_Customer_Name.Enabled         = false;
                cb_Customer_OriginalName.Enabled = false;
                tb_Customer_OriginalName.Enabled = false;
                tb_Customer_City.Enabled         = false;
                tb_Customer_UH.Enabled           = false;
                tb_Customer_BirthDate.Enabled    = false;
                btn_SelectBirthDate.Enabled      = false;
                tb_Customer_BirthPlace.Enabled   = false;
                tb_Customer_PIDNum.Enabled       = false;
                tb_Customer_MothersName.Enabled  = false;
                tb_Customer_Schooling.Enabled    = false;
                tb_Customer_Skill.Enabled        = false;
                tb_Customer_Work.Enabled         = false;
                tb_Customer_Employer.Enabled     = false;
                cb_Religion.Enabled             = false;
                tb_OtherReligion.Enabled        = false;
                btn_Income_Add.Enabled          = false;
                btn_Income_Remove.Enabled       = false;
                btn_Income_Edit.Enabled         = false;
                btn_Expenditure_Add.Enabled     = false;
                btn_Expenditure_Remove.Enabled  = false;
                btn_Expenditure_Edit.Enabled    = false;
                tb_Vagyon_Megjegyzés.Enabled    = false;
                cb_Dwelling.Enabled             = false;
                btn_SocialState_Add.Enabled     = false;
                btn_SocialState_Remove.Enabled  = false;
                btn_SocialState_Edit.Enabled    = false;
                cb_GeneralSocialState.Enabled   = false;
                cb_RequiresConstantCare.Enabled = false;
                btn_State_Add.Enabled           = false;
                btn_State_Remove.Enabled        = false;
                btn_State_Edit.Enabled          = false;
                tb_StudyBy.Enabled        = false;
                tb_StudyOn.Enabled        = false;
                btn_SameAsCreator.Enabled = false;
                btn_EditAid.Enabled       = false;
            }

            tb_Customer_Name.Text            = m.nev;
            customerName                     = m.nev;
            tb_Customer_OriginalName.Text    = m.születesi_nev;
            cb_Customer_OriginalName.Checked = (tb_Customer_OriginalName.Text != tb_Customer_Name.Text);
            tb_CustomerIdentification.Text   = m.azonosito;

            tb_Customer_City.Text = m.lakcim_varos;
            tb_Customer_UH.Text   = m.lakcim_uh;

            tb_Customer_BirthDate.Text   = m.szul_datum;
            tb_Customer_BirthPlace.Text  = m.szul_hely;
            tb_Customer_PIDNum.Text      = m.szig_szam;
            tb_Customer_MothersName.Text = m.anyja_neve;

            tb_Customer_Schooling.Text = m.vegzettseg;
            tb_Customer_Skill.Text     = m.szakkepzettseg;
            tb_Customer_Work.Text      = m.foglalkozas;
            tb_Customer_Employer.Text  = m.munkaltato;

            if (m.lakcim_zip == "")
            {
                _city = m.lakcim_varos.ToLower();
                _zip  = _xml.getZipcode(_city).ToString();

                if (_zip != "")
                {
                    lbl_ZipCode.Invoke(new myDelegate(setZip));
                }

                GC.Collect();
            }
            else
            {
                lbl_ZipCode.Text = m.lakcim_zip;
            }

            cbb_SZJI.Checked = m.jovedelem_igazolas;
            string vallas = m.vallas;

            if (int.TryParse(vallas, out int _v))
            {
                try
                {
                    cb_Religion.SelectedIndex = _v;
                }
                catch
                {
                    cb_Religion.SelectedIndex = 0;
                }
            }
            else
            {
                cb_Religion.SelectedIndex = 7;
                tb_OtherReligion.Text     = vallas;
            }

            //------------- Vagyoni helyzet

            fillCustomerVagyon(cad.cust_1_vagyon);

            //------------- Szociális helyzet

            cb_Dwelling.SelectedIndex             = (int)cad.cust_2_lakas;
            cb_GeneralSocialState.SelectedIndex   = (int)cad.cust_3_alt_szoc_helyzet;
            cb_RequiresConstantCare.SelectedIndex = (int)cad.cust_4_rendsz_seg_szorul;

            fillCustomerRokonok(cad);

            string[] állapot = m.allapot.Split('|');
            foreach (string _állapot in állapot)
            {
                if (_állapot != "")
                {
                    ListViewItem állapot_lvi = new ListViewItem();
                    állapot_lvi.Text = (lv_States.Items.Count + 1) + "";

                    állapot_lvi.SubItems.Add(_állapot);
                    lv_States.Items.Add(állapot_lvi);
                }
            }

            //------------- Felhasználói Információ

            lbl_ProfileName.Text    = m.felvevo_profil;
            lbl_CreationDate.Text   = m.hozzaadas_datuma;
            lbl_LastUpdatedBy.Text  = m.legutobb_modositotta;
            lbl_LastUpdateDate.Text = m.legutobbi_modositas_datuma;
            tb_StudyBy.Text         = m.környezettanulmanyt_végezte;
            tb_StudyOn.Text         = m.környezettanulmany_idopontja;

            //------------- Támogatások

            List <tamogatas> támogatáslista = cad.cust_6_tamogatasok;

            int num                   = 0,
                allnum                = 0;
            List <aidsclass> aids     = new List <aidsclass>();
            List <aidsclass> all_aids = new List <aidsclass>();
            List <string>    types    = new List <string>();

            foreach (tamogatas _támogatás in támogatáslista)
            {
                ListViewItem támogatás_lvi = new ListViewItem();
                támogatás_lvi.Tag  = new object[] { _támogatás.id, _támogatás.tamogatas_tipusa, _támogatás.tamogatas_mennyisege, _támogatás.tamogatas_egysége };
                támogatás_lvi.Text = (lv_Aids.Items.Count + 1) + "";

                támogatás_lvi.SubItems.Add(_támogatás.datum.ToShortDateString());
                támogatás_lvi.SubItems.Add(_támogatás.tamogatas_mennyisege + " " + _támogatás.tamogatas_egysége + " " + _támogatás.tamogatas_tipusa);
                támogatás_lvi.SubItems.Add(_támogatás.megjegyzes);
                lv_Aids.Items.Add(támogatás_lvi);

                var aid = new aidsclass()
                {
                    type          = _támogatás.tamogatas_tipusa,
                    value         = _támogatás.tamogatas_mennyisege,
                    denoimination = _támogatás.tamogatas_egysége
                };

                allnum++;
                all_aids.Add(aid);
                if (_támogatás.datum.Year == DateTime.Now.Year)
                {
                    num++;
                    aids.Add(aid);
                }

                if (!types.Contains(_támogatás.tamogatas_tipusa))
                {
                    types.Add(_támogatás.tamogatas_tipusa);
                }
            }

            lbl_All_Num.Text      = allnum + "";
            lbl_ThisYear_Num.Text = num + "";

            string tmp  = "",
                   tmp1 = "";

            foreach (string t in types)
            {
                {
                    tmp += t + ": ";
                    int    i  = 0;
                    string tt = "";
                    foreach (aidsclass a in all_aids)
                    {
                        if (a.type.ToLower() == t.ToLower())
                        {
                            int tmp_i = 0;
                            int.TryParse(a.value, out tmp_i);
                            i += tmp_i;
                            tt = a.denoimination;
                        }
                    }

                    tmp += i + tt + "\r\n";
                }

                {
                    tmp1 += "";
                    int    i  = 0;
                    string tt = "";
                    foreach (aidsclass a in aids)
                    {
                        if (a.type.ToLower() == t.ToLower())
                        {
                            int tmp_i = 0;
                            int.TryParse(a.value, out tmp_i);
                            i += tmp_i;
                            tt = a.denoimination;
                        }
                    }

                    if (i > 0)
                    {
                        tmp1 += t + ": " + i + tt + "\r\n";
                    }
                }
            }

            lbl_All_ValueSum.Text      = tmp;
            lbl_ThisYear_ValueSum.Text = tmp1;
        }
        //MEMO: ===== Return all customer data!!
        //MEMO: Le kell kezelni, hogy ne lehessen <NULL> értéket menteni
        //MEMO: Biztosra kell menni, hogy nincs szám értékként string oszlop lekérve
        public static customerAllData getCustomerAllData(SQLiteConnection sqlc, int custid)
        {
            customerAllData  cad = new customerAllData();
            mainData         md  = new mainData();
            List <vagyon>    _v  = new List <vagyon>();
            List <rokon>     _r  = new List <rokon>();
            List <tamogatas> _t  = new List <tamogatas>();

            //========== MainData

            string command = string.Format("SELECT * FROM ugyfel WHERE id={0}", custid);

            SQLiteCommand    sqlk = new SQLiteCommand(command, sqlc);
            SQLiteDataReader r    = sqlk.ExecuteReader();

            r.Read();
            reader = r;

            //Változó neve					--	Táblából lekérdezett érték								--	Üres érték kezelése

            md.id                           = custid;
            md.nev                          = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("nev")));
            md.születesi_nev                = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("születesi_nev")));
            md.szig_szam                    = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("szig_szam")));
            md.lakcim_varos                 = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("lakcim_varos")));
            md.lakcim_uh                    = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("lakcim_uh")));
            md.lakcim_zip                   = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("lakcim_zip")));
            md.szul_datum                   = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("szul_datum")));
            md.szul_hely                    = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("szul_hely")));
            md.csaladi_allapot              = c_DBHandler.checkvalueInt(r.GetValue(r.GetOrdinal("csaladi_allapot")));
            md.anyja_neve                   = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("anyja_neve")));
            md.vegzettseg                   = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("vegzettseg")));
            md.foglalkozas                  = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("foglalkozas")));
            md.szakkepzettseg               = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("szakkepzettseg")));
            md.munkaltato                   = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("munkaltato")));
            md.azonosito                    = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("azonosito")));
            md.utolso_tamogatas_idopontja   = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("utolso_tamogatas_idopontja")));
            md.jovedelem_igazolas           = (c_DBHandler.checkvalueString((r.GetValue(r.GetOrdinal("jovedelem_igazolas")))) == "T" ? true : false);
            md.elhunyt                      = (c_DBHandler.checkvalueString((r.GetValue(r.GetOrdinal("elhunyt")))) == "T" ? true : false);
            md.allapot                      = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("allapot")));
            md.vallas                       = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("vallas")));
            md.környezettanulmanyt_végezte  = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("környezettanulmanyt_végezte")));
            md.környezettanulmany_idopontja = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("környezettanulmany_idopontja")));
            md.hozzaadas_datuma             = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("hozzaadas_datuma")));
            md.felvevo_profil               = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("felvevo_profil")));
            md.legutobb_modositotta         = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("legutobb_modositotta")));
            md.legutobbi_modositas_datuma   = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("legutobbi_modositas_datuma")));


            cad.cust_0_mainData = md;

            r.Close();

            //========== Vagyon

            command = string.Format("SELECT * FROM vagyon WHERE ugyfel_id={0}", custid);
            sqlk    = new SQLiteCommand(command, sqlc);
            r       = sqlk.ExecuteReader();
            while (r.Read())
            {
                vagyon vv = new vagyon();

                vv.id     = c_DBHandler.checkvalueInt(r.GetValue(r.GetOrdinal("id")));
                vv.szoveg = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("szoveg")));
                vv.osszeg = c_DBHandler.checkvalueInt(r.GetValue(r.GetOrdinal("osszeg")));
                vv.tipus  = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("tipus")));

                _v.Add(vv);
            }

            cad.cust_1_vagyon = _v;

            r.Close();

            //========== SZOC_HELYZET

            command = string.Format("SELECT * FROM szoc_helyzet WHERE ugyfel_id={0}", custid);
            sqlk    = new SQLiteCommand(command, sqlc);
            r       = sqlk.ExecuteReader();

            if (r.Read())
            {
                cad.cust_2_lakas             = (enums.lakás)c_DBHandler.checkvalueInt(r.GetValue(r.GetOrdinal("lakas")));
                cad.cust_3_alt_szoc_helyzet  = (enums.általános_szociális_helyzet)c_DBHandler.checkvalueInt(r.GetValue(r.GetOrdinal("altalanos_szoc_helyzet")));
                cad.cust_4_rendsz_seg_szorul = (enums.rendszeres_segítségre_szorul)c_DBHandler.checkvalueInt(r.GetValue(r.GetOrdinal("rendszeres_segitsegre_szorul")));
            }
            r.Close();

            //========== HAZTARTASBAN_ELOK

            command = string.Format("SELECT * FROM haztartasban_elok WHERE ugyfel_id={0}", custid);
            sqlk    = new SQLiteCommand(command, sqlc);
            r       = sqlk.ExecuteReader();

            while (r.Read())
            {
                rokon rr = new rokon();

                rr.id             = c_DBHandler.checkvalueInt(r.GetValue(r.GetOrdinal("id")));
                rr.nev            = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("nev")));
                rr.kapcsolat      = (enums.rokoni_kapcsolat)c_DBHandler.checkvalueInt(r.GetValue(r.GetOrdinal("rokoni_kapcsolat")));
                rr.havi_jovedelem = c_DBHandler.checkvalueInt(r.GetValue(r.GetOrdinal("havi_jovedelem")));

                _r.Add(rr);
            }

            cad.cust_5_rokonok = _r;

            r.Close();

            //========== TAMOGATASOK

            command = string.Format("SELECT * FROM tamogatasok WHERE ugyfel_id={0}", custid);
            sqlk    = new SQLiteCommand(command, sqlc);
            r       = sqlk.ExecuteReader();

            while (r.Read())
            {
                tamogatas tt = new tamogatas();

                tt.id                   = c_DBHandler.checkvalueInt(r.GetValue(r.GetOrdinal("id")));
                tt.datum                = Convert.ToDateTime(c_DBHandler.checkDate(c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("datum")))));
                tt.tamogatas_tipusa     = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("tamogatas")));
                tt.tamogatas_mennyisege = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("tamogatas_mennyisege")));
                tt.tamogatas_egysége    = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("tamogatas_egysége")));
                tt.megjegyzes           = c_DBHandler.checkvalueString(r.GetValue(r.GetOrdinal("megjegyzes")));

                _t.Add(tt);
            }

            cad.cust_6_tamogatasok = _t;


            return(cad);
        }