예제 #1
0
파일: CalcRInfo.cs 프로젝트: Camel-RD/Klons
        public static void GetIINDeductionsForPerson(CalcRRow2 wt, KlonsADataSet.PERSONS_RRow drpr,
                                                     KlonsADataSet.RATESRow drl, DateTime dt1, DateTime dt2, int calcver)
        {
            wt.ExUntaxedMinimum    = 0.0M;
            wt.ExDependants        = 0.0M;
            wt.ExInvalidity        = 0.0M;
            wt.ExRetaliation       = 0.0M;
            wt.ExNationalMovements = 0.0M;

            if (!string.IsNullOrEmpty(drpr.TAXDOC_NO))
            {
                wt.ExDependants = drl.APGAD * (decimal)drpr.APGAD_SK;

                if (drpr.INVALID == 1 || drpr.INVALID == 2)
                {
                    wt.ExInvalidity = drl.INVALID_12;
                }
                else if (drpr.INVALID == 3)
                {
                    wt.ExInvalidity = drl.INVALID_3;
                }

                if (drpr.PRET == 1)
                {
                    wt.ExNationalMovements = drl.PRET;
                }

                if (drpr.REPRES == 1)
                {
                    wt.ExRetaliation = drl.REPR;
                }

                if (drpr.PENSIONER == 1 || drpr.PENSIONER_SP == 1)
                {
                    wt.ExUntaxedMinimum = 0.0M;
                }
                else
                {
                    if (dt1 < ProgressiveIINStartDate)
                    {
                        wt.ExUntaxedMinimum = drl.NEPLIEK_MIN;
                    }
                    else
                    {
                        if (calcver == KlonsData.VersionRef(0))
                        {
                            wt.ExUntaxedMinimum = GetIINUntaxedMinimum(drpr.PERSONSRow, dt1);
                        }
                        else
                        {
                            wt.ExUntaxedMinimum = GetIINUntaxedMinimum2(drpr.PERSONSRow, dt1, dt2);
                        }
                    }
                }
            }
        }
예제 #2
0
        public string GetLikmes()
        {
            var drs_likmes = MyData.DataSetKlons.RATES.OrderBy(d => d.ONDATE).ToArray();

            DR_Likmes = PeriodInfo.FindNearestBefore(drs_likmes,
                                                     MDT1, d => d.ONDATE);

            if (DR_Likmes == null)
            {
                return("Likmes nav definētas.");
            }

            return("OK");
        }
예제 #3
0
파일: CalcRInfo.cs 프로젝트: Camel-RD/Klons
        public static void GetRatesForPerson(CalcRRow2 wt, KlonsADataSet.PERSONS_RRow drpr, KlonsADataSet.RATESRow drl, DateTime dt)
        {
            wt.UseProgresiveIINRate = dt >= ProgressiveIINStartDate;
            wt.HasTaxDoc            = !string.IsNullOrEmpty(drpr.TAXDOC_NO);
            if (dt < ProgressiveIINStartDate)
            {
                wt.RateIIN  = drl.IIN_LIKME;
                wt.RateIIN2 = drl.IIN_LIKME;
            }
            else
            {
                wt.RateIIN  = drl.IIN_LIKME;
                wt.RateIIN2 = drl.IIN_LIKME_2;
                int iin_rate_type = GetIINRateType(drpr.PERSONSRow, dt.FirstDayOfMonth());
                if (iin_rate_type == 1)
                {
                    wt.RateIIN = wt.RateIIN2;
                }
            }
            wt.IINMargin = drl.IIN_SLIEKSNIS_1;

            if (drpr.PENSIONER == 1)
            {
                if (drpr.PRISONER == 1)
                {
                    wt.RateDNSN = drl.SIDN_IESLODZ_PENS;
                    wt.RateDDSN = drl.SIDD_IESLODZ_PENS;
                }
                else
                {
                    wt.RateDNSN = drl.SIDN_PENS;
                    wt.RateDDSN = drl.SIDD_PENS;
                }
            }
            else if (drpr.PENSIONER_SP == 1)
            {
                wt.RateDNSN = drl.SIDN_IZDPENS;
                wt.RateDDSN = drl.SIDD_IZDPENS;
            }
            else
            {
                if (drpr.PRISONER == 1)
                {
                    wt.RateDNSN = drl.SIDN_IESLODZ;
                    wt.RateDDSN = drl.SIDD_IESLODZ;
                }
                else
                {
                    wt.RateDNSN = drl.SIDN_PAMATLIKME;
                    wt.RateDDSN = drl.SIDD_PAMATLIKME;
                }
            }
        }