Exemplo n.º 1
0
        protected override void OnSaving()
        {
            bool inserted = ((ADR_ID == 0) || (ADR_ID == null));

            base.OnSaving();

            DBValue dbv = DBValue.Instance(this.Session);

            LOGIN      = dbv.DBUserName;
            LASTUPDATE = dbv.DBSysDateTime;

            if (inserted)
            {
                DBUtil dbu = new DBUtil(this.Session);
                ADR_ID = dbu.LIZNI_SEQ("P_SEQ_ADR_ID");

                if (this.ADR_ICO_OPROS == null)
                {
                    ADR_ICO_OPROS = "-1";
                }
                ADR_OPROS_ROZH = Convert.ToChar("N");
                ADR_ADRPOPL    = -1m; //neodsouhlasena adresa
                if (ADR_PLATCEDPH == null)
                {
                    ADR_PLATCEDPH = "N";
                }

                if ((string.IsNullOrEmpty(ADR_NAZEV1)) && (!string.IsNullOrEmpty(ADR_JMENO) ||
                                                           !string.IsNullOrEmpty(ADR_PRIJMENI)))
                {
                    ADR_NAZEV1 = (ADR_PRIJMENI + ' ' + ADR_JMENO).Trim();
                }

                if (!string.IsNullOrEmpty(ADR_NAZEV1) && !string.IsNullOrEmpty(ADR_TITUL_PRED))
                {
                    ADR_NAZEV1 = ADR_TITUL_PRED + " " + ADR_NAZEV1;
                }
                if (!string.IsNullOrEmpty(ADR_NAZEV1) && !string.IsNullOrEmpty(ADR_TITUL_ZA))
                {
                    ADR_NAZEV1 += ", " + ADR_TITUL_ZA;
                }


                if (string.IsNullOrWhiteSpace(ADR_ICO))
                {
                    ADR_ICO = null;                                      //0.8
                }
                if ((ADR_ICO != null) && ADR_ICO.Contains('#'))
                {
                    throw new Exception("nepovolený tvar IČ/RČ");
                }

                //0.8
                if (ADR_ICO == null)
                {
                    ADR_ICO = "#" + ADR_ID.ToString();
                }
                if (ADR_TYP == null)
                {
                    throw new Exception("TYP osoby musí být vyplněn");
                }
                if (ADR_NAZEV1 == null)
                {
                    throw new Exception("NAZEV osoby musí být vyplněn");
                }
                if (((ADR_TYP == "F") || (ADR_TYP == "C")) && (ADR_DATNAR == null))
                {
                    throw new Exception("datum narození osoby musí být vyplněn");
                }
                if (((ADR_ICZUJ_NAZEV == null) && (ADR_ZAHR == 0)) ||
                    ((ADR_ZAHR_ULICE_A_CISLO == null) && (ADR_ZAHR == 1)))
                {
                    throw new Exception("název ulice musí být vyplněn");
                }
                if ((ADR_PLATCEDPH != "N") && (ADR_PLATCEDPH != "A"))
                {
                    throw new Exception("chybná hodnota plátce DPH (povolená hodnota-[A/N])");
                }
            }
        }
        protected override void OnSaving()
        {
            base.OnSaving();

            if (fIsModified)
            {
            }

            if (CompoundKey1.RGP_POPLATEK == 0)
            {
                throw new Exception("poplatek musí být vyplněn");
            }
            if (CompoundKey1.RGP_PER == null)
            {
                throw new Exception("perioda musí být vyplněna");
            }
            if (CompoundKey1.RGP_ICO == null)
            {
                throw new Exception("IČ/RČ musí být vyplněno");
            }
            if (this.CompoundKey1.RGP_DOPLKOD == null)
            {
                CompoundKey1.RGP_DOPLKOD = " ";
            }
            if (RGP_PLATBA == null)
            {
                RGP_PLATBA = " ";
            }
            if (RGP_ZADANO == null)
            {
                RGP_ZADANO = "R";
            }
            if (RGP_VRATKA == null)
            {
                RGP_VRATKA = "ANO";
            }
            RGP_SAZBA = null;

            DBUtil dbu = new DBUtil(this.Session);

            #region vypocet splatky// 0.10 zjistuji pouze pocet splatek

            short   pocSplatek = 0; short periodicita = 0;
            decimal kcSplatka = 0, poslSplatka = 0;
            dbu.GetRgpSplatky(RGP_KCROK, CompoundKey1.RGP_PER, ref kcSplatka, ref poslSplatka, ref pocSplatek, ref periodicita);
            #endregion vypocet splatky

            DBValue dbv = DBValue.Instance(this.Session);
            if ((RGP_FROMDATE == null) || (RGP_FROMDATE == DateTime.MinValue))
            {
                RGP_FROMDATE = dbv.DBSysDate;
            }
            RGP_FROMDATE = RGP_FROMDATE.Date;
            if ((RGP_TODATE != null) && (RGP_FROMDATE != DateTime.MinValue))
            {
                RGP_TODATE = ((DateTime)RGP_TODATE).Date;
            }

            if (pocSplatek == 365)
            {
                RGP_TODATE = RGP_FROMDATE;
            }

            #region data z EVPOPL, NAZPOPL
            string  expfin      = string.Empty;
            string  typsankce   = string.Empty;
            string  pernas      = string.Empty;
            string  vystup      = string.Empty;
            decimal procsankce  = 0;
            decimal pevnacastka = 0;
            decimal nasobek     = 0;
            int     porvs       = 0;

            dbu.GetEvpoplData(CompoundKey1.RGP_POPLATEK, CompoundKey1.RGP_PER,
                              ref expfin, ref procsankce, ref typsankce,
                              ref pevnacastka, ref nasobek, ref pernas,
                              ref vystup, ref porvs);
            if (expfin == string.Empty)
            {
                throw new Exception("nelze určit export do financí - neexistující perioda pro poplatek");
            }
            if (string.IsNullOrEmpty(RGP_EXPUCTO))
            {
                RGP_EXPUCTO = expfin;
            }
            RGP_PROCSANKCE  = procsankce;
            RGP_TYPSANKCE   = typsankce;
            RGP_PEVNACASTKA = pevnacastka;
            RGP_NASOBEK     = nasobek;
            RGP_PERNAS      = pernas;
            RGP_VYSTUP      = vystup;
            if (RGP_PORVS == 0)
            {
                RGP_PORVS = porvs + 1;
            }
            #endregion data z EVPOPL, NAZPOPL

            this.LASTUPDATE = dbv.DBSysDateTime;
            this.LOGIN      = dbv.DBUserName;
        }