123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- <?php
- /**
- * 获取get或者POST值
- *
- * @param string $name 属性名称
- * @return fixed 值
- */
- function get_args($name) {
- if (isset ( $_GET [$name] )) {
- return $_GET [$name];
- } elseif (isset ( $_POST [$name] )) {
- return $_POST [$name];
- } else
- return '';
- }
- function GetDecryptId($id){
- Doo::loadClass ( 'XDeode' );
- $XDeode = new XDeode ( 9 );
-
- $id=$XDeode->decode($id);
- if (!is_numeric($id)){
- die ( 'illegal request-参数解析错误' );
- }
- return $id;
- }
- function makeReceiptDataVersion1($receiptList){
- //办事处费用
- $receiptList[0]['officeJson']=json_decode($receiptList[0]['officeJson'],true);
- if (!empty($receiptList[0]['officeJson'])){
- $receiptList[0]['officeExplain']="<pre>".$receiptList[0]['officeJson']['officeExplain'][0]['officeExplain']."</pre>";
- $total=0;
- foreach ($receiptList[0]['officeJson']['daily'] as $value){
- $total=bcadd($total,$value['price'],2);
- }
- $receiptList[0]['dailyTotal']=$total;
- $total=0;
- foreach ($receiptList[0]['officeJson']['other'] as $value){
- $total=bcadd($total,$value['price'],2);
- }
- $receiptList[0]['otherTotal']=$total;
-
- $receiptList[0]['officeTotal']=bcadd($receiptList[0]['otherTotal'],$receiptList[0]['dailyTotal'],2);
- }
-
- //差旅费用
- $traveJson=json_decode($receiptList[0]['traveJson'],true);
- $receiptList[0]['traveJson']=$traveJson;
-
- if (!empty($receiptList[0]['traveJson'])){
- $receiptList[0]['traveExplain']="<pre>".$receiptList[0]['traveJson']['traveExplain'][0]['traveExplain']."</pre>";
- $total=0;
- foreach ($traveJson['traveList'] as $key=>$value){
- $receiptList[0]['traveJson']['traveList'][$key]['index']=$key+1;
- $detailCity='';
- $tripTotal=0;
- $tripItem=array();
- //1.行程list
-
- foreach ($value['tripList'] as $k=>$v){
- //2.组合各个城市
- if(count($value['tripList'])==($k+1)){
- $detailCity.=$v['city'];
- }else{
- $detailCity.=$v['city'].' - ';
- }
-
- //3.组合列详情
- foreach ($v['tripItem'] as $tk=>$tv){
- if (!isset($tripItem[$tv['name']])){
- $tripItem[$tv['name']]=0;
- }
- $tripItem[$tv['name']]=bcadd($tripItem[$tv['name']],$tv['price'],2);
- //3.行程金额小计
- $tripTotal=bcadd($tripTotal,$tv['price'],2);
- }
-
- $count=count($value['tripList'])-1;
- if($count>$k){
- $index=$k+1;
- $receiptList[0]['traveJson']['traveList'][$key]['tripList'][$k]['goCome']=$v['city'].'-'.$value['tripList'][$index]['city'];
- }
- $total=bcadd($total,$v['subtotal'],2);
-
- }
- $receiptList[0]['traveJson']['traveList'][$key]['detailCity']=$detailCity;
- $receiptList[0]['traveJson']['traveList'][$key]['detailTrip']=$tripItem;
- $receiptList[0]['traveJson']['traveList'][$key]['tripTotal']=$tripTotal;
-
- }
- $receiptList[0]['traveTotal']=$total;
- //print_r($receiptList[0]['traveJson']);
- }
-
- //内训费用
- $receiptList[0]['trainJson']=json_decode($receiptList[0]['trainJson'],true);
- if (!empty($receiptList[0]['trainJson'])){
- $receiptList[0]['trainExplain']="<pre>".$receiptList[0]['trainJson']['trainExplain'][0]['trainExplain']."</pre>";
- $total=0;
- foreach ($receiptList[0]['trainJson']['train'] as $value){
- $total=bcadd($total,$value['price'],2);
- }
- $receiptList[0]['trainTotal']=$total;
- }
- return $receiptList;
- }
- function num_to_rmb($num) {
- $c1 = "零壹贰叁肆伍陆柒捌玖";
- $c2 = "分角元拾佰仟万拾佰仟亿";
- // 精确到分后面就不要了,所以只留两个小数位
- $num = round ( $num, 2 );
- // 将数字转化为整数
- $num = $num * 100;
- if (strlen ( $num ) > 10) {
- return "金额太大,请检查";
- }
- $i = 0;
- $c = "";
- while ( 1 ) {
- if ($i == 0) {
- // 获取最后一位数字
- $n = substr ( $num, strlen ( $num ) - 1, 1 );
- } else {
- $n = $num % 10;
- }
- // 每次将最后一位数字转化为中文
- $p1 = substr ( $c1, 3 * $n, 3 );
- $p2 = substr ( $c2, 3 * $i, 3 );
-
- if ($n != '0' || ($n == '0' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) {
- $c = $p1 . $p2 . $c;
- } else {
- $c = $p1 . $c;
- }
- $i = $i + 1;
- // 去掉数字最后一位了
-
- $num = $num / 10;
- // echo $num.'</br>';
- $num = ( int ) $num;
- // $num =floor($num);
- // $num = round ( $num, 0, PHP_ROUND_HALF_DOWN );
- // echo $num.'</br>';
- // 结束循环
- if ($num == 0) {
- break;
- }
- }
- // echo $c.'</br>';
- $j = 0;
- $slen = strlen ( $c );
- while ( $j < $slen ) {
- // utf8一个汉字相当3个字符
- $m = substr ( $c, $j, 6 );
- // 处理数字中很多0的情况,每次循环去掉一个汉字“零”
- if ($m == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') {
- $left = substr ( $c, 0, $j );
- $right = substr ( $c, $j + 3 );
- $c = $left . $right;
- $j = $j - 3;
- $slen = $slen - 3;
- }
- $j = $j + 3;
- }
- // 这个是为了去掉类似23.0中最后一个“零”字
- if (substr ( $c, strlen ( $c ) - 3, 3 ) == '零') {
- $c = substr ( $c, 0, strlen ( $c ) - 3 );
- }
- // 将处理的汉字加上“整”
- if (empty ( $c )) {
- return "零元整";
- } else {
- return $c . "整";
- }
- }
- ?>
|