private void addParaUżytków(Działka staraDziałka, Działka nowaDziałka, Klasoużytek użytek)
        {
            Row row         = _table.InsertRow(_templateRow);
            var staryUżytek = staraDziałka != null?staraDziałka.SzukajUżytku(użytek) : null;

            if (staryUżytek != null)
            {
                row.ofu(staryUżytek.ofu()).ozu(staryUżytek.ozu()).ozk(staryUżytek.ozk())
                .uz(staryUżytek.powierzchnia().toString(!staraDziałka.JestDoAra));
            }
            var nowyUżytek = nowaDziałka != null?nowaDziałka.SzukajUżytku(użytek) : null;

            if (nowyUżytek != null)
            {
                row.ofuNowy(nowyUżytek.ofu()).ozuNowy(nowyUżytek.ozu()).ozkNowy(nowyUżytek.ozk())
                .uzNowy(nowyUżytek.powierzchnia().toString(!nowaDziałka.JestDoAra));
            }
            if (staryUżytek != null && nowyUżytek != null)
            {
                row.uzDelta(roznica(staryUżytek.powierzchnia(), nowyUżytek.powierzchnia()));
            }
            else
            {
                row.uzDelta("-");
            }
            row.ukryjZmienne();
        }
        void addUsunięta(Działka staraDziałka)
        {
            Row row = _table.InsertRow(_templateRow);

            row.lp(_lp++);
            if (staraDziałka.jr != null)
            {
                row.jrg(staraDziałka.jr.numer());
            }
            else
            {
                row.jrg("Brak JR");
            }
            row.kw(staraDziałka.kw);
            row.id(staraDziałka.Id)
            .nr(staraDziałka.Id.NumerDziałki())
            .pow(staraDziałka.PowierzchniaPoLudzku);
            row.idNowy(staraDziałka.Id)
            .nrNowy(staraDziałka.Id.NumerDziałki())
            .powNowy(string.Empty);
            row.wl(createWłaściciele(staraDziałka) + createWładający(staraDziałka));
            row.ukryjZmienne();
            var użytki = staraDziałka;

            foreach (var użytek in użytki)
            {
                addParaUżytków(staraDziałka, null, użytek);
            }
            addRazem(staraDziałka, null);
            scalajKolumny(użytki.Count());
            addPusty();
        }
        void addDodana(Działka nowaDziałka)
        {
            Row row = _table.InsertRow(_templateRow);

            row.lp(_lp++);
            row.jrg(nowaDziałka.jr.numer());
            row.kw(nowaDziałka.kw);
            row
            .id(nowaDziałka.Id)
            .nr(nowaDziałka.Id.NumerDziałki())
            .pow(string.Empty);
            row.idNowy(nowaDziałka.Id)
            .nrNowy(nowaDziałka.Id.NumerDziałki())
            .powNowy(nowaDziałka.PowierzchniaPoLudzku);
            row.wl(createWłaściciele(nowaDziałka) + createWładający(nowaDziałka));
            row.ukryjZmienne();
            var użytki = nowaDziałka;

            foreach (var użytek in użytki)
            {
                addParaUżytków(null, nowaDziałka, użytek);
            }
            addRazem(null, nowaDziałka);
            scalajKolumny(użytki.Count());
            addPusty();
        }
        Działka dodajIstniejącaPara(Działka staraDziałka, Działka nowaDziałka)
        {
            Row row = _table.InsertRow(_templateRow);

            row.lp(_lp++);
            row.jrg(nowaDziałka.jr.numer());
            row.kw(nowaDziałka.kw);
            row.id(staraDziałka.Id)
            .nr(staraDziałka.Id.NumerDziałki())
            .pow(staraDziałka.PowierzchniaPoLudzku);
            row.idNowy(nowaDziałka.Id)
            .nrNowy(nowaDziałka.Id.NumerDziałki())
            .powNowy(nowaDziałka.PowierzchniaPoLudzku);
            row.uzDelta(roznica(staraDziałka.Powierzchnia, nowaDziałka.Powierzchnia, string.Empty));
            roznicaWarn(staraDziałka.PowierzchniaUżytków, nowaDziałka.PowierzchniaUżytków, "różnica powierzchni działki: " + staraDziałka.Id);
            row.wl(createWłaściciele(staraDziałka, nowaDziałka) + createWładający(staraDziałka, nowaDziałka));
            row.ukryjZmienne();
            var użytki = staraDziałka.UnionUżytki(nowaDziałka);

            foreach (var użytek in użytki)
            {
                addParaUżytków(staraDziałka, nowaDziałka, użytek);
            }
            addRazem(staraDziałka, nowaDziałka);
            scalajKolumny(użytki.Count());
            addPusty();
            return(nowaDziałka);
        }
