コード例 #1
0
ファイル: UplataIsplata.cs プロジェクト: ProFMBitola/ProFM-1
        private void btnVnesiUplata_Click(object sender, EventArgs e)
        {
            btnPrebaraj_Click(sender, e);

            //pred da se vnesi uplatata vo bazata treba da se proveri dali operatorot gi popolnil site polinja
            // ako ne go popolnil toa ke mu se ukazi so message box
            if (txtBrIzvod.Text == "" || txtdatumIzvod.Text == "" || txtIznos.Text == "")
            {
                MessageBox.Show("Немате внесено вредности во сите полиња од прозорецот", "Внеси вредности", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return;
            }

            if (rbUplata.Checked || rbIsplata.Checked)
            {
                if (txtDatumFaktura.Text == "")
                {
                    MessageBox.Show("Немате внесено вредности во сите полиња од прозорецот", "Внеси вредности", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return;
                }
            }

            //se zemaat podatoci za izbraniot sopstvenik
            //var stan = (tblSopstvenici_Stan)cmbStanari.SelectedItem;
            //se zacuvuva ID od izbraniot stan
            //int idStan = stan.IDStan;

            int intIdStan = 0;
            //se zemaat podatoci za dobavuvacot
            //var dob = (tblDobavuvaci)cmbDobavuvac.SelectedItem;
            int intIdDobavuvac = 0;
            //se zacuvuva ID od izbraniot dobavuvac
            //IdDobavuvac = dob.ID_dobavuvac;


            //brojot na faktura go zema prethodno zacuvaniot br na faktura
            string stringBrFakturaa = stringBrFaktura;

            //proverka dali operatorot vnesil uplata
            if (rbUplata.Checked)
            {
                //se zemaat podatoci za izbraniot sopstvenik
                var stan = (tblSopstvenici_Stan)cmbStanari.SelectedItem;
                //se zacuvuva ID od izbraniot stan
                intIdStan = stan.IDStan;

                //pronaoganje vo bazata na fakturata koja treba da se plati za izbraniot stanar
                var queryIsPlatenaFaktura = from faktura in context.tblIzdadeniFakturis
                                            where faktura.br_faktura == stringBrFakturaa
                                            //where faktura.br_faktura == stringBrFaktura
                                            select faktura;

                //zapisvanje vo bazata deka fakturata e platena
                foreach (tblIzdadeniFakturi faktura in queryIsPlatenaFaktura)
                {
                    faktura.IsPlatena = true;
                    intIdStan         = faktura.IDStan;
                }

                //da se zemi stanot za koj se plaka za da se namali zaostanatiot dolg
                var queryZaostanatDolg = from sopsstan in context.tblSopstvenici_Stans
                                         where sopsstan.IDStan == intIdStan
                                         select sopsstan;

                foreach (tblSopstvenici_Stan sopstvenik in queryZaostanatDolg)
                {
                    //zaostanatiot dolg na sopstvenikot se namaluva za iznosot koj e platen
                    sopstvenik.zaostanat_dolg -= int.Parse(txtIznos.Text);
                }
                //noviot zapis zacuvaj go vo bazata
                //context.SubmitChanges();
            }

            if (rbIsplata.Checked)
            {
                //zemanje na podatoci za izbranata zgrada
                var zgrada = (Zgrada)cmbSifraZgrada.SelectedItem;
                //zemanje na ID na izbranata zgrada
                int intIdZgr = zgrada.ID;

                //se zemaat podatoci za dobavuvacot
                var dob = (Dobavuvac)cmbDobavuvac.SelectedItem;
                //se zacuvuva ID od izbraniot dobavuvac
                intIdDobavuvac = dob.ID_Dobavuvac;

                //pronaoganje vo bazata na fakturata koja treba da se plati za izbraniot stanar
                var queryIsPlatenaFaktura = from faktura in context.tblFaktura_Dobavuvacis
                                            where faktura.br_faktura == stringBrFakturaa && faktura.ID_zgrada == intIdZgr
                                            //where faktura.br_faktura == stringBrFaktura
                                            select faktura;

                //zapisvanje vo bazata deka fakturata e platena
                foreach (var faktura in queryIsPlatenaFaktura)
                {
                    faktura.isPlatena = true;
                }
            }

            if (rbUplataAvans.Checked)
            {
                //se zemaat podatoci za izbraniot sopstvenik
                var stan = (tblSopstvenici_Stan)cmbStanari.SelectedItem;
                //se zacuvuva ID od izbraniot stan
                intIdStan = stan.IDStan;

                //da se zemi stanot za koj se plaka za da se namali zaostanatiot dolg
                var queryZaostanatDolg = from sopsstan in context.tblSopstvenici_Stans
                                         where sopsstan.IDStan == intIdStan
                                         select sopsstan;

                foreach (tblSopstvenici_Stan sopstvenik in queryZaostanatDolg)
                {
                    //zaostanatiot dolg na sopstvenikot se namaluva za iznosot koj e platen
                    sopstvenik.zaostanat_dolg -= int.Parse(txtIznos.Text);
                }
            }

            if (rbUplataPredMaj2014.Checked)
            {
                //se zemaat podatoci za izbraniot sopstvenik
                var stan = (tblSopstvenici_Stan)cmbStanari.SelectedItem;
                //se zacuvuva ID od izbraniot stan
                intIdStan = stan.IDStan;

                //da se zemi stanot za koj se plaka za da se namali zaostanatiot dolg
                var queryZaostanatDolg = from sopsstan in context.tblSopstvenici_Stans
                                         where sopsstan.IDStan == intIdStan
                                         select sopsstan;

                foreach (tblSopstvenici_Stan sopstvenik in queryZaostanatDolg)
                {
                    //zaostanatiot dolg na sopstvenikot se namaluva za iznosot koj e platen
                    sopstvenik.zaostantDolg2013 -= int.Parse(txtIznos.Text);
                }
            }

            //zemi gi vrednostite na selektiranata zgrada
            var izbranaZgrada = (Zgrada)cmbSifraZgrada.SelectedItem;

            //zacuvaj go ID na selektiranata zgrada
            int intIdZgrada = izbranaZgrada.ID;
            //deklaracija na dve promenlivi uplata i isplata i nivna inicijalizacija na false
            bool IsUplata           = false;
            bool IsIsplata          = false;
            bool IsUplataAvans      = false;
            bool IsUplataAvansDoMaj = false;

            if (rbUplata.Checked)
            {
                //ako operatorot izbral da vnesi uplata togas IDDobavuvac mora da bidi nula
                //a promenlivata uplata true
                IsUplata       = true;
                intIdDobavuvac = 0;
            }

            if (rbUplataAvans.Checked)
            {
                //ako operatorot izbral da vnesi uplata togas IDDobavuvac mora da bidi nula
                //a promenlivata uplataAvans true
                IsUplataAvans  = true;
                intIdDobavuvac = 0;
            }
            if (rbUplataPredMaj2014.Checked)
            {
                //ako operatorot izbral da vnesi uplata togas IDDobavuvac mora da bidi nula
                //a promenlivata uplataAvans true
                IsUplataAvansDoMaj = true;
                intIdDobavuvac     = 0;
            }


            if (rbIsplata.Checked)
            {
                //ako operatorot izbral da vnesi uplata togas IdStan mora da bidi nula
                //a promenlivata isplaya true
                IsIsplata = true;
                intIdStan = 0;
            }

            var    imeBanka    = cmbBanka.SelectedItem;
            string stringBanka = "";

            if (imeBanka == listBanki[0])
            {
                stringBanka = listBanki[0];
            }
            if (imeBanka == listBanki[1])
            {
                stringBanka = listBanki[1];
            }

            //string banka = cmbBanka.SelectedText;

            //kreiranje na nov obijekt od tblIzvod i inicijalizacija na promenlivite vrz osnova na vnesenite vrednosti
            tblIzvodi izvod = new tblIzvodi()
            {
                ID_zgrada               = intIdZgrada,
                ID_stanar               = intIdStan,
                ID_dobavuvac            = intIdDobavuvac,
                banka                   = stringBanka,
                smetka_banka            = txtSmetkaBanka.Text,
                br_izvod                = int.Parse(txtBrIzvod.Text.ToString()),
                datum                   = txtdatumIzvod.Text,
                uplati                  = IsUplata,
                isplati                 = IsIsplata,
                uplata_avans            = IsUplataAvans,
                isUplataDoMaj           = IsUplataAvansDoMaj,
                datum_faktura           = txtDatumFaktura.Text,
                povikuvacki_broj        = stringBrFakturaa,
                iznos                   = int.Parse(txtIznos.Text.ToString()),
                vraboteno_lice          = ProFM.Form1.GlobalVariable.stringNajavenKorisnik,
                vreme_napraveni_promeni = DateTime.Now.ToString(),
            };

            context.tblIzvodis.InsertOnSubmit(izvod);
            //noviot zapis zacuvaj go vo bazata
            context.SubmitChanges();

            if (rbUplata.Checked || rbUplataPredMaj2014.Checked)
            {
                var izbranaSmetka = (tblIzdadeniFakturi)cmbNeplateniSmetki.SelectedItem;
                txtIznos.Text = izbranaSmetka.iznos.ToString();

                int   drugo        = int.Parse(izbranaSmetka.drugo.ToString());
                int   higena       = int.Parse(izbranaSmetka.cistenje.ToString());
                int   kanalizacija = int.Parse(izbranaSmetka.kanalizacija.ToString());
                int   lift         = int.Parse(izbranaSmetka.lift.ToString());
                float rf           = int.Parse(izbranaSmetka.rezerven_fond.ToString());
                int   struja       = int.Parse(izbranaSmetka.struja.ToString());
                int   upravitel    = int.Parse(izbranaSmetka.upravitel.ToString());
                int   voda         = int.Parse(izbranaSmetka.voda.ToString());

                //fondovite(saldoto) na zgradata za odredeni stavki
                var queryFondoviZgrada = from fond in context.ZgradaFondovis
                                         where fond.idZgrada == intIdZgrada
                                         select fond;

                foreach (var fond in queryFondoviZgrada)
                {
                    fond.fondDrugo        += drugo;
                    fond.fondHigena       += higena;
                    fond.fondKanalizacija += kanalizacija;
                    fond.fondLift         += lift;
                    fond.fondRF           += rf;
                    fond.fondStruja       += struja;
                    fond.fondUpravitel    += upravitel;
                    fond.fondVoda         += voda;
                }

                //zacuvuvanje na izmenite za fondovite za zgradata vo bazata
                context.SubmitChanges();
            }

            //polinjata zasega ke bidat vo komentar, bidejki se vnesuva zgrada po zgrada
            //koga ke se dovnesat site izvodi ke se odkomentira
            //iscisti ja formata i so toa na operatorot mu se ukazuva deka uplatata e vnesena
            //txtImeZgrada.Text = "";
            //txtSmetkaBanka.Text = "";
            //txtBrIzvod.Text = "";
            //txtdatumIzvod.Text = "";
            rbUplata.Checked            = false;
            rbIsplata.Checked           = false;
            rbUplataPredMaj2014.Checked = false;
            rbUplataAvans.Checked       = false;

            txtIznos.Text           = "";
            lblDatumFaktura.Visible = false;
            txtDatumFaktura.Visible = false;
            txtDatumFaktura.Text    = "";

            //labelata za dobavuvac i combobox za nego treba da se skrijat
            lblIzberiDobavuvac.Visible = false;
            cmbDobavuvac.Visible       = false;

            //labelata za stanar i combobox za nego treba da se skrijat
            lblIzberiStan.Visible = false;
            cmbStanari.Visible    = false;

            lblIznos.Visible       = false;
            txtIznos.Visible       = false;
            btnVnesiUplata.Visible = false;

            lblPovikuvackiBr.Visible   = false;
            cmbNeplateniSmetki.Visible = false;

            //kreiranje na prazna lista za da se iscisti combobox-ot vo prozorecot
            List <string> lista = new List <string>();

            //iscisti go combo boxot
            //cmbSifraZgrada.DataSource = lista;

            //povikuvanje na funkcijata za loadiranje na formata
            //so cel da se napolni combobox-ot
            UplataImeStanar_Load(sender, e);
        }
コード例 #2
0
        private void btnKniziIzvod_Click(object sender, EventArgs e)
        {
            Form1.GlobalVariable.ValidacijaDenMesecGodina(txtDatumIzvod);

            int z = 0;

            if (!int.TryParse(txtBrIzvod.Text, out z))
            {
                MessageBox.Show("Внесете број на извод со цифри", "Грешен број на извод", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return;
            }

            int kolonaBrFaktura           = 2;
            int kolonaIznosFaktura        = 3;
            int kolonaZiroSmetkaRedovenF  = 4;
            int kolonaIznosRedovenF       = 5;
            int kolonaZiroSmetkaRezervenF = 6;
            int kolonaIznosRezervenF      = 7;

            //int vkRedici = 4295;

            string[] nizaBrojNaStan = new string[120000];
            string[] nizaUlicaIme   = new string[120000];
            string[] nizaBrojUlica  = new string[120000];
            string[] nizaGrad       = new string[120000];
            string[] celosnaUlica   = new string[120000];

            Excel.Application oXL;
            Excel.Workbook    oWB;
            Excel.Worksheet   oSheet;

            oXL         = (Excel.Application)Marshal.GetActiveObject("Excel.Application");
            oXL.Visible = true;

            oWB    = (Excel.Workbook)oXL.ActiveWorkbook;
            oSheet = (Excel.Worksheet)oWB.ActiveSheet;

            int idStan = 0;
            int brojacRazlicniIznosiFakturaIzvod = 0;

            //pomini gi site redici i za sekoja uplatena faktura rasknizi
            for (int i = 0; i <= oSheet.Rows.Count; i++)
            {
                //se zema od bazata fakturata za koja se izvrsila uplata, taa faktura se porebaruva po br na faktura
                var queryIzdadeniFakturii = from fakturi in context.tblIzdadeniFakturis
                                            where fakturi.br_faktura == ((Microsoft.Office.Interop.Excel.Range)oSheet.Cells[i, 1]).Value2.ToString()
                                            select fakturi;

                //zemi ja fakturata po cii br na faktura e uplateno i zacuvaj ja taa faktura kako platena, namali go dulgot na sopstvenikot,
                foreach (var faktura in queryIzdadeniFakturii)
                {
                    if (faktura.iznos == int.Parse(((Microsoft.Office.Interop.Excel.Range)oSheet.Cells[i, 2]).Value2.ToString()))
                    {
                        //fakturata se zacuvuva kako platena
                        faktura.IsPlatena = true;
                        idStan            = faktura.IDStan;

                        //da se zemi stanot za koj se plaka za da se namali zaostanatiot dolg
                        var queryZaostanatDolg = from sopsstan in context.tblSopstvenici_Stans
                                                 where sopsstan.IDStan == idStan
                                                 select sopsstan;

                        foreach (tblSopstvenici_Stan sopstvenik in queryZaostanatDolg)
                        {
                            //zaostanatiot dolg na sopstvenikot se namaluva za iznosot koj e platen
                            sopstvenik.zaostanat_dolg -= int.Parse(faktura.iznos.ToString());
                        }

                        tblZgrada zgrada = new tblZgrada();
                        //da se zemi stanot za koj se plaka za da se namali zaostanatiot dolg
                        var queryIDZgrada = from zgr in context.tblZgradas
                                            join stan in context.tblStanovis on zgr.sifra equals stan.IDZgrada
                                            where stan.IDStan == idStan
                                            select zgr;

                        foreach (var zgr in queryIDZgrada)
                        {
                            zgrada = zgr;
                        }

                        //izvodot se zacuvuva vo bazata
                        tblIzvodi izvod = new tblIzvodi()
                        {
                            ID_zgrada               = int.Parse(zgrada.ID.ToString()),
                            ID_stanar               = idStan,
                            ID_dobavuvac            = 0,
                            banka                   = zgrada.ime_bankaEden,
                            smetka_banka            = zgrada.ziro_smetka_redoven_fond_Stopanska,
                            br_izvod                = int.Parse(txtBrIzvod.Text),
                            datum                   = txtDatumIzvod.Text,
                            uplati                  = true,
                            isplati                 = false,
                            uplata_avans            = false,
                            isUplataDoMaj           = false,
                            datum_faktura           = faktura.datum,
                            povikuvacki_broj        = faktura.br_faktura,
                            iznos                   = faktura.iznos,
                            vraboteno_lice          = ProFM.Form1.GlobalVariable.stringNajavenKorisnik,
                            vreme_napraveni_promeni = DateTime.Now.ToString(),
                        };

                        context.tblIzvodis.InsertOnSubmit(izvod);
                        //noviot zapis zacuvaj go vo bazata
                        context.SubmitChanges();

                        //fondovite(saldoto) na zgradata za odredeni stavki
                        var queryFondoviZgrada = from fond in context.ZgradaFondovis
                                                 where fond.idZgrada == zgrada.ID
                                                 select fond;

                        foreach (var fond in queryFondoviZgrada)
                        {
                            fond.fondDrugo        += faktura.drugo;
                            fond.fondHigena       += faktura.cistenje;
                            fond.fondKanalizacija += faktura.kanalizacija;
                            fond.fondLift         += faktura.lift;
                            fond.fondRF           += faktura.rezerven_fond;
                            fond.fondStruja       += faktura.struja;
                            fond.fondUpravitel    += faktura.upravitel;
                            fond.fondVoda         += faktura.voda;
                        }
                        //zacuvuvanje na izmenite za fondovite za zgradata vo bazata
                        context.SubmitChanges();
                    }
                    else
                    {
                        brojacRazlicniIznosiFakturaIzvod++;
                        ((Microsoft.Office.Interop.Excel.Range)oSheet.Rows[i]).Interior.Color = Color.Red;
                    }
                }
                if (brojacRazlicniIznosiFakturaIzvod == 0)
                {
                    MessageBox.Show("Уплатите од изводот се внесени", "Внесени уплати", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return;
                }
                else
                {
                    MessageBox.Show("Уплатите од изводот се внесени, провери во фајлот има " + brojacRazlicniIznosiFakturaIzvod + " нераскнижени уплати, тие уплати се со обележани со црвена боја", "Внесени уплати", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return;
                }
            }
        }
コード例 #3
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            //se zema izbraniot sopstvenik na stan so soodvetnite podatoci za nego
            var izbranStanar = (tblSopstvenici_Stan)cmbStanari.SelectedItem;

            //se zema selektiranata uplata so avans
            uplataSoAvansFaktura = (tblIzvodi)cmbIznosiUplatiAvans.SelectedItem;

            if (rbEdnaFaktura.Checked)
            {
                //se zema izbranata neplatena faktura so soodvetnite podatoci za nea
                var neplatenaFaktura = (tblIzdadeniFakturi)cmbZamenaNaFaktura.SelectedItem;

                //se pravi proverka dali iznosot koj e uplaten so avans soodvetstvuva na iznosot od neplatenata faktura
                //ako soodvetstvuvaat togas uplatata so avans preminva vo obicna uplata i nea i se dodeluva broj na fakturata koja bila izbrana
                //isto taka neplatenata faktura sega ke se smeta za platena i nema poveke da se lista
                //i fondovite na zgradata se zgolemuvaat za soodvetnite iznosi
                if (neplatenaFaktura.iznos == uplataSoAvansFaktura.iznos)
                {
                    //se zacuvuva deka uplatata so avans sega e smeta kako obicna uplata, ima podatoci zxa povikuvacki br na faktura i datum na faktura
                    uplataSoAvansFaktura.datum_faktura    = txtDatumFaktura.Text;
                    uplataSoAvansFaktura.povikuvacki_broj = neplatenaFaktura.br_faktura;
                    uplataSoAvansFaktura.uplata_avans     = false;
                    uplataSoAvansFaktura.uplati           = true;
                    context.SubmitChanges();

                    //se zacuvuva deka neplatenata faktura sega e platena
                    neplatenaFaktura.IsPlatena = true;
                    context.SubmitChanges();

                    //se zenmaat fondovite na zgradata i kaj niv se regulira uplatata
                    var queryFondoviZgrada = from fond in context.ZgradaFondovis
                                             where fond.idZgrada == intIdZgrada
                                             select fond;

                    foreach (var fond in queryFondoviZgrada)
                    {
                        fond.fondDrugo        += neplatenaFaktura.drugo;
                        fond.fondHigena       += neplatenaFaktura.cistenje;
                        fond.fondKanalizacija += neplatenaFaktura.kanalizacija;
                        fond.fondLift         += neplatenaFaktura.lift;
                        fond.fondRF           += neplatenaFaktura.rezerven_fond;
                        fond.fondStruja       += neplatenaFaktura.struja;
                        fond.fondUpravitel    += neplatenaFaktura.upravitel;
                        fond.fondVoda         += neplatenaFaktura.voda;
                    }
                    context.SubmitChanges();
                }
                else
                {
                    MessageBox.Show("Износот кој е изберен не соодветствува на износот од изберената фактура", "Износот не е точен", MessageBoxButtons.OK);
                    return;
                }
            }

            if (rbDveFakturi.Checked)
            {
                string[] datumOd = txtDatumFakturaOd.Text.Split('.');
                string[] datumDo = txtDatumFakturaDo.Text.Split('.');

                float sumaNaSiteFakturi = 0;

                if (listQueryNeplateniSmetki.Count() > 0)
                {
                    //zemanje na serkoja neplatena smetka od sopstvenikot na stanotn i proverka dlai taa se naoga vo utvrdewnot period za plakanje na avansot,
                    //ako se naoga ke treba da se utvrdi dali sumata na site smetki koi se naogaat vo toj period e sodvetna na iznosot od avansot
                    foreach (var smetka in listQueryNeplateniSmetki)
                    {
                        //zemanje na datumot na smetkata, mesec i godina soodvetno vo niza
                        string[] datumSmetka = smetka.datum.Split('.');

                        //proverka na godinata
                        if (int.Parse(datumSmetka[1].ToString()) >= int.Parse(datumOd[1].ToString()) && int.Parse(datumSmetka[1].ToString()) <= int.Parse(datumDo[1].ToString()))
                        {
                            if (int.Parse(datumSmetka[1].ToString()) == int.Parse(datumOd[1].ToString()) && int.Parse(datumSmetka[1].ToString()) == int.Parse(datumDo[1].ToString()))
                            {
                                //proverka na mesecot
                                if (int.Parse(datumSmetka[0].ToString()) >= int.Parse(datumOd[0].ToString()) && int.Parse(datumSmetka[0].ToString()) <= int.Parse(datumDo[0].ToString()))
                                {
                                    //iznosot na neplatenata smetka koja se naoga vo periodot vo koj se plakaat smetkite
                                    //se dodava na promenlivata suma na site fakturi, so cel podocna da se vidi dali taa suma soodvetstvuva na sumata na uplateniot avans
                                    sumaNaSiteFakturi += float.Parse(smetka.iznos.ToString());
                                }
                            }
                            else if (int.Parse(datumSmetka[1].ToString()) == int.Parse(datumOd[1].ToString()) && int.Parse(datumSmetka[1].ToString()) != int.Parse(datumDo[1].ToString()) && int.Parse(datumSmetka[0].ToString()) >= int.Parse(datumOd[0].ToString()))
                            {
                                //iznosot na neplatenata smetka koja se naoga vo periodot vo koj se plakaat smetkite
                                //se dodava na promenlivata suma na site fakturi, so cel podocna da se vidi dali taa suma soodvetstvuva na sumata na uplateniot avans
                                sumaNaSiteFakturi += float.Parse(smetka.iznos.ToString());
                            }
                            else if (int.Parse(datumSmetka[1].ToString()) != int.Parse(datumOd[1].ToString()) && int.Parse(datumSmetka[1].ToString()) == int.Parse(datumDo[1].ToString()) && int.Parse(datumSmetka[0].ToString()) <= int.Parse(datumDo[0].ToString()))
                            {
                                //iznosot na neplatenata smetka koja se naoga vo periodot vo koj se plakaat smetkite
                                //se dodava na promenlivata suma na site fakturi, so cel podocna da se vidi dali taa suma soodvetstvuva na sumata na uplateniot avans
                                sumaNaSiteFakturi += float.Parse(smetka.iznos.ToString());
                            }
                            else if (int.Parse(datumSmetka[1].ToString()) > int.Parse(datumOd[1].ToString()) && int.Parse(datumSmetka[1].ToString()) < int.Parse(datumDo[1].ToString()))
                            {
                                //iznosot na neplatenata smetka koja se naoga vo periodot vo koj se plakaat smetkite
                                //se dodava na promenlivata suma na site fakturi, so cel podocna da se vidi dali taa suma soodvetstvuva na sumata na uplateniot avans
                                sumaNaSiteFakturi += float.Parse(smetka.iznos.ToString());
                            }
                        }
                    }

                    if (sumaNaSiteFakturi == uplataSoAvansFaktura.iznos)
                    {
                        ZatvoranjeNeplateniSmetki();
                    }
                    else if (sumaNaSiteFakturi < uplataSoAvansFaktura.iznos)
                    {
                        float razlika = float.Parse((uplataSoAvansFaktura.iznos - sumaNaSiteFakturi).ToString());

                        DialogResult rezultatOdMessageBox = MessageBox.Show("Постои разлика во износите на неплатените фактури во избраниот период и уплатеното во авансот, уплатениот аванс е поголем за " + razlika + " МКД. Ако тоа е во ред притиснете ОК и ќе биде прокнижено, а разликата ќе биде занемарена, во спротивно притиснете cancel", "Разлика во износите", MessageBoxButtons.OKCancel);
                        if (rezultatOdMessageBox == System.Windows.Forms.DialogResult.OK)
                        {
                            ZatvoranjeNeplateniSmetki();
                        }
                        else if (rezultatOdMessageBox == System.Windows.Forms.DialogResult.Cancel)
                        {
                            DialogResult rezuлOdMessageBox = MessageBox.Show("Ако притисните ОК разликата од " + razlika + " МКД ќе биде прокнижена како плаќање на фактура пред 2014, според износот на фактурата од 01.2014, додека ако притисните cancel разликата ќе биде занемарена", "Книжење на разлика во износите", MessageBoxButtons.OKCancel);
                            if (rezuлOdMessageBox == System.Windows.Forms.DialogResult.OK)
                            {
                                var stan = (tblSopstvenici_Stan)cmbStanari.SelectedItem;

                                var querySmetkaPrviMesec2014 = from smetka in context.tblIzdadeniFakturis
                                                               where smetka.datum == "01.2014" && smetka.IDStan == stan.IDStan
                                                               select smetka;

                                //se zenmaat fondovite na zgradata i kaj niv se regulira uplatata
                                var queryFondoviZgrada = from fond in context.ZgradaFondovis
                                                         where fond.idZgrada == intIdZgrada
                                                         select fond;

                                if (querySmetkaPrviMesec2014.Count() > 0)
                                {
                                    foreach (var smetka in querySmetkaPrviMesec2014)
                                    {
                                        //ako razlikata e isto so eden iznos na smetka, toj iznos ke se raspredeli po fondovi
                                        if (smetka.iznos == razlika)
                                        {
                                            ZatvoranjeNeplateniSmetki();

                                            //vnesuvanje na vrednosta na struja voda itn, vo fondovite
                                            foreach (var fond in queryFondoviZgrada)
                                            {
                                                fond.fondDrugo        += smetka.drugo;
                                                fond.fondHigena       += smetka.cistenje;
                                                fond.fondKanalizacija += smetka.kanalizacija;
                                                fond.fondLift         += smetka.lift;
                                                fond.fondRF           += smetka.rezerven_fond;
                                                fond.fondStruja       += smetka.struja;
                                                fond.fondUpravitel    += smetka.upravitel;
                                                fond.fondVoda         += smetka.voda;
                                            }
                                            context.SubmitChanges();
                                        }
                                        //ako razlikata e pogolema od eden iznos na smetka, ke se proveri toj iznos na kolku fakturi odgovara i ke se raspredeli po fondovi
                                        else if (smetka.iznos < razlika)
                                        {
                                            //promenliva koja ke zacuva kolku smetki od pred 2014 ke se raspredelat po fondovi
                                            int kolkuFakturi = int.Parse((razlika / smetka.iznos).ToString());

                                            //ako ima poveke od edna faktura koja treba da s eraspredeli po fondovi, togas se raspredelva vo ovoj ciklus
                                            for (int i = 0; i < kolkuFakturi; i++)
                                            {
                                                //vnesuvanje na vrednosta na struja voda itn, vo fondovite
                                                foreach (var fond in queryFondoviZgrada)
                                                {
                                                    fond.fondDrugo        += smetka.drugo;
                                                    fond.fondHigena       += smetka.cistenje;
                                                    fond.fondKanalizacija += smetka.kanalizacija;
                                                    fond.fondLift         += smetka.lift;
                                                    fond.fondRF           += smetka.rezerven_fond;
                                                    fond.fondStruja       += smetka.struja;
                                                    fond.fondUpravitel    += smetka.upravitel;
                                                    fond.fondVoda         += smetka.voda;
                                                }
                                                context.SubmitChanges();
                                            }

                                            //utvrduvanje na nova razlika vo cenite
                                            float novaRazlika = float.Parse((razlika - (kolkuFakturi * smetka.iznos)).ToString());

                                            if (novaRazlika > 0)
                                            {
                                                MessageBox.Show("Појавена е нова разлика во износ од " + novaRazlika + " МКД. која мора да биде игнорирана.", "Игнорирање на разлика", MessageBoxButtons.OK);
                                                return;
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Немате издадено фактура за први месец за соодветниот станар, при што не можи да се прокнижи разликата", "Неможе да се прикнижи разликата", MessageBoxButtons.OK);
                                    return;
                                }
                            }
                            else
                            {
                                return;
                            }
                        }
                    }
                    else if (sumaNaSiteFakturi > uplataSoAvansFaktura.iznos)
                    {
                        float razlika = float.Parse((sumaNaSiteFakturi - uplataSoAvansFaktura.iznos).ToString());
                        MessageBox.Show("Постои разлика во износите на неплатените фактури во избраниот период и уплатеното во авансот, сумата на неплатените сметки е поголема за " + razlika + " МКД. Сменете го периодот за кој треба да се плати и обидете се повторно", "Разлика во износите", MessageBoxButtons.OKCancel);
                    }
                }
                else
                {
                    MessageBox.Show("Сите сметки му се платени на избраниот сопственик на стан", "Платени сметки", MessageBoxButtons.OK);
                    return;
                }
            }

            //cistenje na vnesenite podatoci
            txtDatumFaktura.Text   = "";
            txtDatumIzvod.Text     = "";
            txtDatumFakturaDo.Text = "";
            txtDatumFakturaOd.Text = "";

            //btnPrebaraj_Click(sender, e);
            cmbZamenaNaFaktura.DataSource   = null;
            cmbIznosiUplatiAvans.DataSource = null;


            lblDatumFaktura.Visible    = false;
            lblSeZamenuvaSo.Visible    = false;
            txtDatumFaktura.Visible    = false;
            cmbZamenaNaFaktura.Visible = false;

            lblDatumFakturaDo.Visible = false;
            lblDatumFakturaOd.Visible = false;
            txtDatumFakturaDo.Visible = false;
            txtDatumFakturaOd.Visible = false;

            rbDveFakturi.Checked  = false;
            rbEdnaFaktura.Checked = false;
        }