Beispiel #1
0
 public void resetEwidencja(DzialkaEwidencyjna dzialka)
 {
     Kontrakt.requires(dzialka._dzialkiPodzielone.Count == 0);
     Kontrakt.requires(dzialka.jednostkaRejestrowa() != null, "Działka ewidencyjna nie ma przypisanej jednostki rejestrowej.");
     Kontrakt.requires(dzialka.countKlasouzytki() > 0, "Działka ewidencyjna nie ma żadnych użytków.");
     _dzialkaDotychczasowa = dzialka;
 }
Beispiel #2
0
        public bool pomierzonaPonizejOdchylki(DzialkaEwidencyjna dzialka)
        {
            if (!dzialka.przypisanaDotychczasowa())
            {
                return(false);                                    //Brak działki ewidencyjnej
            }
            DzialkaEwidencyjna dotychczasowa = dzialka.dzialkaDotychczasowa();

            if (dotychczasowa.countPodzielone() > 0)
            {
                return(false);                                     //Działka jest podzielona lub przenumerowana
            }
            long pg = dzialka.powierzchnia().metryKwadratowe();
            long pe = dotychczasowa.powierzchnia().metryKwadratowe();

            if (pg == pe)
            {
                return(false);                                     //Powierzchnia działek jest identyczna
            }
            long   dr         = pg - pe;                           //Różnica powierzchni
            long   drAbsolute = Math.Abs(dr);
            double dp         = 0.0001 * pg + 0.2 * Math.Sqrt(pg); //Dopuszczalna odchyłka
            long   dpRounded  = (long)Math.Round(dp, MidpointRounding.ToEven);

            return(drAbsolute == 1 || drAbsolute == 2 || drAbsolute == 3 || drAbsolute <= dpRounded);
        }
 private bool aryPowierzchnia(DzialkaEwidencyjna dzialka)
 {
     if (!dzialka.przypisanaDotychczasowa())
     {
         return(false);                                    //Brak działki ewidencyjnej
     }
     return(dzialka.dzialkaDotychczasowa().powierzchnia().metryKwadratowe().ToString().EndsWith("00"));
 }
Beispiel #4
0
 public void dzialkaDotychczasowa(DzialkaEwidencyjna dzialka)
 {
     Kontrakt.requires(_dzialkaDotychczasowa == null,
                       "Działce już została przypisana działka dotychczasowa " + _identyfikator);
     Kontrakt.requires(dzialka.jednostkaRejestrowa() != null, "Działka dotychczasowa nie ma przypisanej jednostki rejestrowej.");
     Kontrakt.requires(dzialka.countKlasouzytki() > 0, "Działka dotychczasowa nie ma żadnych użytków.");
     _dzialkaDotychczasowa = dzialka;
 }
        private DzialkaEwidencyjna parseDzialka(string linia)
        {
            string[]             pola          = linia.Split(new char[] { ' ' }, 2, StringSplitOptions.RemoveEmptyEntries);
            IdentyfikatorDzialki identyfikator = IdentyfikatorDzialki.parseId(pola[0]);
            Powierzchnia         powierzchnia  = Powierzchnia.parseMetry(pola[1]);
            DzialkaEwidencyjna   dzialka       = new DzialkaEwidencyjna(identyfikator, powierzchnia);

            return(dzialka);
        }
Beispiel #6
0
 public void dodajPodzial(DzialkaEwidencyjna dzialkaPierwotna, string uwaga)
 {
     //Działka powinna mieć inny numer!!!
     Kontrakt.requires(przypisanaDotychczasowa(),
                       "Nie można dodać podziału bez przypisania działki dotychczasowej.");
     Kontrakt.requires(_dzialkaDotychczasowa.Equals(dzialkaPierwotna),
                       "Podział działki dotyczy innej działki dotychczasowej " + _identyfikator);
     _dzialkaDotychczasowa.podziel(this);
     _dzialkaDotychczasowa._przyczynaPodzialu = uwaga;
 }
Beispiel #7
0
 private void writeDzialka(DzialkaEwidencyjna dzialka)
 {
     _writer.WriteLine("{0,-15}{1,15}", dzialka.identyfikator(),
                       dzialka.powierzchnia().metryKwadratowe());
     foreach (var uzytek in dzialka)
     {
         writeUzytek(uzytek);
     }
     _writer.WriteLine("**");
 }
