internal bool PredpisExport(int popl, string per, int ucetMes, int ucetRok, int idPredpisu) { try { P_NASTAVENI nast = sesna.GetObjectByKey <P_NASTAVENI>("VAZBA_UCTO_TYP"); bool procDB = false; if (nast != null) { procDB = (Convert.ToInt16(nast.HODNOTA) == 1); } if (!procDB) { return(false); } DBValue dbv = DBValue.Instance(sesna); string user = dbv.DBUserName.ToUpper(); P_POPL_USERS pUser = sesna.FindObject <P_POPL_USERS>( CriteriaOperator.Parse("CompoundKey1.LOGIN = ? " + "and CompoundKey1.HODNOTA_NAZEV = ? " + "and CompoundKey1.SEKCE is null", dbv.DBUserName.ToUpper(), "Expfin_predp_ihned")); #region logovani if (pUser != null) { Util.Util.WriteLog(string.Format("nastaveni pro export do ucta: LOGIN={0}, Expfin_predp_ihned={1}, " + "popl={2}, per={3}, ucetMes={4}, ucetRok={5}, predpisID={6}", dbv.DBUserName.ToUpper(), pUser.HODNOTA, popl, per, ucetMes, ucetRok, idPredpisu)); } else { Util.Util.WriteLog(string.Format("nastaveni pro export do ucta: LOGIN={0}, nebylo dohledano", dbv.DBUserName.ToUpper())); } #endregion logovani if ((pUser != null) && (Convert.ToInt32(pUser.HODNOTA) > 0)) { DevExpress.Xpo.DB.SelectedData selData = sesna.ExecuteSproc("GEO_EXP_PRPL_OX", new OperandValue(popl), new OperandValue(per), new OperandValue(ucetMes), new OperandValue(ucetRok), new OperandValue(idPredpisu)); return(true); } else { return(false); } } catch (Exception exc) { return(false); throw new Exception("Export předpisu do účetnictví neproběhl z důvodu chyby. \n\n" + exc.Message); } }
protected override void OnSaving() { base.OnSaving(); if (this.Session.IsNewObject(this)) { PRPL_OBDOBIMES = -1; PRPL_OBDOBIROK = -1; if (string.IsNullOrEmpty(PRPL_TISK)) { PRPL_TISK = "NE"; } if (string.IsNullOrEmpty(PRPL_EXPORTOVANO)) { PRPL_EXPORTOVANO = "NE"; } if (string.IsNullOrEmpty(PRPL_EXPFIN)) { PRPL_EXPFIN = "NE"; } if (string.IsNullOrEmpty(PRPL_TYPSANKCE)) { PRPL_TYPSANKCE = "D"; } if (string.IsNullOrEmpty(PRPL_PERNAS)) { PRPL_PERNAS = "D"; } if (string.IsNullOrEmpty(PRPL_STAVSANKCE)) { PRPL_STAVSANKCE = " "; } if (string.IsNullOrEmpty(ENTRYLOGIN)) { DBValue dbv = DBValue.Instance(this.Session); this.ENTRYDATE = dbv.DBSysDateTime; this.ENTRYLOGIN = dbv.DBUserName; } this.LOGIN = this.ENTRYLOGIN; this.LASTUPDATE = this.ENTRYDATE; if (string.IsNullOrEmpty(PRPL_EXPSIPO)) { fPRPL_EXPSIPO = "NE"; } if (string.IsNullOrEmpty(PRPL_VYMAHAT)) { PRPL_VYMAHAT = "N"; } if (string.IsNullOrEmpty(PRPL_VYMAHANO)) { PRPL_VYMAHANO = "N"; } } }
internal PravoNadPoplatkem(Session sesna) { DBValue dbv = DBValue.Instance(sesna); _user = dbv.DBUserName.ToUpper(); prtab = new XPCollection <P_PRISTUP_TABLE>( sesna, CriteriaOperator.Parse("pk.PRTAB_LOGIN = ?", _user)); }
internal DateTime GetDatumSplatnosti(DateTime vystaveno, C_EVPOPL evp, short porPer) { DateTime obdMez = vystaveno; int pocDni = (int)evp.EVPOPL_POCDNU; C_PERIODA per = null; DBValue dbv = null; switch (evp.EVPOPL_TERMPLAC.TERMPLAC_TERMPLAC) { case "Z": //zaèátek období case "K": //zacatek nebo konec období per = sesna.GetObjectByKey <C_PERIODA>(evp.CompoundKey1.EVPOPL_PER.PERIODA_NAZEV); C_KALENDAR.CompoundKey1Struct key = new C_KALENDAR.CompoundKey1Struct(); key.KALENDAR_PERIODA.PERIODA_PERIODA = evp.CompoundKey1.EVPOPL_PER.PERIODA_NAZEV; key.KALENDAR_PORPER = porPer; obdMez = (sesna.GetObjectByKey <C_KALENDAR>(key)).KALENDAR_FROMDATE; break; case "P": //po vystavení poplatku dbv = DBValue.Instance(sesna); //new DBValue(sesna); obdMez = dbv.DBSysDate; break; case "R": //zaèátek akt. roku dbv = DBValue.Instance(sesna); //new DBValue(sesna); obdMez = new DateTime(dbv.DBSysDate.Year, 1, 1); break; case "E": //konec akt. roku dbv = DBValue.Instance(sesna); //new DBValue(sesna); obdMez = new DateTime(dbv.DBSysDate.Year, 12, 31); break; } return(obdMez.AddDays(pocDni)); }
/// <summary> /// radky DPH, pripadne zaokrouhli a stanovi zaokrouleni /// napnlni vstupni List dopocitanymi hodnotami (kod sazby dane, dan, KC, zaokrouhleni, radek dorovanani na celkovou castku) /// </summary> internal void DPHZaokrouhli(List <DPHRozpis> dphRows, decimal poplatek, Session sesna, bool provestZaokrouhleni = true) { CriteriaOperator criteria; criteria = CriteriaOperator.Parse("NAZPOPL_POPLATEK = ?", poplatek); C_NAZPOPL cNazp = sesna.FindObject <C_NAZPOPL>(criteria); if (cNazp.NAZPOPL_DPH == 'N') { throw new Exception("Součástí poplatku není DPH"); } decimal suma = 0; List <sazDane> sazbySoucty = new List <sazDane>(); foreach (DPHRozpis item in dphRows) { var sd = new sazDane(); sd.sazba = item.SAZBA; sd.KC = item.ZAKLAD * (1 + (item.SAZBA ?? 0) / 100); int i = sazbySoucty.FindIndex(x => x.sazba == item.SAZBA); //i toto nalezne null hodnotu if (i == -1) { sazbySoucty.Add(sd); } else { sd.KC = sazbySoucty[i].KC + (item.ZAKLAD * (1 + (item.SAZBA ?? 0) / 100)); sazbySoucty[i] = sd; } suma += item.ZAKLAD * (1 + (item.SAZBA ?? 0) / 100); } if (sazbySoucty.Count == 0) { //neexistuji radky dane return; } //nactu platne sazby dane DBValue dbv = DBValue.Instance(sesna); //new DBValue(sesna); XPCollection <P_DPH_SAZBA> dphSazby = new XPCollection <P_DPH_SAZBA>( sesna, CriteriaOperator.Parse("CompoundKey1.DPHS_OD <= ? and DPHS_DO > ?", dbv.DBSysDate, dbv.DBSysDate.AddDays(-1))); //naleznu nejvyssi castku a tim i zaokrouhlovanou sazbu //zaroven zkontroluji platnost sazby DPH sazDane dphRowMaxCastka; dphRowMaxCastka.sazba = null; dphRowMaxCastka.KC = 0; foreach (sazDane item in sazbySoucty) { if (item.sazba == null) { dphSazby.Filter = (CriteriaOperator.Parse("DPHS_SAZBA is null")); } else { dphSazby.Filter = (CriteriaOperator.Parse("DPHS_SAZBA = ?", item.sazba)); } if (dphSazby.Count == 0) { throw new Exception(String.Format("sazba DPH \"{0}\" neni platná", item.sazba == null ? "bez daně" : item.sazba.ToString())); } if ((item.KC > dphRowMaxCastka.KC) && (item.sazba != 0) && (item.sazba.HasValue)) { dphRowMaxCastka = item; } } //doplnim kategorii sazby, dan a celkovou castku int presnostZaokr = 0; foreach (DPHRozpis item in dphRows) { item.DAN = item.ZAKLAD * (item.SAZBA ?? 0) / 100; item.DAN = Utils.Mathm.ZaokrouhliDouble(item.DAN, 2); item.KC = item.ZAKLAD + item.DAN; item.ZAOKROUHLENI = 0; if (item.SAZBA == null) { dphSazby.Filter = (CriteriaOperator.Parse("DPHS_SAZBA is null")); } else { dphSazby.Filter = (CriteriaOperator.Parse("DPHS_SAZBA = ?", item.SAZBA)); } item.KAT = dphSazby[0].CompoundKey1.DPHS_KAT; if (dphRowMaxCastka.sazba == dphSazby[0].DPHS_SAZBA) { presnostZaokr = dphSazby[0].DPHS_ZAOKR; } } DPHRozpis zaokrRadek = dphRows.Find(x => x.SAZBA == dphRowMaxCastka.sazba); if (zaokrRadek == null) {//neexistuje radek s nenulovou sazbou DPH return; } //zda pocitat DPH ze zaokrouhleni P_NASTAVENI nast = sesna.GetObjectByKey <P_NASTAVENI>("DPH_ZEZAOKR"); bool DphZeza; if (nast != null) { DphZeza = nast.HODNOTA == "1"; } else { DphZeza = true; } //zaokrouhledni DPH if (provestZaokrouhleni && (cNazp.NAZPOPL_DPHROUND == 'A')) { // sazDane zaokrSazDane = lsd.Find(x => x.sazba == zaokrRadek.SAZBA); decimal sazba = dphRowMaxCastka.sazba ?? 1; decimal koef = sazba / 100m / (1 + (sazba / 100m)); //dle 235/2004 Sb. o DPH §37 odst 2. koef = Utils.Mathm.ZaokrouhliDouble(koef, 4); decimal dph = zaokrRadek.DAN; decimal zaokr = Utils.Mathm.ZaokrouhliDouble(suma, 0) - suma; zaokr = Utils.Mathm.ZaokrouhliDouble(zaokr, 2); if (DphZeza) { decimal dph_zaokr = zaokr * koef; //DPH ze zaokrouhleni dph = Utils.Mathm.ZaokrouhliDouble(dph + dph_zaokr, 2); //upravene DPH o zaokrouhleni } zaokrRadek.DAN = dph; zaokrRadek.ZAOKROUHLENI = zaokr; } }
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; }