InvoiceController.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547
  1. <?php
  2. /**
  3. * @author darkredz
  4. */
  5. class InvoiceController extends DooController {
  6. public $staff;
  7. public $verifyId;
  8. public $executeId;
  9. public static $NEW = 0;
  10. public static $NEW2 = 0;
  11. private $INVOICEKEY="APPROVAL";
  12. function __construct() {
  13. if(isset($_COOKIE["staff"])){
  14. if(!empty($_COOKIE["staff"])){
  15. Doo::loadModel ( 'staff' );
  16. Doo::loadModel('verify');
  17. $verify=new verify();
  18. $staff = new staff ();
  19. Doo::loadModel("execute");
  20. $execute=new execute();
  21. //2222
  22. //8956
  23. $verifyList=$verify->find(array('select'=>'staff','asArray'=>true));
  24. $list=array();
  25. //判断角色的审批权限
  26. foreach ($verifyList as $key=>$value){
  27. $ver=json_decode($value['staff']);
  28. foreach ($ver as $k=>$v){
  29. if ($v[1]=='ROLE'){
  30. $roleList=json_decode($v[3]);
  31. foreach ($roleList as $t=>$g){
  32. $gList=explode("_", $g);
  33. array_push($list, $gList[0]);
  34. //print_r($list);
  35. }
  36. }else
  37. array_push($list, $v[0]);
  38. }
  39. }
  40. //判断执行人的审批权限
  41. $executeList=$execute->find(array('select'=>'staff','asArray'=>true));
  42. $list2=array();
  43. foreach ($executeList as $key=>$value){
  44. $ver=json_decode($value['staff']);
  45. foreach ($ver as $k=>$v){
  46. array_push($list2, $v[0]);
  47. }
  48. }
  49. $eidList=file_get_contents("protected/config/execute/execute.ini");
  50. $eidList=array_filter(explode(",", $eidList));
  51. $this->executeId= array_merge($list2,$eidList);
  52. $this->verifyId=$list;
  53. $this->staff=$staff->getUserByIdList($_COOKIE["staff"]);
  54. ReceiptController::$NEW= $this->getReceiptCount();
  55. ReceiptController::$NEW2= $this->getExeCount();
  56. return "/";
  57. }
  58. }
  59. Doo::loadCore ( 'uri/DooUriRouter' );
  60. $router = new DooUriRouter ();
  61. $routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER );
  62. if($routeRs['1']!="login"){
  63. header ( 'Content-Type:text/html;charset=utf-8' );
  64. @header ( "Location: /login" );
  65. }
  66. }
  67. function invoice(){
  68. $data['memu']="invoice";
  69. $data['staff']=$this->staff;
  70. $data['receiptMemu']='invoice';
  71. $data['verifyId']=$this->verifyId;
  72. $data['executeId']=$this->executeId;
  73. $this->render ( "/admin/invoice", $data );
  74. }
  75. function invoiceAdd(){
  76. Doo::loadModel('L_category');
  77. $lCategory=new L_category();
  78. $category=$lCategory->find(array('asArray'=>true));
  79. $data['category']=$category;
  80. $data['memu']="invoice";
  81. $data['staff']=$this->staff;
  82. $data['receiptMemu']='invoice';
  83. $data['verifyId']=$this->verifyId;
  84. $data['executeId']=$this->executeId;
  85. $this->render ( "/admin/invoiceAdd", $data );
  86. }
  87. function invoiceAddDo(){
  88. $cid=$this->get_args('cid')&&is_numeric($this->get_args('cid'))?$this->get_args('cid'):0;
  89. $invoiceType=$this->get_args('invoiceType')&&is_numeric($this->get_args('invoiceType'))?$this->get_args('invoiceType'):0;
  90. $doPost=$this->get_args('doPost')&&is_numeric($this->get_args('doPost'))?$this->get_args('doPost'):0;
  91. $invoicePrice=$this->get_args('invoicePrice')?$this->get_args('invoicePrice'):"";
  92. $invoiceElement=$this->get_args('invoiceElement')?$this->get_args('invoiceElement'):"";
  93. $invoiceTitle=$this->get_args('invoiceTitle')?$this->get_args('invoiceTitle'):"";
  94. $invoiceCompany=$this->get_args('invoiceCompany')?$this->get_args('invoiceCompany'):"";
  95. $TIN=$this->get_args('TIN')?$this->get_args('TIN'):"";
  96. $address=$this->get_args('address')?$this->get_args('address'):"";
  97. $phone=$this->get_args('phone')?$this->get_args('phone'):"";
  98. $bank=$this->get_args('bank')?$this->get_args('bank'):"";
  99. $bankAccount=$this->get_args('bankAccount')?$this->get_args('bankAccount'):"";
  100. $recipients=$this->get_args('recipients')?$this->get_args('recipients'):"";
  101. $recipientsPhone=$this->get_args('recipientsPhone')?$this->get_args('recipientsPhone'):"";
  102. $recipientsAddress=$this->get_args('recipientsAddress')?$this->get_args('recipientsAddress'):"";
  103. $mailItems=$this->get_args('mailItems')?$this->get_args('mailItems'):"";
  104. $remark=$this->get_args('remark')?$this->get_args('remark'):"";
  105. if(!empty($cid)&&!empty($invoicePrice)&&!empty($invoiceElement)){
  106. Doo::loadModel('invoice');
  107. $invoice=new invoice();
  108. Doo::loadModel('L_category');
  109. $lCategory=new L_category();
  110. Doo::loadModel('invoiceManage');
  111. $invoiceManage=new invoiceManage();
  112. $categoryDetil=$lCategory->getOne(array('SELECT'=>'title','where'=>'cid='.$cid,'asArray'=>true));
  113. $invoiceManageDetail=$invoiceManage->getOne(array('SELECT'=>'title','where'=>'mold="发票审批"','asArray'=>true));
  114. $invoice->cid=$cid;
  115. $invoice->categoryName=$categoryDetil['title'];
  116. $invoice->invoiceElement=$invoiceElement;
  117. $invoice->invoicePrice=$invoicePrice;
  118. $invoice->invoiceType=$invoiceType;
  119. if ($invoiceType==0)
  120. $invoice->invoiceTitle=$invoiceTitle;
  121. elseif ($invoiceType==1){
  122. $invoice->invoiceTitle=$invoiceCompany;
  123. $invoice->TIN=$TIN;
  124. $invoice->address=$address;
  125. $invoice->phone=$phone;
  126. $invoice->bank=$bank;
  127. $invoice->bankAccount=$$bankAccount;
  128. }
  129. $invoice->doPost=$doPost;
  130. if ($doPost==1){
  131. $invoice->recipients=$recipients;
  132. $invoice->recipientsPhone=$recipientsPhone;
  133. $invoice->recipientsAddress=$recipientsAddress;
  134. }
  135. $invoice->status=1;
  136. $invoice->invoiceSerial="#F".date("Ymd").mt_rand(1000,9999);
  137. $invoice->date=date("'Y-m-d H:i:s");
  138. $invoice->sid=$this->staff[0]['sid'];
  139. $invoice->userName=$this->staff[0]['username'];
  140. $invoice->invoiceManage=$invoiceManageDetail['staff'];
  141. $staffId=$a=json_decode($invoiceManageDetail['staff']);
  142. $invoice->pendingApprovals=$staffId[0][0];
  143. $invoice->insert();
  144. }
  145. return "/invoice";
  146. }
  147. function invoiceApproval(){
  148. Doo::loadModel('invoice');
  149. $invoice=new invoice();
  150. Doo::loadModel('invoiceManage');
  151. $invoiceManage=new invoiceManage();
  152. Doo::loadClass('XDeode');
  153. $XDeode=new XDeode(5);
  154. $invoiceList=$invoice->find(array('where'=>'status=1 and pendingApprovals='.$this->staff[0]['sid'],'asArray'=>true));
  155. foreach ($invoiceList as $key=>$value){
  156. $invoiceList[$key]['iidKey']=$XDeode->encode($value['iid']);//base64_encode($value['iid']);
  157. }
  158. $data['invoiceList']=$invoiceList;
  159. $data['memu']="invoice";
  160. $data['staff']=$this->staff;
  161. $data['receiptMemu']='invoiceApproval';
  162. $data['verifyId']=$this->verifyId;
  163. $data['executeId']=$this->executeId;
  164. $this->render ( "/admin/invoiceApproval", $data );
  165. }
  166. function invoiceDetail(){
  167. Doo::loadClass('XDeode');
  168. $XDeode=new XDeode(5);
  169. $iid=isset($this->params['iid'])?$this->params['iid']:"";
  170. $iid=$XDeode->decode($iid);//base64_decode($iid);
  171. Doo::loadModel('invoice');
  172. $invoice=new invoice();
  173. Doo::loadModel('invoiceManage');
  174. $invoiceManage=new invoiceManage();
  175. $invoiceDetail=$invoice->getOne(array('where'=>'status=1 and pendingApprovals='.$this->staff[0]['sid'].' and iid='.$iid,'asArray'=>true));
  176. $invoiceManageDetail=$invoiceManage->getOne(array('SELECT'=>'title','where'=>'mold="发票审批"','asArray'=>true));
  177. $a=json_decode($invoiceManageDetail['staff']);
  178. $data['invoiceDetail']=$invoiceDetail;
  179. $data['INVOICEKEY']=$this->authcode($invoiceDetail['iid'],'');
  180. $data['memu']="invoice";
  181. $data['staff']=$this->staff;
  182. $data['receiptMemu']='invoiceApproval';
  183. $data['verifyId']=$this->verifyId;
  184. $data['executeId']=$this->executeId;
  185. $this->render ( "/admin/invoiceApprovalDetail", $data );
  186. }
  187. function invoiceApprovalDo(){
  188. $iid=$this->get_args('invoiceKey')?$this->get_args('invoiceKey'):"";
  189. $status=$this->get_args('status')&&is_numeric($this->get_args('status'))?$this->get_args('status'):0;
  190. $opinion=$this->get_args('opinion')?$this->get_args('opinion'):"";
  191. if (!empty($iid)&&!empty($status)&&!empty($opinion)){
  192. if (!($status==2||$status==3||$status==4))
  193. die('illegal request');
  194. Doo::loadModel('invoice');
  195. $invoice=new invoice();
  196. $iid=$this->authcode($iid);
  197. $invoiceDetail=$invoice->getOne(array('where'=>'status=1 and iid='.$iid.' and pendingApprovals='.$this->staff[0]['sid'],'asArray'=>true));
  198. if (empty($invoiceDetail))
  199. die('illegal request');
  200. $processApprovals=json_decode($invoiceDetail['processApprovals'],true);
  201. $invoiceManage=json_decode($invoiceDetail['invoiceManage'],true);
  202. $invoice->status=$status;
  203. if ($status==3){
  204. //操作日志
  205. }else{
  206. if(empty($processApprovals)){//记录下一个IDKEY
  207. $processApprovals=array($this->staff[0]['sid']=>array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status));
  208. //if($status==4)
  209. // $processApprovals=array('final'=>$status,$this->staff[0]['sid']=>array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status));
  210. if ($status!=4)
  211. $invoice->pendingApprovals=$invoiceManage[1][0];
  212. $invoice->processApprovals=$processApprovals;
  213. }else{
  214. $processApprovals[$this->staff[0]['sid']]=array('date'=>date('Y-m-d'),'opinion'=>$opinion,'status'=>$status);
  215. if($status!=4)
  216. $invoice->pendingApprovals=$invoiceManage[1][0];
  217. $invoice->processApprovals=$processApprovals;
  218. }
  219. }
  220. print_r($processApprovals);
  221. //$invoice->
  222. /*
  223. if (isset($verifyStaff['final'])){//rDetail
  224. $receipt->verifyBreakup=$verifyString;
  225. $receipt->status=3;
  226. $receiptDetailObj->status=3;
  227. $receiptDetailObj->update(array('where'=>'rid='.$rid));
  228. if (!empty($roleId)){
  229. Doo::loadModel("role");
  230. $role=new role();
  231. $roleInfo=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true));
  232. $receiptLog->rolename=$roleInfo['name'];
  233. }
  234. $receiptLog->username=$this->staff[0]['username'];
  235. $receiptLog->uid=$this->staff[0]['sid'];
  236. $receiptLog->date=date("Y-m-d");
  237. $receiptLog->opinion=$opinion;
  238. $receiptLog->img=$this->staff[0]['avatar'];
  239. $receiptLog->status=3;
  240. $receiptLog->rid=$rid;
  241. $receiptLog->insert();
  242. }elseif(count($verifyStaff)==count($verifyDetail)){//要修改 角色的数量
  243. $receipt->status=1;$reviseSum=0;
  244. $receipt->verifyBreakup=$verifyString;
  245. if(!empty($receiptDetail['reviseDetail'])){//statistics item rDetail
  246. $reviseDetail=json_decode($receiptDetail['reviseDetail'],true);
  247. foreach ($reviseDetail as $key=>$value){
  248. $receiptDetailObj=new receiptDetail();
  249. $receiptDetailObj->staff=$receiptDetail['staff'];// $this->staff[0]['sid'];
  250. $receiptDetailObj->item=$value['description'];
  251. $receiptDetailObj->itemCategory="报销金额调整";
  252. $receiptDetailObj->price=$value['price'];
  253. $receiptDetailObj->date=$receiptDetail['date'];
  254. $receiptDetailObj->cid=$this->staff[0]['cid'];
  255. $receiptDetailObj->rid=$rid;
  256. $receiptDetailObj->status=1;
  257. $receiptDetailObj->insert();
  258. $reviseSum+=$value['price'];
  259. }
  260. $itemStatistics=new itemStatistics();
  261. $itemStatistics->cid=$receiptDetail['cid'];//$this->staff[0]['cid'];
  262. $itemStatistics->staff=$receiptDetail['staff'];//$this->staff[0]['sid'];
  263. $itemStatistics->price=$reviseSum;
  264. $itemStatistics->itemCategory="报销金额调整";
  265. $itemStatistics->date=$receiptDetail['date'];
  266. $itemStatistics->insert();
  267. }
  268. $receiptDetailObj=new receiptDetail();
  269. $receiptDetailObj->status=1;
  270. $receiptDetailObj->pastDate=date("Y-m-d");
  271. $receiptDetailObj->update(array('where'=>'rid='.$rid));
  272. $dateArray=explode("-", $receiptDetail['date']);
  273. $dateCondition=" and Year(date) =".$dateArray[0]." and Month(date) = ".$dateArray[1];
  274. $stat=$statistics->getOne(array('where'=>'staff='.$receiptDetail['staff'].$dateCondition,'asArray'=>true));
  275. if(empty($stat)){
  276. $statistics->date=$receiptDetail['date'];
  277. $statistics->cid=$receiptDetail['cid'];//$this->staff[0]['cid'];
  278. $statistics->staff=$receiptDetail['staff'];//$this->staff[0]['sid'];
  279. $statistics->agPrice=$receiptDetail['sum'];
  280. $statistics->rePrice=$reviseSum;
  281. $statistics->insert();
  282. }else{
  283. $statistics->agPrice=$stat['agPrice']+$receiptDetail['sum'];
  284. $statistics->rePrice=$stat['rePrice']+$reviseSum;
  285. $statistics->update(array('where'=>'sid='.$stat['sid']));
  286. }
  287. $dateArray=explode("-", $receiptDetail['date']);
  288. $dateCondition=" and Year(date) =".$dateArray[0]." and Month(date) = ".$dateArray[1];
  289. $accountItem=json_decode($receiptDetail['accountItem'],true);
  290. foreach ($accountItem['cSum'] as $key=>$value){
  291. if($key=="agencySum"){
  292. $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$receiptDetail['staff'].' and itemCategory="'.$this->AGENCY.'"'.$dateCondition,'asArray'=>true));
  293. if(empty($iStatistics)){
  294. $itemStatistics->cid=$receiptDetail['cid'];;
  295. $itemStatistics->staff=$receiptDetail['staff'];
  296. $itemStatistics->price=$value;
  297. $itemStatistics->itemCategory=$this->AGENCY;
  298. $itemStatistics->date=$receiptDetail['date'];
  299. $itemStatistics->insert();
  300. }else{
  301. if (!empty($value)){
  302. $itemStatistics->price=$value+$iStatistics['price'];
  303. $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid']));
  304. }
  305. }
  306. }elseif($key=="travelSum"){
  307. $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$receiptDetail['staff'].' and itemCategory="'.$this->TRAVEL.'"'.$dateCondition,'asArray'=>true));
  308. if(empty($iStatistics)){
  309. $itemStatistics->cid=$receiptDetail['cid'];
  310. $itemStatistics->staff=$receiptDetail['staff'];
  311. $itemStatistics->price=$value;
  312. $itemStatistics->itemCategory=$this->TRAVEL;
  313. $itemStatistics->date=$receiptDetail['date'];
  314. $itemStatistics->insert();
  315. }else{
  316. if (!empty($value)){
  317. $itemStatistics->price=$value+$iStatistics['price'];
  318. $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid']));
  319. }
  320. }
  321. }elseif($key=="trainSum"){
  322. $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$receiptDetail['staff'].' and itemCategory="'.$this->TRAIN.'"'.$dateCondition,'asArray'=>true));
  323. if(empty($iStatistics)){
  324. $itemStatistics->cid=$receiptDetail['cid'];
  325. $itemStatistics->staff=$receiptDetail['staff'];
  326. $itemStatistics->price=$value;
  327. $itemStatistics->itemCategory=$this->TRAIN;
  328. $itemStatistics->date=$receiptDetail['date'];
  329. $itemStatistics->insert();
  330. }else{
  331. if (!empty($value)){
  332. $itemStatistics->price=$value+$iStatistics['price'];
  333. $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid']));
  334. }
  335. }
  336. }elseif($key=="otherSum"){
  337. $iStatistics=$itemStatistics->getOne(array('where'=>'staff='.$receiptDetail['staff'].' and itemCategory="'.$this->OTHER.'"'.$dateCondition,'asArray'=>true));
  338. if(empty($iStatistics)){
  339. $itemStatistics->cid=$receiptDetail['cid'];
  340. $itemStatistics->staff=$receiptDetail['staff'];
  341. $itemStatistics->price=$value;
  342. $itemStatistics->itemCategory=$this->OTHER;
  343. $itemStatistics->date=$receiptDetail['date'];
  344. $itemStatistics->insert();
  345. }else{
  346. if (!empty($value)){
  347. $itemStatistics->price=$value+$iStatistics['price'];
  348. $itemStatistics->update(array('where'=>'sid='.$iStatistics['sid']));
  349. }
  350. }
  351. }
  352. }
  353. $receipt->pastDate=date("Y-m-d");
  354. }
  355. */
  356. echo $iid.$status.$opinion;
  357. }
  358. }
  359. private function getExeCount(){
  360. Doo::loadModel('receipt');
  361. $receipt=new receipt();
  362. $receiptList=$receipt->find(array('where'=>'(executeCopy like \'%["'.$this->staff[0]['sid'].'%\' and executeStaff NOT LIKE \'%'.$this->staff[0]['sid'].'%\' ) and (status=1 or status=6)','desc'=>'rid','asArray'=>true));
  363. return count($receiptList);
  364. }
  365. private function getReceiptCount(){
  366. $status=2;
  367. $year=date('Y');
  368. Doo::loadModel('receipt');
  369. $receipt=new receipt();
  370. Doo::loadModel('verify');
  371. $dateCondition=" and Year(date) =".$year;
  372. $approvalCondition=' and nowStaff like "%'.$this->staff[0]['sid'].'%" ';
  373. $receiptList=$receipt->find(array('where'=>' status='.$status.$dateCondition.$approvalCondition,'desc'=>'rid','asArray'=>true));
  374. return count($receiptList);
  375. }
  376. function _GetFileEXT($filename) {
  377. $pics = explode ( '.', $filename );
  378. $num = count ( $pics );
  379. return $pics [$num - 1];
  380. }
  381. /**
  382. * 获取get或者POST值
  383. * @param string $name 属性名称
  384. * @return fixed 值
  385. */
  386. function get_args($name) {
  387. if (isset ( $_GET [$name] )) {
  388. if (is_array ( $_GET [$name] ))
  389. return $_GET [$name];
  390. else
  391. return addslashes ( $_GET [$name] );
  392. } elseif (isset ( $_POST [$name] )) {
  393. if (is_array ( $_POST [$name] ))
  394. return $_POST [$name];
  395. else
  396. return addslashes ( $_POST [$name] );
  397. } else
  398. return false;
  399. }
  400. /**
  401. * 加密或解密指定字符串
  402. * @param string $string 要加密或解密的字符串
  403. * @param string $operation 当取值为'DECODE'时表示解密,否则为加密
  404. * @param string $key 加解密的key
  405. * @param $expiry 超时值
  406. * */
  407. function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
  408. $ckey_length = 4;
  409. if (! $key) {
  410. $key = $this->INVOICEKEY;
  411. }
  412. $key = md5 ( $key );
  413. $keya = md5 ( substr ( $key, 0, 16 ) );
  414. $keyb = md5 ( substr ( $key, 16, 16 ) );
  415. $keyc = $ckey_length ? ($operation == 'DECODE' ? substr ( $string, 0, $ckey_length ) : substr ( md5 ( microtime () ), - $ckey_length )) : '';
  416. $cryptkey = $keya . md5 ( $keya . $keyc );
  417. $key_length = strlen ( $cryptkey );
  418. $string = $operation == 'DECODE' ? base64_decode ( substr ( $string, $ckey_length ) ) : sprintf ( '%010d', $expiry ? $expiry + time () : 0 ) . substr ( md5 ( $string . $keyb ), 0, 16 ) . $string;
  419. $string_length = strlen ( $string );
  420. $result = '';
  421. $box = range ( 0, 255 );
  422. $rndkey = array ();
  423. for($i = 0; $i <= 255; $i ++) {
  424. $rndkey [$i] = ord ( $cryptkey [$i % $key_length] );
  425. }
  426. for($j = $i = 0; $i < 256; $i ++) {
  427. $j = ($j + $box [$i] + $rndkey [$i]) % 256;
  428. $tmp = $box [$i];
  429. $box [$i] = $box [$j];
  430. $box [$j] = $tmp;
  431. }
  432. for($a = $j = $i = 0; $i < $string_length; $i ++) {
  433. $a = ($a + 1) % 256;
  434. $j = ($j + $box [$a]) % 256;
  435. $tmp = $box [$a];
  436. $box [$a] = $box [$j];
  437. $box [$j] = $tmp;
  438. $result .= chr ( ord ( $string [$i] ) ^ ($box [($box [$a] + $box [$j]) % 256]) );
  439. }
  440. if ($operation == 'DECODE') {
  441. if ((substr ( $result, 0, 10 ) == 0 || substr ( $result, 0, 10 ) - time () > 0) && substr ( $result, 10, 16 ) == substr ( md5 ( substr ( $result, 26 ) . $keyb ), 0, 16 )) {
  442. return substr ( $result, 26 );
  443. } else {
  444. return '';
  445. }
  446. } else {
  447. return $keyc . str_replace ( '=', '', base64_encode ( $result ) );
  448. }
  449. }
  450. }
  451. class ReceiptController{
  452. public static $NEW = 0;
  453. public static $NEW2 = 0;
  454. }
  455. ?>