<?php
/**
 * Class wages model
 */
class wagesMod extends mod{
	function __construct(){
		$e = require(mvc::$cfg['ROOT'].'mod/element/wages.php');
		parent::__construct($e);
    }
	/**
	 * Method 列表数据
	 * @param string $where 查询sql条件
	 * @param int $page 页码(从1开始)
	 * @param int $pagesize 分页大小
	 * @param string $sidx 排序字段(单个)
	 * @param string $sord 排序方式 asc|desc
	 * @param string $orderby 排序sql(可多个)[优先]
	 * @return array 数据集
	 */
	public function list($where='',$page=0,$pagesize=0,$sidx='',$sord='asc',$orderby=''){
		$sql = $this->e['view'];
		if(trim($where)!='') {
			if(strtolower(substr(trim($where),0,3))!=='and') $where = ' AND ' . $where;
			$sql .= $where;
		}
		if($sidx=='' && $orderby=="") $orderby =  $this->e['order']; //默认排序
		if($orderby!=''){
			$sql.= sprintf(' ORDER BY %s', $orderby);
		}else if($sidx!=''){
			$sql.= sprintf(' ORDER BY %s %s',$sidx,$sord);
		}
		if($page>0 && $pagesize>0){
			$pages = $this->dbRead->PageLimit($sql,$page,$pagesize);
			$sql .= $pages['limit'];
		}
		$rows = $this->dbRead->Table($sql);
		$footerData=[];
		$data = [
			'page'=> $pages['page'],
			'total'=> $pages['total'],
			'records' => $pages['records'],
			"userdata"=> $footerData,
			'rows' => $rows
		];
		return $data;
	}