Beispiel #8
0
        public virtual bool niepomierzona(DzialkaEwidencyjna dzialka)
        {
            bool?pomierzone = pomierzonePunkty(dzialka);

            if (!pomierzone.HasValue)
            {
                return(false);                      //nieznana
            }
            return(!pomierzone.Value);
        }
 private void writeDzialka(DzialkaEwidencyjna dzialka)
 {
     //- 296   1.5000
     _writer.WriteLine("- {0}   {1:F4}",
                       dzialka.identyfikator().numerDzialki(),
                       dzialka.powierzchnia().hektary());
     foreach (var uzytek in dzialka)
     {
         writeUzytek(uzytek);
     }
     _writer.WriteLine();
 }
 private bool operatowePunkty(DzialkaEwidencyjna dzialka)
 {
     foreach (var punkt in dzialka.punkty())
     {
         Kontrakt.assert(punkt.rodzaj().zPomiaru());
         string operat = punkt.operat();
         if (!operaty.Contains(operat))
         {
             return(false);
         }
     }
     return(true);
 }
Beispiel #11
0
        public static IEnumerable <Klasouzytek> unionUzytki(this DzialkaEwidencyjna dzialkaNowa, DzialkaEwidencyjna dzialkaDotychczasowa)
        {
            HashSet <Klasouzytek> uzytki = new HashSet <Klasouzytek>();

            foreach (var uzytek in dzialkaDotychczasowa)
            {
                uzytki.Add(uzytek);
            }
            foreach (var uzytek in dzialkaNowa)
            {
                uzytki.Add(uzytek);
            }
            List <Klasouzytek> uzytkiPosortowane = new List <Klasouzytek>(uzytki);

            uzytkiPosortowane.Sort();
            return(uzytkiPosortowane);
        }
        private void readRekordDzialki(Rozliczenie rozliczenie, List <string> rekordDzialki)
        {
            //1-1                      19857
            string             liniaDzialki = rekordDzialki[0];
            DzialkaEwidencyjna dzialka      = parseDzialka(liniaDzialki);

            //Pomijamy pierwszy rekord reprezentujący działkę.
            for (int i = 1; i < rekordDzialki.Count; i++)
            {
                //  LsVI                    3987
                string      liniaKlasouzytku = rekordDzialki[i];
                Klasouzytek klasouzytek      = parseKlasouzytek(liniaKlasouzytku);
                dzialka.dodajKlasouzytek(klasouzytek);
            }
            rozliczenie.dodajDzialka(dzialka);
            //Rozpoczęcie kumulacji nowego rekordu.
            rekordDzialki.Clear();
        }
Beispiel #13
0
        private void writeDzialka(DzialkaEwidencyjna dzialka)
        {
            string        id           = dzialka.identyfikator().ToString();
            RodzajDzialki rodzaj       = rozliczenie().rodzaj;
            bool          nieznany     = rodzaj.nieznany(dzialka);
            bool          wektoryzacja = rodzaj.niepomierzona(dzialka);
            bool          pomierzona   = rodzaj.pomierzona(dzialka);
            var           operaty      = from pkt in dzialka.punkty()
                                         select "[" +
                                         pkt.zrodloDanych() + ", " +
                                         pkt.bladPolozenia() + ", " +
                                         pkt.operat() + "]";
            string joinOperaty = string.Join(" ", operaty);

            if (nieznany)
            {
                _writer.WriteLine("{0,-16}{1,-16}{2}", id, "nieznany", joinOperaty);
            }
            if (wektoryzacja)
            {
                _writer.WriteLine("{0,-16}{1,-16}{2}", id, "wektoryzacja", joinOperaty);
            }
            if (pomierzona)
            {
                _writer.WriteLine("{0,-16}{1,-16}{2}", id, "pomiar", joinOperaty);
            }
            int count = 0;

            if (nieznany)
            {
                count++;
            }
            if (wektoryzacja)
            {
                count++;
            }
            if (pomierzona)
            {
                count++;
            }
            Kontrakt.ensures(count == 1, "Konflikt rodzaju działki: " + id);
        }