Beispiel #5
0
        public void test_czy_rozliczenie_doda_działkę_bez_użytków()
        {
            var rozliczenie = new Rozliczenie();
            var działka     = new Działka(id, powierzchnia);

            rozliczenie.DodajDziałkę(działka);
            Assert.Fail();
        }
        string createWłaściciele(Działka działka)
        {
            if (działka.jr == null)
            {
                return("Właściciele: brak danych\n");
            }
            HashSet <string> wlasciciele = new HashSet <string>(from podmiot in działka.jr.Właściciele select podmiot.ToString());

            return("Właściciele:\n" + string.Join(";\n", wlasciciele));
        }
        string createWłaściciele(Działka staraDzialka, Działka nowaDzialka)
        {
            HashSet <string> wlasciciele = new HashSet <string>(from podmiot in nowaDzialka.jr.Właściciele select podmiot.ToString());

            if (staraDzialka.jr != null)
            {
                wlasciciele.UnionWith(from podmiot in staraDzialka.jr.Właściciele select podmiot.ToString());
            }
            return("Właściciele:\n" + string.Join(";\n", wlasciciele));
        }
Beispiel #8
0
        public void test_czy_rozliczenie_doda_drugi_raz_taką_samą_działkę()
        {
            var rozliczenie = new Rozliczenie();
            var działka     = new Działka(id, powierzchnia);
            var użytek      = new Klasoużytek(ofu: "", ozu: "", ozk: "", powierzchnia: powierzchnia);

            działka.DodajUżytek(użytek);
            rozliczenie.DodajDziałkę(działka);
            rozliczenie.DodajDziałkę(działka);
            Assert.Fail();
        }