	public function report($cycle){
/*应付工资总额
实付工资总额
代扣社保
代扣公积金
代扣个税
保险公司部分
公积金公司部分

转出行-玉环现金
转出行-广州工行华姐7022
转出行-民生银行文姐7879

跑街分公司-应付工资总额
宜配PHP部-应付工资总额
宜配行政部-应付工资总额
宜配软件部-应付工资总额
宜配销售部-应付工资总额

跑街分公司-实付工资总额
宜配PHP部-实付工资总额
宜配行政部-实付工资总额
宜配软件部-实付工资总额
宜配销售部-实付工资总额

跑街分公司-保险公司部分
宜配PHP部-保险公司部分
宜配行政部-保险公司部分
宜配软件部-保险公司部分
宜配销售部-保险公司部分

跑街分公司-公积金公司部分
宜配PHP部-公积金公司部分
宜配行政部-公积金公司部分
宜配软件部-公积金公司部分
宜配销售部-公积金公司部分
*/
		$data = [];
		$keyData=[];
		$value = $this->getOneSelectTable('wages','sum(w_yfgz)', "w_cycle=".$cycle);
		$data[] = ['title'=>'应付工资总额','money'=>$value];
		$keyData['yfgz_total'] = $value;
		$value = $this->getOneSelectTable('wages','sum(w_money)', "w_cycle=".$cycle);
		$data[] = ['title'=>'实付工资总额','money'=>$value];
		$keyData['sfgz_total'] = $value;
		//$value = $this->getOneSelectTable('wages','sum(w_d_dksb)+sum(w_d_dkgjj)+sum(w_d_dkgs)', "w_cycle=".$cycle);
		//$data[] = ['title'=>'代扣五险一金个税','money'=>$value];
		$value = $this->getOneSelectTable('wages','sum(w_d_dksb)', "w_cycle=".$cycle);
		$data[] = ['title'=>'代扣社保','money'=>$value];
		$keyData['w_2211_02'] = $value;
		$value = $this->getOneSelectTable('wages','sum(w_d_dkgjj)', "w_cycle=".$cycle);
		$data[] = ['title'=>'代扣公积金','money'=>$value];
		$keyData['w_2211_04'] = $value;
		$value = $this->getOneSelectTable('wages','sum(w_d_dkgs)', "w_cycle=".$cycle);
		$data[] = ['title'=>'代扣个税','money'=>$value];
		$keyData['w_2221_01'] = $value;
		$keyData['w_5x1jgs'] = $keyData['w_2211_02'] + $keyData['w_2211_04']+ $keyData['w_2221_01'];

		$value = $this->getOneSelectTable('wages','sum(w_n_cbx)', "w_cycle=".$cycle);
		$data[] = ['title'=>'保险公司部分','money'=>$value];
		$keyData['bxgsbf_total'] = $value;
		$value = $this->getOneSelectTable('wages','sum(w_n_cgjj)', "w_cycle=".$cycle);
		$data[] = ['title'=>'公积金公司部分','money'=>$value];
		$keyData['gjjgsbf_total'] = $value;
		$data[] = ['title'=>'','money'=>''];

		$rows = $this->dbRead->Query("SELECT w_zch,w_zch_text,SUM(w_money) as money FROM wages WHERE w_cycle=".$cycle." GROUP BY w_zch ORDER BY w_zch");
		foreach($rows as $row){
			$data[] = ['title'=>'转出行-'.$row['w_zch_text'],'money'=>$row['money']];
			$keyData['zch_sfgz'][$row['w_zch']] = ['title'=>$row['w_zch_text'],'money'=>$row['money']];
		}
		$data[] = ['title'=>'','money'=>''];

		$rows = $this->dbRead->Query("SELECT w_depa,w_depa_text,SUM(w_yfgz) as money FROM wages WHERE w_cycle=".$cycle." GROUP BY w_depa ORDER BY w_depa");
		foreach($rows as $row){
			$data[] = ['title'=>$row['w_depa_text'].'-应付工资总额','money'=>$row['money']];
			$keyData['depa_yfgz'][$row['w_depa']] = ['title'=>$row['w_depa_text'],'money'=>$row['money']];
		}
		$data[] = ['title'=>'','money'=>''];

		$rows = $this->dbRead->Query("SELECT w_depa,w_depa_text,SUM(w_money) as money FROM wages WHERE w_cycle=".$cycle." GROUP BY w_depa ORDER BY w_depa");
		foreach($rows as $row){
			$data[] = ['title'=>$row['w_depa_text'].'-实付工资总额','money'=>$row['money']];
			$keyData['depa_sfgz'][$row['w_depa']] = ['title'=>$row['w_depa_text'],'money'=>$row['money']];
		}
		$data[] = ['title'=>'','money'=>''];

		$rows = $this->dbRead->Query("SELECT w_depa,w_depa_text,SUM(w_n_cbx) as money FROM wages WHERE w_cycle=".$cycle." GROUP BY w_depa ORDER BY w_depa");
		foreach($rows as $row){
			$data[] = ['title'=>$row['w_depa_text'].'-保险公司部分','money'=>$row['money']];
			$keyData['depa_bxgsbf'][$row['w_depa']] = ['title'=>$row['w_depa_text'],'money'=>$row['money']];
		}
		$data[] = ['title'=>'','money'=>''];

		$rows = $this->dbRead->Query("SELECT w_depa,w_depa_text,SUM(w_n_cgjj) as money FROM wages WHERE w_cycle=".$cycle." GROUP BY w_depa ORDER BY w_depa");
		foreach($rows as $row){
			$data[] = ['title'=>$row['w_depa_text'].'-公积金公司部分','money'=>$row['money']];
			$keyData['depa_gjjgsbf'][$row['w_depa']] = ['title'=>$row['w_depa_text'],'money'=>$row['money']];
		}
		$data[] = ['title'=>'','money'=>''];

		return ['data'=>$data,'keyData'=>$keyData];
	}

	public function import($cycle,$rows){
		$this->deleteRows("w_cycle=".$cycle);
		$this->addRow($rows);
	}
}