Beispiel #14
0
        protected bool?pomierzonePunkty(DzialkaEwidencyjna dzialka)
        {
            List <PunktGraniczny> nieznane     = new List <PunktGraniczny>();
            List <PunktGraniczny> operatowe    = new List <PunktGraniczny>();
            List <PunktGraniczny> wektoryzacja = new List <PunktGraniczny>();
            int innePunkty = 0;

            foreach (var punkt in dzialka.punkty())
            {
                RodzajPunktu rodzaj = punkt.rodzaj();
                if (rodzaj.nieznany())
                {
                    nieznane.Add(punkt);
                }
                else if (rodzaj.zWektoryzacji())
                {
                    wektoryzacja.Add(punkt);
                }
                else if (rodzaj.zPomiaru())
                {
                    operatowe.Add(punkt);
                }
                else
                {
                    innePunkty++;
                }
            }
            Kontrakt.assert(innePunkty == 0);
            if (nieznane.Count > 0)
            {
                return(null);
            }
            if (wektoryzacja.Count > 0)
            {
                return(false);
            }
            if (operatowe.Count > 0)
            {
                return(true);
            }
            return(null);
        }
 private void writeDzialki(string name, IEnumerable <DzialkaEwidencyjna> dzialki)
 {
     pominiete.Clear();
     foreach (var dzialka in dzialki)
     {
         //Pomiń działki niezmienione
         DzialkaEwidencyjna dzialkaDotychczasowa = dzialka.dzialkaDotychczasowa();
         Rozliczenie        _rozliczenie         = rozliczenie();
         if (!_rozliczenie.zmienionaDzialka(dzialkaDotychczasowa))
         {
             pominiete.Add(dzialka.identyfikator().ToString());
             continue;
         }
         writeDzialka(dzialka);
     }
     if (pominiete.Count > 0)
     {
         Console.WriteLine("{1}: {0} działki niezmienione (pominięte)", pominiete.Count, name);
     }
 }
        public override bool niepomierzona(DzialkaEwidencyjna dzialka)
        {
            bool?pomierzone = pomierzonePunkty(dzialka);

            if (!pomierzone.HasValue)
            {
                return(false);                      //nieznana
            }
            if (!pomierzone.Value)
            {
                return(true);                   //wektoryzacja
            }
            if (operatowePunkty(dzialka))
            {
                return(false);                          //pomiar
            }
            if (aryPowierzchnia(dzialka))
            {
                return(false); //pomiar
            }
            return(true);      //wektoryzacja
        }
Beispiel #17
0
        public static bool zmienionaDzialka(this Rozliczenie rozliczenie, DzialkaEwidencyjna dzialkaDotychczasowa)
        {
            IdentyfikatorDzialki id          = dzialkaDotychczasowa.identyfikator();
            DzialkaEwidencyjna   dzialkaNowa = rozliczenie.dzialkaById(id);

            foreach (var klasouzytek in dzialkaNowa.unionUzytki(dzialkaDotychczasowa))
            {
                Klasouzytek stary = null;
                foreach (var uzytek in dzialkaDotychczasowa)
                {
                    if (klasouzytek.Equals(uzytek))
                    {
                        stary = uzytek;
                        break;
                    }
                }
                Klasouzytek nowy = null;
                foreach (var uzytek in dzialkaNowa)
                {
                    if (klasouzytek.Equals(uzytek))
                    {
                        nowy = uzytek;
                        break;
                    }
                }
                if (stary == null || nowy == null)
                {
                    return(true);                               //Zmieniona, bo różnica użytków
                }
                Powierzchnia stara = stary.powierzchnia();
                Powierzchnia nowa  = nowy.powierzchnia();
                if (nowa.powyzejOdchylki(stara))
                {
                    return(true);                             //Zmieniona, bo powyżej odchyłki
                }
            }
            return(dzialkaNowa.powierzchnia().powyzejOdchylki(dzialkaDotychczasowa.powierzchnia()));
        }
Beispiel #18
0
 private void podziel(DzialkaEwidencyjna dzialkaNowa)
 {
     Kontrakt.requires(_dzialkaDotychczasowa == null, "Działka ewidencyjna nie jest działką dotychczasową.");
     _dzialkiPodzielone.Add(dzialkaNowa);
 }
        public override bool nieznany(DzialkaEwidencyjna dzialka)
        {
            bool?pomierzone = pomierzonePunkty(dzialka);

            return(!pomierzone.HasValue);
        }