private void btnPrebaraj_Click(object sender, EventArgs e) { //zemanje na vrednostite od selektiranata zgrada var izbranaZgrada = (Zgrada)cmbZgrada.SelectedItem; //zacuvuvanje na IDZgrada int intIdZgrada = izbranaZgrada.ID; //zemanje na site izdadeni fakturi za cistenje za izbranata zgrada var queryIzdadeniFakturiCistenje = from izdadeniFakturi in context.tblIzdadeniFakturiZaCistenjes where izdadeniFakturi.IDZgrada == intIdZgrada select izdadeniFakturi; //zemanje na site izdadeni fakturi za cistenje za izbranata zgrada var queryIzdadeniFakturiUpravuvanje = from izdadeniFakturi in context.tblIzdadeniFakturiZaUpravuvanjes where izdadeniFakturi.IDZgrada == intIdZgrada select izdadeniFakturi; //zemi gi site isplati po fakturi od zgradata kon RS Bobi var queryIzvodi = from izvod in context.tblIzvodis where izvod.ID_zgrada == intIdZgrada & izvod.ID_dobavuvac == 1 select izvod; //zemi gi site isplati po fakturi od zgradata kon RS Bobi var queryZaostanatDolgSaldo = from dolg in context.tblZaostanatDolg_ZgradaKonUpravitels where dolg.ID_Zgrada == intIdZgrada select dolg; //kreiranje na lista od transakcii, vo ovaa lista ke bidat dodadeni siteizdadeni fakturi i izvodi za stanarot po datum listTransakcii = new List <Transakcija>(); int brojac = 0; //zemanje na datumite "od" i "do" koj ke se prebaruva string datumOdKojKeSePrebaruva = txtOdDatum.Text; string datumDoKojKeSePrebaruva = txtDoDatum.Text; //dodavanje na site izdadeni fakturi vo listata na transakcii foreach (tblZaostanatDolg_ZgradaKonUpravitel zaostanatDolg in queryZaostanatDolgSaldo) { Transakcija t = new Transakcija() { datum = "31.12.2013", transakcija = "претходна состојба ", dolzi = 0, pobaruva = 0, saldo = Convert.ToInt32(zaostanatDolg.vkupenZaostanatDolg2013) }; listTransakcii.Add(t); } //dodavanje na site izdadeni fakturi za cistenje vo listata na transakcii foreach (tblIzdadeniFakturiZaCistenje izdfakturi in queryIzdadeniFakturiCistenje) { Transakcija t = new Transakcija(); //float kj = float.Parse(izdfakturi.zaostanatDolg.ToString()); //zemanje na datumot na koj e izdadenja fakturata string[] datum_izdFaktura = izdfakturi.datum_izdavanje.Split('.'); //ova ke bidi koga ke se prebaruva za naredni godini i ko ke se zema od prvata izdadena faktura vo godinata zaostanatiot dolg, kako prethodna sostojba /*string[] datum_PrethodnaSostojba = izdfakturi.datum.Split('.'); * string datumDolg = ""; * * if (int.Parse(datum_izdFaktura[0]) < 10) * { * switch (int.Parse(datum_izdFaktura[0])) * { * case 1: * case 3: * case 5: * case 7: * case 8: * case 10: * case 12: * datumDolg = "31.0" + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; * break; * case 4: * case 6: * case 9: * case 11: * datumDolg = "30.0" + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; * break; * case 2: * datumDolg = "28.0" + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; * break; * } * } * * else * { * switch (int.Parse(datum_izdFaktura[1])) * { * case 1: * case 3: * case 5: * case 7: * case 8: * case 10: * case 12: * datumDolg = "31." + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; * break; * case 4: * case 6: * case 9: * case 11: * datumDolg = "30." + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; * break; * case 2: * datumDolg = "28." + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; * break; * } * }*/ if (int.Parse(datum_izdFaktura[2].ToString()) >= int.Parse(datumOdKojKeSePrebaruva.ToString()) && int.Parse(datum_izdFaktura[2].ToString()) <= int.Parse(datumDoKojKeSePrebaruva.ToString())) { /*if (brojac == 0) * { * //t = new Transakcija() { datum = datumDolg, transakcija = "претходна состојба ", dolzi = 0, pobaruva = 0, saldo = float.Parse(izdfakturi.zaostanatDolg.ToString()) }; * //listTransakcii.Add(t); * * t = new Transakcija() { datum = izdfakturi.datum_izdavanje, transakcija = "фактура број " + izdfakturi.br_faktura, dolzi = float.Parse(izdfakturi.vkupno_iznos.ToString()), pobaruva = 0 }; * listTransakcii.Add(t); * } * else * {*/ t = new Transakcija() { datum = izdfakturi.datum_izdavanje, transakcija = "фактура број " + izdfakturi.br_faktura, dolzi = Convert.ToInt32(izdfakturi.vkupno_iznos), pobaruva = 0 }; //listTransakciiIzdFakturi.Add(t); listTransakcii.Add(t); //} //brojac++; } } //dodavanje na site izdadeni fakturi za upravuvanje vo listata na transakcii foreach (tblIzdadeniFakturiZaUpravuvanje izdfakturi in queryIzdadeniFakturiUpravuvanje) { Transakcija t = new Transakcija(); //float kj = float.Parse(izdfakturi.zaostanatDolg.ToString()); //zemanje na datumot na koj e izdadenja fakturata string[] datum_izdFaktura = izdfakturi.datum_izdavanje.Split('.'); //ova ke bidi koga ke se prebaruva za naredni godini i ko ke se zema od prvata izdadena faktura vo godinata zaostanatiot dolg, kako prethodna sostojba /*string[] datum_PrethodnaSostojba = izdfakturi.datum.Split('.'); * string datumDolg = ""; * * if (int.Parse(datum_izdFaktura[0]) < 10) * { * switch (int.Parse(datum_izdFaktura[0])) * { * case 1: * case 3: * case 5: * case 7: * case 8: * case 10: * case 12: * datumDolg = "31.0" + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; * break; * case 4: * case 6: * case 9: * case 11: * datumDolg = "30.0" + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; * break; * case 2: * datumDolg = "28.0" + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; * break; * } * } * * else * { * switch (int.Parse(datum_izdFaktura[1])) * { * case 1: * case 3: * case 5: * case 7: * case 8: * case 10: * case 12: * datumDolg = "31." + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; * break; * case 4: * case 6: * case 9: * case 11: * datumDolg = "30." + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; * break; * case 2: * datumDolg = "28." + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; * break; * } * }*/ if (int.Parse(datum_izdFaktura[2].ToString()) >= int.Parse(datumOdKojKeSePrebaruva.ToString()) && int.Parse(datum_izdFaktura[2].ToString()) <= int.Parse(datumDoKojKeSePrebaruva.ToString())) { /*if (brojac == 0) * { * //t = new Transakcija() { datum = datumDolg, transakcija = "претходна состојба ", dolzi = 0, pobaruva = 0, saldo = float.Parse(izdfakturi.zaostanatDolg.ToString()) }; * //listTransakcii.Add(t); * * t = new Transakcija() { datum = izdfakturi.datum_izdavanje, transakcija = "фактура број " + izdfakturi.br_faktura, dolzi = float.Parse(izdfakturi.vkupno_iznos.ToString()), pobaruva = 0 }; * listTransakcii.Add(t); * } * else * {*/ t = new Transakcija() { datum = izdfakturi.datum_izdavanje, transakcija = "фактура број " + izdfakturi.br_faktura, dolzi = Convert.ToInt32(izdfakturi.vkupno_iznos), pobaruva = 0 }; //listTransakciiIzdFakturi.Add(t); listTransakcii.Add(t); //} //brojac++; } } //dodavanje na site izvodi vo listata na transakcii foreach (tblIzvodi izvod in queryIzvodi) { Transakcija transakcija = new Transakcija(); //zemanje na datumot na koj e izdadenja fakturata string[] datum_izvod = izvod.datum.Split('.'); if (int.Parse(datum_izvod[2].ToString()) >= int.Parse(datumOdKojKeSePrebaruva.ToString()) && int.Parse(datum_izvod[2].ToString()) <= int.Parse(datumDoKojKeSePrebaruva.ToString())) { transakcija = new Transakcija() { datum = izvod.datum, transakcija = "уплата по повикувачки број" + izvod.povikuvacki_broj, dolzi = 0, pobaruva = Convert.ToInt32(izvod.iznos) }; //listTransakciiIzvodi.Add(t); listTransakcii.Add(transakcija); } } for (int i = 0; i < listTransakcii.Count; i++) { string[] datumTransakcijaEden = listTransakcii[i].datum.Split('.'); for (int j = i + 1; j < listTransakcii.Count; j++) { string[] datumTransakcijaDva = listTransakcii[j].datum.Split('.'); //proverka dali godinata na izdadena faktura i izvod e ista if (int.Parse(datumTransakcijaEden[2].ToString()) == int.Parse(datumTransakcijaDva[2].ToString())) { //proverka dali mesecot na izdadena faktura i izvod e ist if (int.Parse(datumTransakcijaEden[1].ToString()) == int.Parse(datumTransakcijaDva[1].ToString())) { //proverka dali denot na izdadena faktura i izvod e ist if (int.Parse(datumTransakcijaEden[0].ToString()) > int.Parse(datumTransakcijaDva[0].ToString())) { Transakcija transakcija = new Transakcija(); datumTransakcijaEden = listTransakcii[j].datum.Split('.'); transakcija = listTransakcii[i]; listTransakcii[i] = listTransakcii[j]; listTransakcii[j] = transakcija; } } else if (int.Parse(datumTransakcijaEden[1].ToString()) > int.Parse(datumTransakcijaDva[1].ToString())) { Transakcija transakcija = new Transakcija(); datumTransakcijaEden = listTransakcii[j].datum.Split('.'); transakcija = listTransakcii[i]; listTransakcii[i] = listTransakcii[j]; listTransakcii[j] = transakcija; } } else if (int.Parse(datumTransakcijaEden[2].ToString()) > int.Parse(datumTransakcijaDva[2].ToString())) { Transakcija transakcija = new Transakcija(); datumTransakcijaEden = listTransakcii[j].datum.Split('.'); transakcija = listTransakcii[i]; listTransakcii[i] = listTransakcii[j]; listTransakcii[j] = transakcija; } } } float iznos = listTransakcii[0].saldo; for (int i = 1; i < listTransakcii.Count; i++) { listTransakcii[i].saldo = Convert.ToInt32(iznos + listTransakcii[i].dolzi - listTransakcii[i].pobaruva); iznos = listTransakcii[i].saldo; } dt = new DataTable(); dt.Columns.Add("датум"); dt.Columns.Add("трансакција"); dt.Columns.Add("должи"); dt.Columns.Add("побарува"); dt.Columns.Add("салдо"); for (int br = 0; br < listTransakcii.Count(); br++) { dt.Rows.Add(listTransakcii[br].datum, listTransakcii[br].transakcija, listTransakcii[br].dolzi, listTransakcii[br].pobaruva, listTransakcii[br].saldo); } //kreiranje na bindin source so koj ke se napolni gridot za odluki BindingSource b = new BindingSource(); //zemanje na odlukite koi se doneseni za selektiranata zgrada b.DataSource = listTransakcii; //polnenje na gridot Stanar so prethodno zemenite stanari grdTransakcii.DataSource = b;//b; }
private void btnPrebaraj_Click(object sender, EventArgs e) { int z; if (txtOdDatum.Text == "" || txtDoDatum.Text == "" || !int.TryParse(txtOdDatum.Text, out z) || !int.TryParse(txtDoDatum.Text, out z)) { MessageBox.Show("Внесете период во кој пребарувате во години, пр. од 2014 до 2015", "Немате внесено период", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (int.Parse(txtOdDatum.Text) > int.Parse(txtDoDatum.Text)) { MessageBox.Show("Годината од која се пребарува не можи да биди поголема од годината до која се пребарува", "Внесен е погрешен период", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //zemanje na vrednostite od selektiranata zgrada var izbranStanar = (tblSopstvenici_Stan)cmbStanari.SelectedItem; //zacuvuvanje na IDZgrada int intIdStan = izbranStanar.IDStan; //zemanje na site izdadeni fakturi za izbraniot stanar var queryIzdadeniFakturi = from izdadeniFakturi in context.tblIzdadeniFakturis where izdadeniFakturi.IDStan == intIdStan select izdadeniFakturi; //zemi gi site uplati od stanarot var queryIzvodi = from izvod in context.tblIzvodis where izvod.ID_stanar == intIdStan select izvod; //kreiranje na lista od transakcii, vo ovaa lista ke bidat dodadeni site izdadeni fakturi List <Transakcija> listTransakciiIzdFakturi = new List <Transakcija>(); //kreiranje na lista od transakcii, vo ovaa lista ke bidat dodadeni site izvodi za stanarot po datum List <Transakcija> listTransakciiIzvodi = new List <Transakcija>(); //kreiranje na lista od transakcii, vo ovaa lista ke bidat dodadeni siteizdadeni fakturi i izvodi za stanarot po datum listTransakcii = new List <Transakcija>(); int brojac = 0; //zemanje na datumite "od" i "do" koj ke se prebaruva string datumOdKojKeSePrebaruva = txtOdDatum.Text; string datumDoKojKeSePrebaruva = txtDoDatum.Text; //dodavanje na site izdadeni fakturi vo listata na transakcii foreach (tblIzdadeniFakturi izdfakturi in queryIzdadeniFakturi) { Transakcija t = new Transakcija(); float kj = float.Parse(izdfakturi.zaostanatDolg.ToString()); //zemanje na datumot na koj e izdadenja fakturata string[] datum_izdFaktura = izdfakturi.datum_izdavanje.Split('.'); string[] datum_PrethodnaSostojba = izdfakturi.datum.Split('.'); string datumDolg = ""; if (int.Parse(datum_izdFaktura[0]) < 10) { switch (int.Parse(datum_izdFaktura[0])) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: datumDolg = "31.0" + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; break; case 4: case 6: case 9: case 11: datumDolg = "30.0" + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; break; case 2: datumDolg = "28.0" + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; break; } } else { switch (int.Parse(datum_izdFaktura[1])) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: datumDolg = "31." + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; break; case 4: case 6: case 9: case 11: datumDolg = "30." + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; break; case 2: datumDolg = "28." + (int.Parse(datum_PrethodnaSostojba[0]) - 1).ToString() + "." + datum_izdFaktura[2]; break; } } if (int.Parse(datum_izdFaktura[2].ToString()) >= int.Parse(datumOdKojKeSePrebaruva.ToString()) && int.Parse(datum_izdFaktura[2].ToString()) <= int.Parse(datumDoKojKeSePrebaruva.ToString())) { if (izdfakturi.datum_izdavanje == "05.01.2014") { t = new Transakcija() { datum = "01.01.2014", transakcija = "претходна состојба ", dolzi = 0, pobaruva = 0, saldo = int.Parse(izdfakturi.zaostanatDolg.ToString()) }; listTransakcii.Add(t); } if (brojac == 0) { //t = new Transakcija() { datum = datumDolg, transakcija = "претходна состојба ", dolzi = 0, pobaruva = 0, saldo = int.Parse(izdfakturi.zaostanatDolg.ToString()) }; //listTransakcii.Add(t); t = new Transakcija() { datum = izdfakturi.datum_izdavanje, transakcija = "фактура број " + izdfakturi.br_faktura, dolzi = int.Parse(izdfakturi.iznos.ToString()), pobaruva = 0 }; listTransakcii.Add(t); } else { t = new Transakcija() { datum = izdfakturi.datum_izdavanje, transakcija = "фактура број " + izdfakturi.br_faktura, dolzi = int.Parse(izdfakturi.iznos.ToString()), pobaruva = 0 }; //listTransakciiIzdFakturi.Add(t); listTransakcii.Add(t); } brojac++; } } //dodavanje na site izvodi vo listata na transakcii foreach (tblIzvodi izvod in queryIzvodi) { Transakcija transakcija = new Transakcija(); //zemanje na datumot na koj e izdadenja fakturata string [] datum_izvod = izvod.datum.Split('.'); if (int.Parse(datum_izvod[2].ToString()) >= int.Parse(datumOdKojKeSePrebaruva.ToString()) && int.Parse(datum_izvod[2].ToString()) <= int.Parse(datumDoKojKeSePrebaruva.ToString())) { if (bool.Parse(izvod.uplata_avans.ToString())) { transakcija = new Transakcija() { datum = izvod.datum, transakcija = "уплата по долг", dolzi = 0, pobaruva = int.Parse(izvod.iznos.ToString()) }; } if (bool.Parse(izvod.uplati.ToString())) { transakcija = new Transakcija() { datum = izvod.datum, transakcija = "уплата по повикувачки број" + izvod.povikuvacki_broj, dolzi = 0, pobaruva = int.Parse(izvod.iznos.ToString()) }; } //listTransakciiIzvodi.Add(t); listTransakcii.Add(transakcija); } } for (int i = 0; i < listTransakcii.Count; i++) { string[] datumTransakcijaEden = listTransakcii[i].datum.Split('.'); for (int j = i + 1; j < listTransakcii.Count; j++) { string[] datumTransakcijaDva = listTransakcii[j].datum.Split('.'); //proverka dali godinata na izdadena faktura i izvod e ista if (int.Parse(datumTransakcijaEden[2].ToString()) == int.Parse(datumTransakcijaDva[2].ToString())) { //proverka dali mesecot na izdadena faktura i izvod e ist if (int.Parse(datumTransakcijaEden[1].ToString()) == int.Parse(datumTransakcijaDva[1].ToString())) { //proverka dali denot na izdadena faktura i izvod e ist if (int.Parse(datumTransakcijaEden[0].ToString()) > int.Parse(datumTransakcijaDva[0].ToString())) { Transakcija transakcija = new Transakcija(); datumTransakcijaEden = listTransakcii[j].datum.Split('.'); transakcija = listTransakcii[i]; listTransakcii[i] = listTransakcii[j]; listTransakcii[j] = transakcija; } } else if (int.Parse(datumTransakcijaEden[1].ToString()) > int.Parse(datumTransakcijaDva[1].ToString())) { Transakcija transakcija = new Transakcija(); datumTransakcijaEden = listTransakcii[j].datum.Split('.'); transakcija = listTransakcii[i]; listTransakcii[i] = listTransakcii[j]; listTransakcii[j] = transakcija; } } else if (int.Parse(datumTransakcijaEden[2].ToString()) > int.Parse(datumTransakcijaDva[2].ToString())) { Transakcija transakcija = new Transakcija(); datumTransakcijaEden = listTransakcii[j].datum.Split('.'); transakcija = listTransakcii[i]; listTransakcii[i] = listTransakcii[j]; listTransakcii[j] = transakcija; } } } float iznos = 0; if (listTransakcii.Count > 0) { iznos = listTransakcii[0].saldo; } else { MessageBox.Show("Не постои финансиска картица за овој станар", "Финансиска картица", MessageBoxButtons.OK); return; } for (int i = 1; i < listTransakcii.Count; i++) { listTransakcii[i].saldo = int.Parse((iznos + listTransakcii[i].dolzi - listTransakcii[i].pobaruva).ToString()); iznos = listTransakcii[i].saldo; } dt = new DataTable(); dt.Columns.Add("датум"); dt.Columns.Add("трансакција"); dt.Columns.Add("должи"); dt.Columns.Add("побарува"); dt.Columns.Add("салдо"); for (int br = 0; br < listTransakcii.Count(); br++) { dt.Rows.Add(listTransakcii[br].datum, listTransakcii[br].transakcija, listTransakcii[br].dolzi, listTransakcii[br].pobaruva, listTransakcii[br].saldo); } //kreiranje na bindin source so koj ke se napolni gridot za odluki BindingSource b = new BindingSource(); //zemanje na odlukite koi se doneseni za selektiranata zgrada b.DataSource = listTransakcii; //polnenje na gridot Stanar so prethodno zemenite stanari grdTransakcii.DataSource = b;//b; }