caipin %!s(int64=10) %!d(string=hai) anos
achega
d46753d7a1

+ 11 - 0
demo.html

@@ -0,0 +1,11 @@
+<!DOCTYPE hmtl>
+<html>
+<head>
+<title>the5fire m3u8 test</title>
+</head>
+<body>
+<video controls autoplay >
+    <source src="http://cpthought.qiniudn.com/kt2.m3u8">
+</video>
+</body>
+</html>

+ 22 - 0
protected/controller/ErrorController.php

@@ -0,0 +1,22 @@
+<?php
+/**
+ * ErrorController
+ * Feel free to change this and customize your own error message
+ *
+ * @author darkredz
+ */
+class ErrorController extends DooController{
+
+    public function index(){
+        echo '<h1>ERROR 404 not found</h1>';
+        echo '<p>This is handler by an internal Route as defined in common.conf.php $config[\'ERROR_404_ROUTE\']</p>
+                
+<p>Your error document needs to be more than 512 bytes in length. If not IE will display its default error page.</p>
+
+<p>Give some helpful comments other than 404 :(
+Also check out the links page for a list of URLs available in this demo.</p>';
+    }
+	
+
+}
+?>

+ 585 - 0
protected/controller/ExpandController.php

@@ -0,0 +1,585 @@
+<?php
+
+/**
+ * @author darkredz
+ */
+
+class ExpandController extends DooController {
+	
+	public $staff;
+	public static $NEW = 0;
+	
+	public $nature=array('1'=>'设计',
+						'2'=>'造价管理',
+						'3'=>'业主',
+						'4'=>'交通局',
+						'5'=>'公路局',
+						'6'=>'审计',
+						'7'=>'财政',
+						'8'=>'审核',
+						'9'=>'施工',
+						'10'=>'咨询',
+						'11'=>'招标代理',
+						'12'=>'监理',
+						'13'=>'学校',
+						'14'=>'个人',
+						'15'=>'合作伙伴',
+						);
+	
+	public $tooltip=array('1'=>array('L','点击筛选标签'),
+						'2'=>array('M','点击筛选标签'),
+						'3'=>array('N','点击筛选标签'),
+						'4'=>array('O','点击筛选标签'),
+						'5'=>array('P','点击筛选标签'),
+						'6'=>array('Q','点击筛选标签'),
+						'7'=>array('R','点击筛选标签'),
+	);					
+
+	public $webPath="http://cld.smartcost.com.cn/upload/emailAnnex/";
+	
+	function __construct() {
+		//include './protected/config/common.conf.php';
+		//include $config['BASE_PATH'].'diagnostic/debug.php';
+		if(isset($_COOKIE["staff"])){
+			if(!empty($_COOKIE["staff"])){
+				Doo::loadModel ( 'staff' );
+				$staff = new staff ();
+				$this->staff=$staff->getUserByIdList($_COOKIE["staff"]);
+				self::$NEW= $this->getReceiptCount();
+				include './protected/controller/ReceiptController.php';
+				include './protected/controller/MainController.php';
+				ReceiptController::$NEW=self::$NEW;
+				MainController::$NEW=self::$NEW;
+				return "/";
+			}
+		}
+		
+		Doo::loadCore ( 'uri/DooUriRouter' );
+		$router = new DooUriRouter ();
+		$routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER );
+			
+		if($routeRs['1']!="login"){
+			header ( 'Content-Type:text/html;charset=utf-8' );
+			@header ( "Location: /login"  );
+		}
+	}
+	
+	function sms(){
+		
+		Doo::loadModel('tag');
+		$tag=new tag();
+		Doo::loadModel('district');
+		$district= new district();
+		
+		$tagList=$tag->getAllBySid($this->staff[0]['sid']);
+		$districtList=$district->get_lv(1);
+		
+		$data['tagList']=$tagList;
+		$data['districtList']=$districtList;
+		$data['memu']="eMailTask";
+		$data['staff']=$this->staff;
+		$data['mailMemu']='sms';
+		
+		$this->render ( "/sms_create", $data );
+	}
+	
+	function createSms(){
+		$title=$this->get_args('title')?$this->get_args('title'):"";
+		$content=isset($_POST['content'])?$_POST['content']:"";
+		$tagId=$this->get_args('tagId')?$this->get_args('tagId'):array();
+		
+		$did=$this->get_args('did')?$this->get_args('did'):"";
+		$stype=$this->get_args('stype')?$this->get_args('stype'):"";
+		$kind=$this->get_args('kind')?$this->get_args('kind'):1;
+		
+		if (!empty($content)&&(!empty($tagId)||!empty($did))){
+			Doo::loadModel('sms');
+			$sms=new sms();
+			Doo::loadModel('tag_client');
+			$tagClient=new tag_client();
+			Doo::loadModel('client');
+			$client=new client();
+			
+			$tagCondition="";$tagArray=array();
+			foreach ($tagId as $value){
+				array_push($tagArray, " tag like '%".$value."%' ");
+			}
+			if(!empty($tagArray))
+				$tagCondition=' and ('.implode(" or ", $tagArray).')';
+			$clientList=$tagClient->find(array('select'=>'client','where'=>'sid='.$this->staff[0]['sid'].$tagCondition,'asArray'=>true));
+			
+			$clientArray=array();
+			foreach ($clientList as $value){
+				array_push($clientArray, $value['client']);
+			}
+			$clientEmailList=array();
+			if (!empty($clientArray))
+				$clientEmailList=$client->find(array('select'=>'nicename as clientname,companyname,telephone','where'=>'cid in ('.implode(",", $clientArray).')','asArray'=>true));
+			
+			if ($stype==2)	
+				$clientEmailList=$client->find(array('select'=>'nicename as clientname,companyname,telephone','where'=>'district like "'.$did.',%" ','asArray'=>true));
+			
+			$list=array();$illegal=array();	
+			foreach ($clientEmailList as $value){	
+				if (preg_match("/^13[0-9]{1}[0-9]{8}$|15[0-9]{1}[0-9]{8}$|18[0-9]{1}[0-9]{8}$/",$value['telephone']))
+					array_push($list, $value);
+				else
+					array_push($illegal, $value);
+			}
+			
+			if ($stype==1){
+				$sms->tag=implode(",", $tagId);
+				$sms->districtId=0;
+			}
+			if ($stype==2){
+				$sms->tag="";
+				$sms->districtId=$did;
+			}
+			
+			$sms->date=date("Y-m-d");
+			$sms->content=$content;//base64_encode(gzcompress(json_encode($emailArray)));
+			$sms->title=$title;
+			$sms->client=base64_encode(gzcompress(json_encode($list)));
+			$sms->illegal=json_encode(array_slice($illegal,0,100));
+			$sms->signature=1;
+			$sms->status=1;
+			$sms->kind=$kind;
+			$sms->date=date("Y-m-d");
+			//$sms->tag=implode(",", $tagId);
+			//$sms->districtId=$did;
+			$sms->category=$this->staff[0]['category'];
+			$sms->staffId=$this->staff[0]['sid'];
+			$sms->staffName=$this->staff[0]['username'];
+			$sms->insert();
+			return '/smsList';
+		}
+		return '/createSms';
+	}
+	
+	function editSmsView(){
+		$sid=isset($this->params['sid'])?$this->params['sid']:0;
+		//$sid=$this->get_args('sid')?$this->get_args('sid'):0;
+		
+		Doo::loadModel('tag');
+		$tag=new tag();
+		Doo::loadModel('district');
+		$district= new district();
+		
+		$smsInfo=array();
+		if(!empty($sid)){
+			Doo::loadModel('sms');
+			$sms=new sms();
+			$smsInfo=$sms->getOne(array('where'=>'sid = '.$sid,'asArray'=>true));
+			$smsInfo['tagList']=explode(",", $smsInfo['tag']);
+		}else 
+			return "/smsList";
+		
+		$tagList=$tag->getAllBySid($this->staff[0]['sid']);
+		$districtList=$district->get_lv(1);
+		
+		$tagHtml='';
+		foreach ($tagList as $key=>$value){
+			$tagHtml.='<label><span data-original-title="'.$value['name'].'" data-toggle="ctooltip" data-placement="right" class="contactsTag tagCol-0'.$value['colorid'].'">
+			  			<input type="checkbox" name="tagId[]"';
+			foreach ($smsInfo['tagList'] as $k=>$v){
+				if ($value['tid']==$v){
+					$tagHtml.=' checked ';break;
+				}
+			}		
+			$tagHtml.=' value="'.$value['tid'].'"></span></label>';
+		}
+		
+		$districtHtml='';
+		foreach ($districtList as $key=>$value){
+			$districtHtml.='<option value="'.$value['id'].'"';
+			if($value['id']==$smsInfo['districtId'])
+				$districtHtml.='selected';
+			
+			$districtHtml.='>'.$value['name'].'</option>';
+		}
+		
+		$data['districtHtml']=$districtHtml;
+		$data['tagHtml']=$tagHtml;
+		$data['smsInfo']=$smsInfo;
+		$data['tagList']=$tagList;
+		$data['districtList']=$districtList;
+		$data['memu']="eMailTask";
+		$data['staff']=$this->staff;
+		$data['mailMemu']='smsList';
+		
+		$this->render ( "/sms_edit", $data );
+	}
+	
+	function editSms(){
+		$sid=$this->get_args('sid')?$this->get_args('sid'):0;
+		$title=$this->get_args('title')?$this->get_args('title'):"";
+		$content=isset($_POST['content'])?$_POST['content']:"";
+		$tagId=$this->get_args('tagId')?$this->get_args('tagId'):array();
+		
+		$did=$this->get_args('did')?$this->get_args('did'):"";
+		$stype=$this->get_args('stype')?$this->get_args('stype'):"";
+		$kind=$this->get_args('kind')?$this->get_args('kind'):1;
+		
+		if (!empty($content)&&!empty($sid)&&(!empty($tagId)||!empty($did))){
+			Doo::loadModel('sms');
+			$sms=new sms();
+			Doo::loadModel('tag_client');
+			$tagClient=new tag_client();
+			Doo::loadModel('client');
+			$client=new client();
+			
+			$tagCondition="";$tagArray=array();
+			foreach ($tagId as $value){
+				array_push($tagArray, " tag like '%".$value."%' ");
+			}
+			if(!empty($tagArray))
+				$tagCondition=' and ('.implode(" or ", $tagArray).')';
+			$clientList=$tagClient->find(array('select'=>'client','where'=>'sid='.$this->staff[0]['sid'].$tagCondition,'asArray'=>true));
+			
+			$clientArray=array();
+			foreach ($clientList as $value){
+				array_push($clientArray, $value['client']);
+			}
+			$clientEmailList=array();
+			if (!empty($clientArray))
+				$clientEmailList=$client->find(array('select'=>'nicename as clientname,companyname,telephone','where'=>'cid in ('.implode(",", $clientArray).')','asArray'=>true));
+			
+			if ($stype==2)	
+				$clientEmailList=$client->find(array('select'=>'nicename as clientname,companyname,telephone','where'=>'district like "'.$did.',%" ','asArray'=>true));
+			
+			$list=array();$illegal=array();	
+			foreach ($clientEmailList as $value){	
+				if (preg_match("/^13[0-9]{1}[0-9]{8}$|15[0-9]{1}[0-9]{8}$|18[0-9]{1}[0-9]{8}$/",$value['telephone'])){
+					array_push($list, $value);
+				}else{
+					array_push($illegal, $value);
+				}
+			}
+			
+			$sms->date=date("Y-m-d");
+			$sms->content=$content;//base64_encode(gzcompress(json_encode($emailArray)));
+			$sms->title=$title;
+			$sms->client=base64_encode(gzcompress(json_encode($list)));
+			$sms->illegal=json_encode(array_slice($illegal,0,100));
+			$sms->signature=1;
+			$sms->status=1;
+			$sms->kind=$kind;
+			$sms->date=date("Y-m-d");
+			
+			if ($stype==1){
+				$sms->tag=implode(",", $tagId);
+				$sms->districtId=0;
+			}
+			if ($stype==2){
+				$sms->tag="";
+				$sms->districtId=$did;
+			}
+			
+			$sms->staffId=$this->staff[0]['sid'];
+			$sms->staffName=$this->staff[0]['username'];
+			$sms->update(array('where'=>'sid='.$sid,'asArray'=>true));
+			return '/smsList';
+		}
+		return '/smsList';
+	}
+		
+	function smsList(){
+		Doo::loadModel('sms');
+		$sms=new sms();
+		Doo::loadModel('tag');
+		$tag=new tag();
+		
+		$mailList=$sms->find(array('where'=>'staffId='.$this->staff[0]['sid'],'asc'=>'status','asArray'=>true));
+		
+		foreach ($mailList as $key=>$value){
+			$mailList[$key]['clientName']=json_decode(gzuncompress(base64_decode($value['client'])),true);
+			$mailList[$key]['illegalEmail']=json_decode($value['illegal'],true);
+			$mailList[$key]['clientCount']=count($mailList[$key]['client']);
+			$mailList[$key]['tag']=array();
+			if($value['kind']==1)
+				$mailList[$key]['kindName']='营销';
+			else 
+				$mailList[$key]['kindName']='通知';
+			if (!empty($value['tag']))
+				$mailList[$key]['tag']=$tag->find(array('where'=>'tid in ( '.$value['tag'].') ','asArray'=>true));
+		}
+		
+		$data['mailList']=$mailList;
+		$data['memu']="eMailTask";
+		$data['staff']=$this->staff;
+		$data['mailMemu']='smsList';
+		
+		$this->render ( "/sms_list", $data );
+	}
+	
+	function smsCenter(){
+		$year=$this->get_args('year')?$this->get_args('year'):date("Y");
+		$month=$this->get_args('month')?$this->get_args('month'):0;
+		
+		Doo::loadModel('sms');
+		$sms=new sms();
+		Doo::loadModel('tag');
+		$tag=new tag();
+		
+		$dateCondition="Year(date) =".$year;	
+		if(!empty($month))
+			$dateCondition="Year(date) =".$year." and Month(date) = ".$month;
+		$mailList=$sms->find(array('where'=>$dateCondition,'asc'=>'status','asArray'=>true));
+		
+		foreach ($mailList as $key=>$value){
+			$mailList[$key]['clientName']=json_decode(gzuncompress(base64_decode($value['client'])),true);
+			$mailList[$key]['illegalEmail']=json_decode($value['illegal'],true);
+			$mailList[$key]['clientCount']=count($mailList[$key]['client']);
+			if($value['kind']==1)
+				$mailList[$key]['kindName']='营销';
+			else 
+				$mailList[$key]['kindName']='通知';
+			$mailList[$key]['tag']=array();
+			if (!empty($value['tag']))
+				$mailList[$key]['tag']=$tag->find(array('where'=>'tid in ( '.$value['tag'].') ','asArray'=>true));
+		}
+		
+		$dateHtml="";$now=date("Y");
+		for ($YEARD=2014;$YEARD<=2050;$YEARD++){
+			if ($YEARD<=$now){
+				$dateHtml.='<option ';
+				if ($year==$YEARD )
+					$dateHtml.=' selected ';
+				$dateHtml.=' value="'.$YEARD.'">'.$YEARD.'</option>';
+			}
+		}
+		$monthHtml='<option value="0">所有月份</option>';
+		for ($i=1;$i<=12;$i++){
+			$monthHtml.='<option ';
+			if ($i==$month )
+				$monthHtml.=' selected ';
+			$monthHtml.=' value="'.$i.'">'.$i.'</option>';
+		}
+		
+		$data['monthHtml']=$monthHtml;
+		$data['dateHtml']=$dateHtml;
+		$data['mailList']=$mailList;
+		$data['memu']="eMailTask";
+		$data['staff']=$this->staff;
+		$data['mailMemu']='smsCenter';
+		
+		$this->render ( "/sms_center", $data );
+	}
+	
+	function authOrize(){
+		$kind=isset($this->params['kind'])?$this->params['kind']:0;
+		$sid=isset($this->params['sid'])?$this->params['sid']:0;
+		if (!empty($kind)&&!empty($sid)){
+			Doo::loadModel('sms');
+			$sms=new sms();
+			if ($kind==1)
+				$sms->status=3;
+			else 
+				$sms->status=2;
+			
+			$sms->mark=$this->staff[0]['username']."已同意";
+			$sms->update(array('where'=>'sid='.$sid,'asArray'=>true));
+		}
+		return '/smsCenter';
+	}
+	
+	function delete(){
+		$sid=isset($this->params['sid'])?$this->params['sid']:0;
+		if (!empty($sid)){
+			Doo::loadModel('sms');
+			$sms=new sms();
+			$sms->delete(array('where'=>'sid='.$sid));
+		}
+		return '/smsList';
+	}
+
+	function sendSms(){
+		$sid=isset($this->params['sid'])?$this->params['sid']:0;
+		
+		Doo::loadModel('sms');
+		$sms=new sms();
+		
+		if(!empty($sid)){
+			$smsInfo=$sms->getOne(array('where'=>'sid='.$sid,'asArray'=>true));
+			if(!empty($smsInfo)&&$smsInfo['kind']==2&&$smsInfo['status']==2){
+				$smsPhone=json_decode(gzuncompress(base64_decode($smsInfo['client'])),true);
+				
+				$telephoneMun=array();$clientName=array();
+				foreach ($smsPhone as $key=>$value){
+					array_push($telephoneMun, $value['telephone']);
+					array_push($clientName, $value['clientname']);
+				}
+				$telephoneMun=implode(",", $telephoneMun);
+				$clientName=implode("{|}", $clientName);
+				
+				$url='http://smsapi.c123.cn/OpenPlatform/OpenApi?';
+				$ac='1001@501046820001';
+				$authkey = 'DD59699A324759EACB0ECECE564D1256';
+				$csid='4496';  //签名编号 
+				$cgid='2733'; //通道组编号
+				
+				$t=date('YmdGis',strtotime(" +10 seconds ")); //发送时间
+				$c = '{p1}您好!'.$smsInfo['content'];
+				$m= $telephoneMun;	//号码
+				$p1=$clientName;
+				
+				$data = array('action'=>'sendParam',  //发送类型 ,可以有sendOnce短信发送,sendBatch一对一发送,sendParam	动态参数短信接口
+							  'ac'=>$ac,'authkey'=>$authkey,'cgid'=>$cgid,        
+							  'm'=>$m,		     //号码
+				  			  'c'=>$c,		    //如果页面是gbk编码,则转成utf-8编码,如果是页面是utf-8编码,则不需要转码,内容用{|},如测试一{|}测试二
+							  'csid'=>$csid,            //签名编号 ,可以为空,为空时使用系统默认的签名编号
+							  't'=>$t,                      //定时发送,为空时表示立即发送,yyyyMMddHHmmss 如:20130721182038
+							  'p1'=>$p1  
+						);
+				
+				$re= $this->postSMS($url,$data);
+				preg_match_all('/result="(.*?)"/',$re,$res);
+				if(trim($res[1][0]) == '1' ){
+					$sms->status=3;
+					$sms->errorInfo="";
+					$sms->update(array('where'=>'sid='.$sid));
+				}else{
+					switch(trim($res[1][0])){
+					case  0: $sms->errorInfo="帐户格式不正确(正确的格式为:员工编号@企业编号)";break; 
+					case  -1: $sms->errorInfo="服务器拒绝(速度过快、限时或绑定IP不对等)如遇速度过快可延时再发";break;
+					case  -2: $sms->errorInfo=" 密钥不正确";break;
+					case  -3: $sms->errorInfo="密钥已锁定";break;
+					case  -4: $sms->errorInfo="参数不正确(内容和号码不能为空,手机号码数过多,发送时间错误等)";break;
+					case  -5: $sms->errorInfo="无此帐户";break;
+					case  -6: $sms->errorInfo="帐户已锁定或已过期";break;
+					case  -7: $sms->errorInfo="帐户未开启接口发送";break;
+					case  -8: $sms->errorInfo="不可使用该通道组";break;
+					case  -9: $sms->errorInfo="帐户余额不足";break;
+					case  -10: $sms->errorInfo="内部错误";break;
+					case  -11: $sms->errorInfo="扣费失败";break;
+					default:break;
+					}
+					$sms->update(array('where'=>'sid='.$sid));
+				}
+			}
+		}
+		return "/smsList";
+	}  
+	
+	function downLoadSms(){
+		//include Doo::conf()->BASE_PATH.'diagnostic/debug.php';
+		$sid=isset($this->params['sid'])?$this->params['sid']:0;
+		Doo::loadModel('sms');
+		$sms=new sms();
+		if(!empty($sid)){
+			$smsInfo=$sms->getOne(array('where'=>'sid='.$sid,'asArray'=>true));
+			$smsPhone=json_decode(gzuncompress(base64_decode($smsInfo['client'])),true);
+			$fileContent="";
+			$filepath=DOO::conf()->SITE_PATH."upload/sms/telephone.txt";
+			foreach ($smsPhone as $key=>$value){
+				$fileContent.=$value['telephone'].','.$value['clientname'].',您好!'.$smsInfo['content'].PHP_EOL;
+			}
+			file_put_contents($filepath, $fileContent);
+			
+			header('Content-Description: File Transfer');
+			header('Content-Type: application/octet-stream');
+			header('Content-Disposition: attachment; filename='.basename($filepath));
+			header('Content-Transfer-Encoding: binary');
+			header('Expires: 0');
+			header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
+			header('Pragma: public');
+			header('Content-Length: ' . filesize($filepath));
+			readfile($filepath);
+		}
+	}
+	
+	private function postSMS($url,$data=''){
+		$row = parse_url($url);
+		$host = $row['host'];
+		$port = $row['port'] ? $row['port']:80;
+		$file = $row['path'];
+		while (list($k,$v) = each($data)) {
+			//$post .= rawurlencode($k)."=".rawurlencode($v)."&";	//转URL标准码
+			$post .= $k."=".$v."&";
+		}
+		$post = substr( $post , 0 , -1 );
+		$len = strlen($post);
+		$fp = @fsockopen( $host ,$port, $errno, $errstr, 10);
+		if (!$fp) {
+			return "$errstr ($errno)\n";
+		} else {
+			$receive = '';
+			$out = "POST $file HTTP/1.0\r\n";
+			$out .= "Host: $host\r\n";
+			$out .= "Content-type: application/x-www-form-urlencoded\r\n";
+			$out .= "Connection: Close\r\n";
+			$out .= "Content-Length: $len\r\n\r\n";
+			$out .= $post;		
+			fwrite($fp, $out);
+			while (!feof($fp)) {
+				$receive .= fgets($fp, 128);
+			}
+			fclose($fp);
+			$receive = explode("\r\n\r\n",$receive);
+			unset($receive[0]);
+			return implode("",$receive);
+		}
+	}
+	
+	
+	private function getReceiptCount(){
+		
+		$status=2;
+		$year=date('Y');
+		
+		Doo::loadModel('receipt');
+		$receipt=new receipt();
+		Doo::loadModel('verify');
+		$verify=new verify();
+		
+		//user verify ID
+		$vidList=array();
+		$verifyDetail=$verify->find(array('where'=>'staff like "%\"'.$this->staff[0]['sid'].'\"%"','asArray'=>true));
+		foreach ($verifyDetail as $key=>$value){
+			array_push($vidList, $value['vid']);
+		}
+		$vid=implode(",", $vidList);
+		if(empty($verifyDetail))
+			$vid=0;
+		
+		$dateCondition=" and Year(date) =".$year;	
+		$approvalCondition=' and verifyStaff not like "%\"'.$this->staff[0]['sid'].'\":{%" ';
+			
+		$receiptList=$receipt->find(array('where'=>'verify in('.$vid.') and status='.$status.$dateCondition.$approvalCondition,'desc'=>'rid','asArray'=>true));
+		
+		return count($receiptList);
+	}
+	
+	private function _GetFileEXT($filename) {
+		$pics = explode ( '.', $filename );
+		$num = count ( $pics );
+		return $pics [$num - 1];
+	}
+
+	/**
+	 * 获取get或者POST值
+	 * @param string $name 属性名称
+	 * @return fixed 值
+	 */
+	private function get_args($name) {
+		if (isset ( $_GET [$name] )) {
+			if (is_array ( $_GET [$name] ))
+				return $_GET [$name];
+			else {
+				return addslashes ( $_GET [$name] );
+		//return  $_GET [$name] ;
+			}
+		
+		} elseif (isset ( $_POST [$name] )) {
+			if (is_array ( $_POST [$name] ))
+				return $_POST [$name];
+			else {
+				return addslashes ( $_POST [$name] );
+		//return $_POST [$name];
+			}
+		} else 
+			return false;
+	}
+}
+
+?>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 6507 - 0
protected/controller/MainController.php


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1560 - 0
protected/controller/MobileController.php


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 3171 - 0
protected/controller/ReceiptController.php