예제 #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
        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);
        }
예제 #3
0
        public lrsheet利润表 initlr利润表(lrsheet利润表 lrsheet)
        {
            for (int i = 1; i <= globalpara.yyq运营期; i++)
            {
                lr利润 lr = new lr利润();
                lr.year      = i;
                lr.revenue收入 = revenue收入List.Where(x => x.year == i).First();
                lr.butie补贴收入 = butie补贴收入List.Where(x => x.year == i).First();
                //总成本初始化
                zcb总成本 zcb = new zcb总成本();
                zcb.year     = i;
                zcb.jycb经营成本 = jycb经营成本List.Where(x => x.year == i).First();
                zcb.tx摊销     = txlist.Where(x => x.year == i).First();
                zcb.zj折旧     = qzlist.Where(x => x.period == i).First();
                jklx借款还本利息 jk = new jklx借款还本利息();
                jk.year        = i;
                zcb.jklx借款还本利息 = jk;

                zcb.cal计算相关参数();
                lr.zcb总成本 = zcb;
                zcb总成本List.Add(zcb);
                //增值税初始化

                zzs增值税 zzs增值税 = new zzs增值税();
                if (i == 1)
                {
                    zzs增值税.qc期初固定资产增值税可抵扣进行税额 = ass.kdk可抵扣固定资产进项税额;
                }
                zzs增值税.xxsdq当期销项税         = lr.revenue收入.revenue含税收入值 * globalpara.zzs增值税税率;
                zzs增值税.jxsdq当期进项税         = lr.zcb总成本.jycb经营成本.jy含进项税经营成本值 * globalpara.zzs增值税税率;
                zzs增值税.qc当期增值税余额_销项税减去进项税 = zzs增值税.xxsdq当期销项税 - zzs增值税.jxsdq当期进项税;
                zzs增值税List.Add(zzs增值税);
                if (zzs增值税.qc当期增值税余额_销项税减去进项税 <= 0)
                {
                    zzs增值税.zzx当期增值税应纳税额 = 0;
                }
                if (zzs增值税.qc当期增值税余额_销项税减去进项税 > 0)
                {//已经考虑到本年累计进去,如果累计到本年值含本年,与本年进行比较,如果大于0,那么就
                    double value = zzs增值税List.Where(x => x.year <= i).Sum(y => y.qc当期增值税余额_销项税减去进项税);
                    if (value > 0)
                    {
                        if (zzs增值税.qc当期增值税余额_销项税减去进项税 >= value)
                        {
                            //说明历史上已经补完负值,并且也不是今年补的,目前暂时不考虑每年的销项税小于进项税的情况,
                            zzs增值税.zzx当期增值税应纳税额 = zzs增值税.qc当期增值税余额_销项税减去进项税;
                        }
                        else
                        {//说明历史上的负值,是今年补的
                            zzs增值税.zzx当期增值税应纳税额 = zzs增值税.qc当期增值税余额_销项税减去进项税 - value;
                        }
                    }
                    else
                    {
                        zzs增值税.zzx当期增值税应纳税额 = 0;
                    }
                }

                zzs增值税.zzx当期增值税附加 = zzs增值税.zzx当期增值税应纳税额 * globalpara.zzs增值税附加综合税率;
                zzs增值税List.Add(zzs增值税);
                lr.zzs增值税 = zzs增值税;

                lr.lr利润list = lrsheet.lr利润list;
                //下面增加借款的内容

                // lr.zcb总成本.jklx借款还本利息.jkldzj流动资金借款 = zcb总成本List.Where(x => x.year == i).First().jklx借款还本利息.jkldzj流动资金借款;
                //lr.zcb总成本.jklx借款还本利息.jk建设期借款还本付息 = zcb总成本List.Where(x => x.year == i).First().jklx借款还本利息.jk建设期借款还本付息;
                //lr.zcb总成本.jklx借款还本利息.jk短期借款 = zcb总成本List.Where(x => x.year == i).First().jklx借款还本利息.jk短期借款;
                lrsheet.lr利润list.Add(lr);
            }
            return(lrsheet);
        }