Beispiel #9
0
        public void test_czy_rozliczenie_zawiera_dodaną_działkę()
        {
            var rozliczenie = new Rozliczenie();
            var działka     = new Działka(id, powierzchnia);
            var użytek      = new Klasoużytek(ofu: "", ozu: "", ozk: "", powierzchnia: powierzchnia);

            działka.DodajUżytek(użytek);
            rozliczenie.DodajDziałkę(działka);
            var szukanaDziałka = rozliczenie.SzukajIdDziałki(id);

            Assert.IsNotNull(szukanaDziałka);
            Assert.AreSame(działka, szukanaDziałka);
        }
        private IEnumerable <Działka> tylkoDodane(IEnumerable <IdentyfikatorDziałki> działki)
        {
            var posortowaneDziałki = działki.OrderBy(id => id.NumerDziałki(), new NumerComparer());

            foreach (var id in posortowaneDziałki)
            {
                Działka staraDziałka = _staryStan.SzukajIdDziałki(id);
                Działka nowaDziałka  = _nowyStan.SzukajIdDziałki(id);
                if (staraDziałka == null && nowaDziałka != null)
                {
                    yield return(nowaDziałka);
                }
            }
        }
        string createWładający(Działka działka)
        {
            if (działka.jr == null)
            {
                return("\nWładający: brak danych\n");
            }
            HashSet <string> wladajacy     = new HashSet <string>(from podmiot in działka.jr.Władający select podmiot.ToString());
            string           joinWladajacy = string.Join(";\n", wladajacy);

            if (string.IsNullOrEmpty(joinWladajacy))
            {
                return(string.Empty);
            }
            return("\nWładający:\n" + joinWladajacy);
        }
        void podstawNagłówek(Działka ostatniaDziałka)
        {
            if (ostatniaDziałka == null)
            {
                return;
            }
            JednostkaRejestrowa jr = ostatniaDziałka.jr;

            podstawKerg(jr);
            _doc.jewTeryt(jr.terytJednostki())
            .jewNazwa(jr.nazwaJednostki())
            .obrTeryt(jr.terytObrebu())
            .obrNazwa(jr.nazwaObrebu());
            _doc.podstaw("[SPORZADZIL]", Sporządził);
        }
        string createWładający(Działka staraDziałka, Działka nowaDziałka)
        {
            HashSet <string> wladajacy = new HashSet <string>(from podmiot in nowaDziałka.jr.Władający select podmiot.ToString());

            if (staraDziałka.jr != null)
            {
                wladajacy.UnionWith(from podmiot in staraDziałka.jr.Władający select podmiot.ToString());
            }
            string joinWladajacy = string.Join(";\n", wladajacy);

            if (string.IsNullOrEmpty(joinWladajacy))
            {
                return(string.Empty);
            }
            return("\nWładający:\n" + joinWladajacy);
        }
        private void addRazem(Działka staraDziałka, Działka nowaDziałka)
        {
            Row row = _table.InsertRow(_templateRow);

            if (staraDziałka != null)
            {
                row.id("Razem").nr("Razem").pow(staraDziałka.PowierzchniaPoLudzku).uz(staraDziałka.PowierzchniaUżytków.toString(!staraDziałka.JestDoAra));
            }
            if (nowaDziałka != null)
            {
                row.idNowy("Razem").nrNowy("Razem").powNowy(nowaDziałka.PowierzchniaPoLudzku).uzNowy(nowaDziałka.PowierzchniaUżytków.toString(!nowaDziałka.JestDoAra));
            }
            if (staraDziałka != null && nowaDziałka != null)
            {
                row.uzDelta(roznica(staraDziałka.PowierzchniaUżytków, nowaDziałka.PowierzchniaUżytków));
                roznicaWarn(staraDziałka.PowierzchniaUżytków, nowaDziałka.PowierzchniaUżytków, "różnica sumy powierzchni użytków: " + staraDziałka.Id);
            }
            row.pogrub().ukryjZmienne();
        }
        private IEnumerable <Tuple <Działka, Działka> > tylkoIstniejące(IEnumerable <IdentyfikatorDziałki> działki)
        {
            var posortowaneDziałki = działki.OrderBy(dz => dz.NumerDziałki(), new NumerComparer());

            foreach (var id in posortowaneDziałki)
            {
                Działka staraDziałka = _staryStan.SzukajIdDziałki(id);
                Działka nowaDziałka  = _nowyStan.SzukajIdDziałki(id);
                if (staraDziałka == null || nowaDziałka == null)
                {
                    continue;
                }
                //pomijanie w zestawieniu działek, które nie uległy zmianie
                if (!staraDziałka.uległaZmianie(nowaDziałka))
                {
                    continue;                                           //Działka nie uległa zmianie
                }
                yield return(new Tuple <Działka, Działka>(staraDziałka, nowaDziałka));
            }
        }
        public void DodajDziałki(IZawierającyDziałki staryStan, IZawierającyDziałki nowyStan, IEnumerable <IdentyfikatorDziałki> działki)
        {
            _staryStan = staryStan;
            _nowyStan  = nowyStan;
            var     zmienione       = 0;
            var     usunięte        = 0;
            var     dodane          = 0;
            Działka ostatniaDziałka = null;

            //wykaż istniejące działki
            foreach (var para in tylkoIstniejące(działki).OrderBy(t => t.Item2, new DziałkaComparer()))
            {
                ostatniaDziałka = dodajIstniejącaPara(para.Item1, para.Item2);
                zmienione++;
            }
            //wykaż usunięte działki
            foreach (var działka in tylkoUsunięte(działki))
            {
                if (WykażUsunięte)
                {
                    addUsunięta(działka);
                }
                Logger.info("stan nowy nie zawiera działki: " + działka.Id);
                usunięte++;
            }
            //wykaż dodane działki
            foreach (var działka in tylkoDodane(działki))
            {
                if (WykażDodane)
                {
                    addDodana(działka);
                }
                Logger.info("stan dotychczasowy nie zawiera działki: " + działka.Id);
                dodane++;
            }
            Logger.info("działki zmienione, usunięte lub dodane: " + (zmienione + usunięte + dodane));
            podstawNagłówek(ostatniaDziałka);
        }