<?php
class reportAction extends action
{
    function __construct(){
        parent::__construct();
        $this->mod = new reportMod();
    }

    function __destruct(){
    }

    function getCycle(){
    	$data = $this->mod->getTableSelectTable('voucher','v_cycle','1 group by v_cycle order by v_cycle desc');
    	$this->exitJson(0,$data);
    }

	/**
	 * Method 利润表
	 */
    function profit(){
		$where = '';
		/*
			1 => [
				'indent'=>0, //缩进
				'title'=>'一、主营业务收入', //分组标题
				'code'=>'6001', //编码
				'rule'=>'1-2', //计算规则
				],
		*/
		$cfg = [
			1 => [
				'indent'=>0,
				'title'=>'一、主营业务收入',
				'code'=>'6001',
				'rule'=>'',
				],
			2 => [
				'indent'=>1,
				'title'=>'&nbsp;&nbsp;&nbsp;减：增值税',
				'code'=>'6801.01',
				'rule'=>'',
				],
			3 => [
				'indent'=>0,
				'title'=>'二、主营营业利润',
				'code'=>'',
				'rule'=>'1-2',
				],
			4 => [
				'indent'=>1,
				'title'=>'&nbsp;&nbsp;&nbsp;加：其他业务收入',
				'code'=>'6051',
				'rule'=>'',
				],
			5 => [
				'indent'=>1,
				'title'=>'&nbsp;&nbsp;&nbsp;减：其他业务成本',
				'code'=>'6402',
				'rule'=>'',
				],
			6 => [
				'indent'=>2,
				'title'=>'销售费用',
				'code'=>'6601',
				'rule'=>'',
				],
			7 => [
				'indent'=>2,
				'title'=>'管理费用',
				'code'=>'6602',
				'rule'=>'',
				],
			8 => [
				'indent'=>0,
				'title'=>'三、营业利润',
				'code'=>'',
				'rule'=>'3+4-5-6-7',
				],
			9 => [
				'indent'=>1,
				'title'=>'&nbsp;&nbsp;&nbsp;加：投资收益',
				'code'=>'6111',
				'rule'=>'',
				],
			10 => [
				'indent'=>2,
				'title'=>'营业外收入',
				'code'=>'6301',
				'rule'=>'',
				],
			11 => [
				'indent'=>1,
				'title'=>'&nbsp;&nbsp;&nbsp;减：营业外支出',
				'code'=>'6711',
				'rule'=>'',
				],
			12 => [
				'indent'=>0,
				'title'=>'四、利润总额',
				'code'=>'',
				'rule'=>'8+9-10-11',
				],
			13 => [
				'indent'=>1,
				'title'=>'&nbsp;&nbsp;&nbsp;减：所得税',
				'code'=>'6801.02',
				'rule'=>'',
				],
			14 => [
				'indent'=>0,
				'title'=>'五、净利润',
				'code'=>'',
				'rule'=>'12-13',
				],
		];
		$cycle = $_REQUEST['cycle'];
		$data = $this->mod->profitReport($cycle,$cfg);
		foreach($data['rows'] as $k=>$row){
			;
		}
		echo json_encode($data, JSON_UNESCAPED_UNICODE);
	}
	/**
	 * Method 资产负债表
	 */
    function balanceSheet(){
		$where = '';
		/*
			1 => [
				'indent'=>0, //缩进
				'title'=>'一、主营业务收入', //分组标题
				'code'=>'6001', //编码
				'rule'=>'1-2', //计算规则
				],
		*/
		$cfg = [
			1 => [
				'indent'=>0, //缩进
				'title'=>'一、存款现金', //分组标题
				'dbRule'=> null, //数据库计算规则
				'seqRule'=>'2+3', //序号计算规则
				'monthBalance'=> 0, //计算后的本月金额，如果 dbRule与seqRule都为空，这里为当前默认值
				],
			2 => [
				'indent'=>1,
				'title'=>'其中：库存现金',
				'dbRule'=> [
					['code'=>'1001', 'calc'=>'[本期余额]'],
				],
				'seqRule'=> null,
				'monthBalance'=> 0,
			],
			3 => [
				'indent'=>2,
				'title'=>'银行存款',
				'dbRule'=> [
					['code'=>'1002', 'calc'=>'+[本期余额]'],
				],
				'seqRule'=> null,
				'monthBalance'=> 0,
			],
			4 => [
				'indent'=>0,
				'title'=>'二、应收账款',
				'dbRule'=> [
					['code'=>'1231', 'calc'=>'[本期余额]'],
				],
				'seqRule'=> null,
				'monthBalance'=> 0,
			],
			5 => [
				'indent'=>0,
				'title'=>'三、资产合计',
				'dbRule'=> null,
				'seqRule'=> '1+4',
				'monthBalance'=> 0,
			],
			6 => [
				'indent'=>0,
				'title'=>'四、负债合计',
				'dbRule'=> [
					['code'=>'2', 'calc'=>'[上期余额]+[本期余额]'],
				],
				'seqRule'=> null,
				'monthBalance'=> 0,
			],
			7 => [
				'indent'=>0,
				'title'=>'五、所有者权益 ',
				'dbRule'=> null,
				'seqRule'=> '5-6',
				'monthBalance'=> 0,
			],
		];
		$cycle = $_REQUEST['cycle'];
		$data = $this->mod->balanceSheet($cycle,$cfg);
		foreach($data['rows'] as $k=>$row){
			;
		}
		echo json_encode($data, JSON_UNESCAPED_UNICODE);
    }
}