예제 #1
0
        public virtual void create短期借款(int period, jk建设期借款还本付息 jk)
        {
            jk短期借款还本付息 j = new jk短期借款还本付息();

            j.year = jk.sxh顺序号;
            j.year = period;
            lr利润 lr利润 = lrsheet利润表.lr利润list.Where(x => x.year == period).First();

            lr利润.zcb总成本.jklx借款还本利息.jk短期借款 = j;
            lr利润.cal计算相关值();
            //lrsheet利润表.lr利润list.Add(lr);
            if (lr利润.jlr净利润 < 0)//未来要调整这个判断,先写一个框架结构
            {
                //j.qcjkye期初借款余额
                //计算借款金额
                if (period == 1)//如果是第一年
                {
                    j.qcjkye期初借款余额 = 0;
                    j.qmjkye期末借款余额 = lr利润.zcb总成本.jklx借款还本利息.get本金汇总() - (lr利润.zcb总成本.tx摊销.tx摊销金额 + lr利润.zcb总成本.zj折旧.zje本期折旧额 + lr利润.jlr净利润);
                }
                else
                {
                    lr利润       syn上一年利润   = lrsheet利润表.lr利润list.Where(x => x.year == period - 1).First();
                    jk短期借款还本付息 syn上一年短期借款 = syn上一年利润.zcb总成本.jklx借款还本利息.jk短期借款;
                    j.qcjkye期初借款余额 = syn上一年短期借款.qmjkye期末借款余额;

                    j.qcjkye期初借款余额 = lr利润.zcb总成本.jklx借款还本利息.jk短期借款.qcjkye期初借款余额;
                }

                j.dqfx当期付息 = j.qcjkye期初借款余额 * globalpara.jk短期借款利率;

                lr利润.cal计算相关值();
            }
        }
예제 #2
0
        protected override jk建设期借款还本付息 cal本期还本金额(int i, jk建设期借款还本付息 jk)
        {
            double hkzq还款周期 = globalpara.hkzq还款周期;

            jk.dqhb当期还本 = globalpara.jsqjk建设期借款利息 / hkzq还款周期;

            jk.dqhbfx当期还本付息 = jk.dqhb当期还本 + jk.dqfx当期付息;
            return(jk);
        }
예제 #3
0
        public virtual List <jk建设期借款还本付息> exec()
        {
            List <jk建设期借款还本付息> jklist  = new List <jk建设期借款还本付息>();
            jk建设期借款还本付息        jkFirst = new jk建设期借款还本付息();
            //第一年先进行设置,后面就是每一年的值
            double jsqjk建设期借款 = globalpara.jsqjk建设期借款金额;
            int    hkzq还款周期   = globalpara.hkzq还款周期;
            double rate       = globalpara.jsqjk建设期借款利息;

            jkFirst.qmjkye期末借款余额 = globalpara.jsqjk建设期借款金额;
            jkFirst.sxh顺序号       = 1;
            jkFirst.year         = 0;//实际上是建设期;
            jklist.Add(jkFirst);
            lrsheet利润表.jk还本付息表汇总Sheet.jk建设期借款还本付息list.Add(jkFirst);


            //后面在运营期间各年进行循环

            for (int i = 1; i <= globalpara.yyq运营期; i++)
            {
                jk建设期借款还本付息 jk = new jk建设期借款还本付息();
                if (i <= hkzq还款周期)
                {
                    //取集合中顺序号最大的,然后取它的期末借款金额,然后把它作为年初的金额
                    jk.qcjkye期初借款余额 = jklist.OrderByDescending(x => x.sxh顺序号).First().qmjkye期末借款余额;
                    jk.sxh顺序号       = jklist.OrderByDescending(x => x.sxh顺序号).First().sxh顺序号 + 1;


                    jk.dqfx当期付息 = jk.qcjkye期初借款余额 * rate;
                    //2个方法的差异,计算本金的时候有差异。把jk传入,是作为地址的方式传入,不是一个Copy值。
                    //只有int,string等基本类型的参数,是作为值传递,其他的是作为引用传递
                    //https://www.cnblogs.com/yhc99/p/9193973.html
                    cal本期还本金额(i, jk);//计算得到jk的本金

                    jk.qmjkye期末借款余额 = jk.qcjkye期初借款余额 - jk.dqhb当期还本;
                    lr利润 lr利润 = lrsheet利润表.lr利润list.Where(x => x.year == i).First();
                    lr利润.zcb总成本.jklx借款还本利息.jk建设期借款还本付息 = jk;


                    //在这个插入,判断是否需要短期借款
                    create短期借款(i, jk);
                }
                else
                {
                    //插入空值,但是年需要,便于后面进行统一的运算
                    //jk.year = i;
                }
                jklist.Add(jk);
            }

            return(jklist);
        }
예제 #4
0
        protected override jk建设期借款还本付息 cal本期还本金额(int i, jk建设期借款还本付息 jk)
        {
            int hkzq还款周期 = globalpara.hkzq还款周期;

            // double dehbfxzr等额还本付息总额 = 0;

            //dehbfxzr等额还本付息总额 = cal等额还本付息总额();

            if (hkzq还款周期 != i)
            {
                jk.dqhb当期还本 = dehbfxzr等额还本付息总额 - jk.dqfx当期付息;
            }
            if (hkzq还款周期 == i)
            {
                //最后一年的,当期还本付息的总额就不在采用A的值。
                //采用本年的期初借款余额,去掉息,就是本。把2个相加,就是本息和
                jk.dqhb当期还本 = jk.qcjkye期初借款余额;
            }
            jk.dqhbfx当期还本付息 = dehbfxzr等额还本付息总额;
            return(jk);
        }
예제 #5
0
 protected virtual jk建设期借款还本付息 cal本期还本金额(int i, jk建设期借款还本付息 jk)
 {
     return(null);
 }