Beispiel #1
0
        public string DoCalc()
        {
            StateOK = false;
            KlonsPDataSet.ITEMSRow dr = null;

            if (IdIt == int.MinValue ||
                (dr = MyData.DataSetKlons.ITEMS.FindByID(IdIt)) == null)
            {
                return("Nav atrasts pamatlīdzeklis.");
            }

            if (!replacePartData1.fDATE.HasValue)
            {
                return("Nav norādīts datums.");
            }

            var dt = replacePartData1.fDATE.Value;

            var it = new ItemInfo();

            it.SetFromRow(dr);

            if (!it.IsGoodEventDate(dt))
            {
                return("Nekorekts datums.");
            }

            var rt = it.CheckItem();

            if (rt != "OK")
            {
                return(rt);
            }

            it.Events2 = new List <EventInfo>();
            var ev = new EventInfo();

            it.Events2.Add(ev);
            ev.Dt     = dt;
            ev.XEvent = EEvent.apr;

            rt = it.FullCalc();
            if (rt != "OK")
            {
                return(rt);
            }

            replacePartData1.fMtUsed = ev.MtUsed;
            replacePartData1.fDeprec = DataTasks.Round(replacePartData1.fValue *
                                                       (decimal)ev.RateD * (decimal)ev.MtUsed / 12.0M, 2);
            replacePartData1.fValueLeft = replacePartData1.fValue - replacePartData1.fDeprec;
            replacePartData1.fValueC    = 0.0M;
            replacePartData1.fDeprecC   = -replacePartData1.fDeprec;
            replacePartData1.fTaxValueC = replacePartData1.fDeprec;

            var sdoc = replacePartData1.fDoc.Nz();

            replacePartData1.fDescr =
                $"detaļas vērtība {replacePartData1.fValue:N2}, nolietojuma periods {replacePartData1.fMtUsed} mēn., " +
                $"izslēgtais nolietojums {replacePartData1.fDeprec:N2}, amortizētās izmaksas {replacePartData1.fValueLeft:N2}";
            replacePartData1.fDescr = replacePartData1.fDescr.LeftMax(200);

            StateOK = true;
            return("OK");
        }