fee_controller.php 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708
  1. <?php
  2. /*
  3. * @description: 费用管理控制类 @Author: CP @Date: 2020-11-11 17:51:05 @FilePath: \cld\protected\controller\fee\fee_controller.php
  4. */
  5. require "protected/services/fee_service.php";
  6. require "protected/services/incomeExpenses_service.php";
  7. require "protected/services/region_service.php";
  8. require "protected/services/office_service.php";
  9. require "protected/services/staff_service.php";
  10. require "protected/class/comm_cld.php";
  11. class fee_controller extends DooController {
  12. private $staff;
  13. private $verifyId;
  14. private $executeId;
  15. private $feeService;
  16. private $regionService;
  17. private $officeService;
  18. private $staffService;
  19. private $incomeExpensesService;
  20. // 构建申请报销单页面
  21. public function GetViewReceiptCreate() {
  22. // 请求
  23. $data ['action'] = "/receipt/create";
  24. // 费用 项目细则
  25. $accountItem = $this->feeService->GetAccountItem ();
  26. $data ['accountItem'] = json_encode ( $accountItem );
  27. // 地区
  28. $region = $this->regionService->GetRegionTwo ();
  29. $data ['region'] = json_encode ( $region );
  30. // 审批
  31. //GetVerify
  32. $data ['verify'] = json_encode ( $this->feeService->GetVerifyType ('RECEIPT') );
  33. // 办事处
  34. $data ['office'] = $this->officeService->GetAll ();
  35. // 默认办事处
  36. $data ['officeId'] = $this->staff ['cid'];
  37. //设置默认差旅地区
  38. $traveDefault=$this->makeTraveDefault($region);
  39. $data['defaultTraveProvince']=$traveDefault['defaultTraveProvince'];
  40. $data['defaultTraveProvinceIndex']=$traveDefault['defaultTraveProvinceIndex'];
  41. // 附件
  42. $data ['enclosurList'] = array ();
  43. $data ['staff'] = $this->staff;
  44. $data ['verifyId'] = $this->verifyId;
  45. $data ['executeId'] = $this->executeId;
  46. $data ['receiptMemu'] = 'saeaBorad';
  47. $data ['memu'] = "receipt";
  48. $this->render ( "/fee/create/receipt", $data );
  49. }
  50. // 编辑报销单
  51. public function GetViewReceiptEdit() {
  52. $receiptId = isset ( $this->params ['receiptId'] ) ? $this->params ['receiptId'] : '';
  53. if (empty ( $receiptId )) {
  54. die ( 'illegal request-请求参数错误,重新请求' );
  55. }
  56. $receiptId = GetDecryptId ( $receiptId );
  57. $detail = $this->feeService->GetReceipt ( $receiptId );
  58. // 附件相关
  59. Doo::loadModel ( 'enclosur' );
  60. $enclosur = new enclosur ();
  61. $data ['enclosurList'] = $enclosur->getEnclosurByRid ( $detail ['rid'] );
  62. // 费用 项目细则
  63. $accountItem = $this->feeService->GetAccountItem ();
  64. $data ['accountItem'] = json_encode ( $accountItem );
  65. // 报销单数据
  66. $data ['data'] = json_encode ( $this->makeReceiptEdiData ( $detail, $accountItem, $this->feeService->GetVerifyType ('RECEIPT') ) );
  67. // 请求
  68. $data ['action'] = "/receipt/edit";
  69. // 地区
  70. $region = $this->regionService->GetRegionTwo ();
  71. $data ['region'] = json_encode ( $region );
  72. // 审批
  73. $data ['verify'] = "[]";
  74. // 办事处
  75. $data ['office'] = $this->officeService->GetAll ();
  76. // 默认办事处
  77. $data ['officeId'] = $detail ['cid'];
  78. $data ['receiptId'] = $detail ['receiptId'];
  79. $data['status']=$detail['status'];
  80. //设置默认差旅地区
  81. $traveDefault=$this->makeTraveDefault($region);
  82. $data['defaultTraveProvince']=$traveDefault['defaultTraveProvince'];
  83. $data['defaultTraveProvinceIndex']=$traveDefault['defaultTraveProvinceIndex'];
  84. $this->staff['remittanceName']=$detail['remittanceName'];
  85. $this->staff['remittanceBankType']=$detail['remittanceBankType'];
  86. $this->staff['bankName']=$detail['bankName'];
  87. $this->staff['bankNumber']=$detail['bankNumber'];
  88. $this->staff['coupletNumber']=$detail['coupletNumber'];
  89. $data ['staff'] = $this->staff;
  90. $data ['verifyId'] = $this->verifyId;
  91. $data ['executeId'] = $this->executeId;
  92. $data ['receiptMemu'] = 'saeaBorad';
  93. $data ['memu'] = "receipt";
  94. $this->render ( "/fee/create/receipt", $data );
  95. }
  96. // 创建报销单
  97. public function PostReceiptCreate() {
  98. // 1.获得参数
  99. $data = array (
  100. "officeData" => get_args ( 'officeData' ),
  101. "traveData" => get_args ( 'traveData' ),
  102. "trainData" => get_args ( 'trainData' ),
  103. "enclosurFiles" => get_args ( 'enclosurFiles' ),
  104. "verifyId" => get_args ( 'verifyId' ),
  105. "officeId" => get_args ( 'officeId' ),
  106. "remittanceName" => get_args ( 'remittanceName' ),
  107. "remittanceBankType" => get_args ( 'remittanceBankType' ),
  108. "bankName" => get_args ( 'bankName' ),
  109. "bankNumber" => get_args ( 'bankNumber' ),
  110. "coupletNumber" => get_args ( 'coupletNumber' )
  111. );
  112. // 2.参数校验
  113. $data = $this->feeService->ValidRuleReceiptCreate ( $data );
  114. // 3.具体数据处理
  115. $msg = $this->feeService->ReceiptCreate ( $data, $this->staff );
  116. return "/saeaBorad";
  117. }
  118. // 更新报销单
  119. public function PostReceiptEdit() {
  120. // 1.获得参数
  121. $data = array (
  122. "receiptId" => get_args ( 'receiptId' ),
  123. "officeData" => get_args ( 'officeData' ),
  124. "traveData" => get_args ( 'traveData' ),
  125. "trainData" => get_args ( 'trainData' ),
  126. "enclosurFiles" => get_args ( 'enclosurFiles' ),
  127. "verifyId" => get_args ( 'verifyId' ),
  128. "officeId" => get_args ( 'officeId' ),
  129. "remittanceName" => get_args ( 'remittanceName' ),
  130. "remittanceBankType" => get_args ( 'remittanceBankType' ),
  131. "bankName" => get_args ( 'bankName' ),
  132. "bankNumber" => get_args ( 'bankNumber' ),
  133. "coupletNumber" => get_args ( 'coupletNumber' )
  134. );
  135. // 2.参数校验
  136. $data = $this->feeService->ValidRuleReceiptCreate ( $data );
  137. // 3.具体数据处理
  138. $msg = $this->feeService->ReceiptEdi ( $data, $this->staff );
  139. return "/saeaBorad";
  140. }
  141. // 创建借款报销单
  142. public function GetViewLoanReceiptCreate() {
  143. // include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';
  144. $receiptId = isset ( $this->params ['receiptId'] ) ? $this->params ['receiptId'] : '';
  145. if (empty ( $receiptId )) {
  146. die ( 'illegal request-请求参数错误,重新请求' );
  147. }
  148. $data ['receiptId'] = $receiptId;
  149. $receiptId = GetDecryptId ( $receiptId );
  150. $detail = $this->feeService->GetReceipt ( $receiptId );
  151. // 设置借款信息
  152. $loan = $this->feeService->GetLoanReceipt ( $detail ['loanRid'],$this->staff );
  153. $data ['loan'] = $loan;
  154. // 费用 项目细则
  155. $accountItem = $this->feeService->GetAccountItem ();
  156. $data ['accountItem'] = json_encode ( $accountItem );
  157. // 报销单数据
  158. if ($detail ['status'] != 7) {
  159. $detail ['verify'] = '';
  160. }
  161. $verifyList=$this->feeService->GetVerifyType ('RECEIPT');
  162. $data ['data'] = json_encode ( $this->makeReceiptEdiData ( $detail, $accountItem, $verifyList ) );
  163. // 地区
  164. $region = $this->regionService->GetRegionTwo ();
  165. $data ['region'] = json_encode ( $region );
  166. // 审批
  167. $data ['verify'] = json_encode ( $verifyList );
  168. // 办事处
  169. $data ['office'] = $this->officeService->GetAll ();
  170. // 默认办事处
  171. $data ['officeId'] = $this->staff ['cid'];
  172. // 附件
  173. $data ['enclosurList'] = array ();
  174. // 请求
  175. $data ['action'] = "/loan/receipt/edit";
  176. $traveDefault=$this->makeTraveDefault($region);
  177. $data['defaultTraveProvince']=$traveDefault['defaultTraveProvince'];
  178. $data['defaultTraveProvinceIndex']=$traveDefault['defaultTraveProvinceIndex'];
  179. // $defaultTraveProvince="";
  180. // if($this->staff['category']=="总部"){
  181. // $defaultTraveProvince="广东省";
  182. // }else{
  183. // $defaultTraveProvince=str_replace("办","省",$this->staff['category']);
  184. // }
  185. // $data['defaultTraveProvince']=$defaultTraveProvince;
  186. // 获得二级地区的index
  187. // $defaultTraveProvinceIndex=0;
  188. // foreach ($region as $key=>$value){
  189. // if($value['name']==$defaultTraveProvince){
  190. // $defaultTraveProvinceIndex=$key;
  191. // }
  192. // }
  193. // $data['defaultTraveProvinceIndex']=$defaultTraveProvinceIndex;
  194. $data ['staff'] = $this->staff;
  195. $data ['verifyId'] = $this->verifyId;
  196. $data ['executeId'] = $this->executeId;
  197. $data ['receiptMemu'] = 'saeaBorad';
  198. $data ['memu'] = "receipt";
  199. $this->render ( "/fee/create/receipt", $data );
  200. }
  201. // 保存借款报销单
  202. public function PostLoanReceiptEdit() {
  203. // 1.获得参数
  204. $data = array (
  205. "receiptId" => get_args ( 'receiptId' ),
  206. "officeData" => get_args ( 'officeData' ),
  207. "traveData" => get_args ( 'traveData' ),
  208. "trainData" => get_args ( 'trainData' ),
  209. "enclosurFiles" => get_args ( 'enclosurFiles' ),
  210. "verifyId" => get_args ( 'verifyId' ),
  211. "officeId" => get_args ( 'officeId' ),
  212. "remittanceName" => get_args ( 'remittanceName' ),
  213. "remittanceBankType" => get_args ( 'remittanceBankType' ),
  214. "bankName" => get_args ( 'bankName' ),
  215. "bankNumber" => get_args ( 'bankNumber' ),
  216. "coupletNumber" => get_args ( 'coupletNumber' )
  217. );
  218. // 2.参数校验
  219. $data = $this->feeService->ValidRuleReceiptCreate ( $data );
  220. // 3.处理借款报销单数据
  221. $msg = $this->feeService->LoanReceiptEdi ( $data ['receiptId'] );
  222. // 4.具体数据处理
  223. $msg = $this->feeService->ReceiptEdi ( $data, $this->staff );
  224. return "/saeaBorad";
  225. }
  226. // 审批页面
  227. public function GetViewReceiptApproval() {
  228. $receiptId = isset ( $this->params ['receiptId'] ) ? $this->params ['receiptId'] : '';
  229. if (empty ( $receiptId )) {
  230. die ( 'illegal request-请求参数错误,重新请求' );
  231. }
  232. $receiptId = GetDecryptId ( $receiptId );
  233. $detail = $this->feeService->GetReceipt ( $receiptId );
  234. // 设置借款信息
  235. if (!empty($detail ['loanRid'])){
  236. $loan = $this->feeService->GetLoanReceipt ( $detail ['loanRid'] );
  237. $data ['loan'] = $loan;
  238. }
  239. $data['receipt']=$detail;
  240. $data ['staff'] = $this->staff;
  241. $data ['verifyId'] = $this->verifyId;
  242. $data ['executeId'] = $this->executeId;
  243. $data ['receiptMemu'] = 'saeaBorad';
  244. $data ['memu'] = "receipt";
  245. $this->render ( "/fee/approval/receipt", $data );
  246. }
  247. // 获得个人所有的差旅时间
  248. public function GetJsonTraveDateAll(){
  249. $traveData=$this->feeService->GetTraveDateAll($this->staff['sid']);
  250. echo json_encode($traveData);
  251. }
  252. //报销单检索
  253. public function GetViewFee() {
  254. // include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';
  255. //员工
  256. $data['staffSelect']=$this->staffService->GetStaffCategoryId();
  257. // 办事处
  258. $data ['office'] = $this->officeService->GetAll ();
  259. $data ['yearHtml'] = GetYear();
  260. $data ['staff'] = $this->staff;
  261. $data ['verifyId'] = $this->verifyId;
  262. $data ['executeId'] = $this->executeId;
  263. $data ['receiptMemu'] = 'feeList';
  264. $data ['memu'] = "receipt";
  265. $this->render ( "/fee/list", $data );
  266. }
  267. //获得费用列表
  268. public function GetJsonFee(){
  269. // 1.获得参数
  270. $data = array (
  271. "cPage" => get_args ( 'cPage' ),
  272. "pSize" => get_args ( 'pSize' ),
  273. "sort_createDate" => get_args ( 'sort_createDate' ),
  274. "categoryId" => get_args ( 'categoryId' ),
  275. "feeType" => get_args ( 'feeType' ),
  276. "kw" => get_args ( 'kw' ),
  277. "month" => get_args ( 'month' ),
  278. "staffId" => get_args ( 'staffId' ),
  279. "year" => get_args ( 'year' )
  280. );
  281. $data=$this->feeService->GetFeePage($data);
  282. echo json_encode(array(
  283. "status"=>"success",
  284. "totals"=>$data['count'],
  285. "data"=>$data['list'],
  286. ));
  287. // echo '{"status":"success","totals":62,"data":[{"id":106,"author":"33","praiseNumber":"0","status":1,"readNumber":338,"pic":"/upload/blog/pic/4746_1602504257005.png","title":"表格组件实现打印功能","subtitle":"打印,表格组件打印","type":3,"info":"这是一个不是很常用的功能,但却是在不经意间提升用户体验。","createDate":1602504114000,"lastDate":1602504286042,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":105,"author":"33","praiseNumber":"0","status":1,"readNumber":364,"pic":"/upload/blog/pic/5168_1597745000561.png","title":"表格组件GridManager的嵌套表头详解","subtitle":"gridmanager,嵌套表格","type":3,"info":"嵌套表头这个功能在经历了多次调整后,终于在V2.13.0这个版本内发布。","createDate":1597744702000,"lastDate":1597745002433,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":102,"author":"33","praiseNumber":"0","status":1,"readNumber":380,"pic":"/upload/blog/pic/949_1594620668048.png","title":"GridManager loading样式修改","subtitle":"gridmanager","type":3,"info":"在使用gridmanager表格组件时,如果想要改变loading样式该如何处理?","createDate":1591238998000,"lastDate":1594620669622,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":101,"author":"33","praiseNumber":"0","status":1,"readNumber":122,"pic":"/upload/blog/pic/622_logo.png","title":"GridManager Error: response.totals undefined,please check totalsKey","subtitle":"GridManager Error","type":3,"info":"GridManager Error 解决方法","createDate":1590291381000,"lastDate":1594375210507,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":100,"author":"33","praiseNumber":"0","status":1,"readNumber":57,"pic":"/upload/blog/pic/5718_logo.png","title":"GridManager Error: response.data is not Array,please check dataKey","subtitle":"GridManager Error","type":3,"info":"GridManager Error: response.data is not Array,please check dataKey 错误的解决方法","createDate":1590143273000,"lastDate":1594375303196,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":98,"author":"33","praiseNumber":"0","status":1,"readNumber":184,"pic":"/upload/blog/pic/9933_1594620719884.png","title":"如何解决错综复杂的表格数据(GridManager随笔)","subtitle":"grdmanager,js,导出","type":3,"info":"自从前后端分离的模式推广以后,前后端的开发人员就开始了针对于数据格式的相爱相杀。","createDate":1588147257000,"lastDate":1594620726750,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":96,"author":"33","praiseNumber":"0","status":1,"readNumber":248,"pic":"/upload/blog/pic/4366_316_logo.png","title":"表格组件GridManager的固定列详解","subtitle":"angular,vue,react,原生表格","type":3,"info":"表格固定列的使用详解","createDate":1583980062000,"lastDate":1583980164961,"commentSum":2,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":94,"author":"33","praiseNumber":"0","status":1,"readNumber":353,"pic":"/upload/blog/pic/1887_1594621045179.png","title":"表格导出功能实践","subtitle":"grdmanager,js,导出","type":3,"info":"表格导出功能实践","createDate":1579350185000,"lastDate":1594621047404,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":92,"author":"33","praiseNumber":"0","status":1,"readNumber":836,"pic":"/upload/blog/pic/7539_type.jpg","title":"Content-Type 对照表","subtitle":"Content-Type,Mime-Type","type":3,"info":"Content-Type(Mime-Type)对照表, 有不全的会继续更新","createDate":1533263664000,"lastDate":1558979256770,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":90,"author":"33","praiseNumber":"0","status":1,"readNumber":673,"pic":"/upload/blog/pic/3438_vue-gridmanager.png","title":"Vue框架内使用GridManager","subtitle":"vue,vue gridmanager, gridmanager","type":3,"info":"GridManager对Vue很友好,发布了针对于Vue的npm包。","createDate":1528088965000,"lastDate":1558979136519,"commentSum":1,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":89,"author":"33","praiseNumber":"0","status":1,"readNumber":488,"pic":"/upload/blog/pic/4289_1594620821109.png","title":"GridManager 导出","subtitle":"GridManager导出功能","type":3,"info":"GridManager 具有表格数据导出功能,该功能为纯前端实现,对后端无依赖。","createDate":1526276639000,"lastDate":1594620823667,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":88,"author":"33","praiseNumber":"0","status":1,"readNumber":220,"pic":"/upload/blog/pic/329_1594620833046.png","title":"GridManager 用户偏好记忆","subtitle":"GridManager 用户记忆, GridManager 用户偏好记忆","type":3,"info":"GridManager 会将用户的部分操作进行记忆,从而达到用户行为记忆的效果。","createDate":1525929957000,"lastDate":1594620834782,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":87,"author":"33","praiseNumber":"0","status":1,"readNumber":231,"pic":"/upload/blog/pic/8909_GridManager%E9%9A%90%E8%97%8F%E5%88%97.png","title":"GridManager 隐藏列","subtitle":"gridmanager, 隐藏列","type":3,"info":"GridManager 表格管理组件, 可以便捷的对列的显示状态进行操作。","createDate":1525873470000,"lastDate":1558979068145,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":84,"author":"33","praiseNumber":"0","status":1,"readNumber":213,"pic":"/upload/blog/pic/3533_buhuo.png","title":"js捕获错误信息","subtitle":"js error,捕获错误信息","type":3,"info":"这个不是很常用的功能, 但是想收集客户端的错误信息时却很有必要了解下。 ","createDate":1512053637000,"lastDate":1512114137868,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":83,"author":"33","praiseNumber":"0","status":1,"readNumber":223,"pic":"/upload/blog/pic/9396_1594620989874.png","title":"div绑定键盘事件","subtitle":"div keydown, div keyup","type":3,"info":"在给如div等元素绑定键盘事件(如keydown)时, 会发现绑定是失效的。","createDate":1511696284000,"lastDate":1594620991837,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":82,"author":"33","praiseNumber":"0","status":1,"readNumber":323,"pic":"/upload/blog/pic/5522_1594621083765.png","title":"GridManager 调整数据格式","subtitle":"gridmanager, gridmanager数据格式,gridmanager数据","type":3,"info":"GridManager在处理数据时,需要使用规定的数据格式。而在实际场景中,或多或少存在一些格式差异。在这里将对这些差异的处理方式进行说明","createDate":1510671378000,"lastDate":1594621087383,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":81,"author":"33","praiseNumber":"0","status":1,"readNumber":225,"pic":"/upload/blog/pic/6849_1594621100048.png","title":"GridManager 实现搜索","subtitle":"GridManager搜索, 表格,gridmanager","type":3,"info":"搜索功能在GridManager中的实现方式很简单,可通过setQuery方法实现。","createDate":1510581680000,"lastDate":1594621101656,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":80,"author":"33","praiseNumber":"0","status":1,"readNumber":137,"pic":"/upload/blog/pic/5676_1594621160163.png","title":"GridManager宽度配置不生效与出现滚动条","subtitle":"GridManager,GridManager宽度配置不生效,GridManager出现滚动条,GridManager宽度","type":3,"info":"某一例配置的宽度为100px, 而生成的宽度却不是100px,并且出现了横向滚动条?","createDate":1508678057000,"lastDate":1594621161393,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":79,"author":"33","praiseNumber":"0","status":1,"readNumber":206,"pic":"/upload/blog/pic/24_1594621175986.png","title":"GridManager常见问题","subtitle":"GridManager,GridManager问题,GridManager常见问题","type":3,"info":"这里收集了一些GridManager常见问题。","createDate":1508422239000,"lastDate":1594621177621,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"},{"id":78,"author":"33","praiseNumber":"0","status":1,"readNumber":190,"pic":"/upload/blog/pic/3747_1594621196206.png","title":"GridManager排序详解","subtitle":"GridManager排序,GridManager,GridManager排序详解,GridManager排序使用,GridManager组合排序","type":3,"info":"GridManager排序原理及常见问题汇总","createDate":1508332140000,"lastDate":1594621199429,"commentSum":0,"username":"写个程序换个饼","photo":"/upload/user/photo/8495_1.jpg"}]}';
  288. }
  289. //获得办事处员工
  290. public function PostJsonStaffCategory(){
  291. $data = array (
  292. "categoryId" => get_args ( 'categoryId' ),
  293. );
  294. $staffList=$this->staffService->GetStaffCategoryId($data['categoryId']);
  295. echo json_encode($staffList);
  296. }
  297. // 所有收支
  298. public function GetViewIncomeExpenses(){
  299. // include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';
  300. $data ['yearHtml'] = GetYear();
  301. $data ['staff'] = $this->staff;
  302. $data ['verifyId'] = $this->verifyId;
  303. $data ['executeId'] = $this->executeId;
  304. $data ['receiptMemu'] = 'payments';
  305. $data ['memu'] = "receipt";
  306. $this->render ( "/fee/incomeExpenses/list", $data );
  307. }
  308. //获得费用列表
  309. public function GetJsonIncomeExpenses(){
  310. // include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';
  311. // 1.获得参数
  312. $data = array (
  313. "cPage" => get_args ( 'cPage' ),
  314. "pSize" => get_args ( 'pSize' ),
  315. "sort_createDate" => get_args ( 'sort_createDate' ),
  316. "kw" => get_args ( 'kw' ),
  317. "year" => get_args ( 'year' ),
  318. "month" => get_args ( 'month' ),
  319. "expensesType" => get_args ( 'expensesType' ),
  320. "accountType" => get_args ( 'accountType' ),
  321. "expenditureType" => get_args ( 'expenditureType' ),
  322. );
  323. $data=$this->incomeExpensesService->GetIncomeExpensesPage($data);
  324. echo json_encode(array(
  325. "status"=>"success",
  326. "totals"=>$data['count'],
  327. "data"=>$data['list'],
  328. ));
  329. }
  330. // 所有收支
  331. public function GetViewIncomeCollect(){
  332. // include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';
  333. $data ['yearHtml'] = GetYear();
  334. $data ['staff'] = $this->staff;
  335. $data ['verifyId'] = $this->verifyId;
  336. $data ['executeId'] = $this->executeId;
  337. $data ['receiptMemu'] = 'paymentsCollect';
  338. $data ['memu'] = "receipt";
  339. $this->render ( "/fee/incomeExpenses/income", $data );
  340. }
  341. //获得费用列表
  342. public function GetJsonIncomeCollect(){
  343. // include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';
  344. // 1.获得参数
  345. $data = array (
  346. "cPage" => get_args ( 'cPage' ),
  347. "pSize" => get_args ( 'pSize' ),
  348. "expensesType"=>1 ,
  349. "year" => get_args ( 'year' ) ? get_args ( 'year' ): date("Y"),
  350. "month" => get_args ( 'month' ),
  351. );
  352. $data=$this->incomeExpensesService->GetIncomeCollect($data);
  353. echo json_encode(array(
  354. "status"=>"success",
  355. "totals"=>1000,
  356. "data"=>$data,
  357. ));
  358. }
  359. // 所有收支
  360. public function GetViewExpensesCollect(){
  361. include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';
  362. $data ['yearHtml'] = GetYear();
  363. $data ['staff'] = $this->staff;
  364. $data ['verifyId'] = $this->verifyId;
  365. $data ['executeId'] = $this->executeId;
  366. $data ['receiptMemu'] = 'paymentsCollect';
  367. $data ['memu'] = "receipt";
  368. $this->render ( "/fee/incomeExpenses/expenses", $data );
  369. }
  370. //获得费用列表
  371. public function GetJsonExpensesCollect(){
  372. // include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';
  373. // 1.获得参数
  374. $data = array (
  375. "cPage" => get_args ( 'cPage' ),
  376. "pSize" => get_args ( 'pSize' ),
  377. "expensesType"=>2 ,
  378. "year" => get_args ( 'year' ) ? get_args ( 'year' ): date("Y"),
  379. "month" => get_args ( 'month' ),
  380. );
  381. $data=$this->incomeExpensesService->GetExpensesCollect($data);
  382. echo json_encode(array(
  383. "status"=>"success",
  384. "totals"=>1000,
  385. "data"=>$data,
  386. ));
  387. }
  388. public function beforeRun($resource, $action) {
  389. $this->accessAuth ( $resource, $action );
  390. }
  391. function __construct() {
  392. $this->session ();
  393. $this->feeService = new fee_service ();
  394. $this->regionService = new region_service ();
  395. $this->officeService = new office_service ();
  396. $this->staffService = new staff_service ();
  397. $this->incomeExpensesService = new incomeExpenses_service ();
  398. }
  399. // 访问权限-费用管理
  400. private function accessAuth($resource, $action) {
  401. Doo::loadClass ( 'XDeode' );
  402. $XDeode = new XDeode ( 5 );
  403. $sid = $XDeode->decode ( $_COOKIE ["staff"] );
  404. // 1.单独判断公司汇总的访问权限
  405. if ($action == 'companyCategoryCollect') {
  406. Doo::loadModel ( "receiptAuthorityManage" );
  407. $invoiceCompanyManage = new receiptAuthorityManage ();
  408. $icm = $invoiceCompanyManage->getInvoiceCMByStaff ( $sid );
  409. if (empty ( $icm ))
  410. die ( 'illegal request-无权访问该页面' );
  411. }
  412. // 2.获得登陆用户信息
  413. Doo::loadModel ( 'cld/staff_cld' );
  414. $staff = new staff_cld ();
  415. $this->staff = $staff->Get ( $sid );
  416. // 3.是否有权限访问
  417. $accessModular = 'RECEIPTS';
  418. if (empty ( $this->staff ['cldAccessArray'] )) {
  419. die ( 'illegal request-无权访问费用页面,向总部申请权限' );
  420. } else {
  421. if (in_array ( $accessModular, $this->staff ['cldAccessArray'] )) {
  422. if (Doo::acl ()->isAllowed ( $accessModular, $resource, $action )) {
  423. $flag = true;
  424. } else {
  425. $flag = false;
  426. }
  427. } else {
  428. die ( 'illegal request-无权访问费用页面' );
  429. }
  430. }
  431. if (! $flag)
  432. die ( 'illegal request-无权访问费用页面' );
  433. }
  434. // 登陆判定
  435. private function session() {
  436. if (isset ( $_COOKIE ["staff"] )) {
  437. if (! empty ( $_COOKIE ["staff"] )) {
  438. Doo::loadModel ( 'staff' );
  439. Doo::loadModel ( 'verify' );
  440. $verify = new verify ();
  441. $staff = new staff ();
  442. Doo::loadModel ( "execute" );
  443. $execute = new execute ();
  444. $verifyList = $verify->find ( array (
  445. 'select' => 'staff',
  446. 'asArray' => true
  447. ) );
  448. $list = array ();
  449. // 判断角色的审批权限
  450. foreach ( $verifyList as $key => $value ) {
  451. $ver = json_decode ( $value ['staff'] );
  452. foreach ( $ver as $k => $v ) {
  453. if ($v [1] == 'ROLE') {
  454. $roleList = json_decode ( $v [3] );
  455. foreach ( $roleList as $t => $g ) {
  456. $gList = explode ( "_", $g );
  457. array_push ( $list, $gList [0] );
  458. // print_r($list);
  459. }
  460. } else
  461. array_push ( $list, $v [0] );
  462. }
  463. }
  464. // 判断执行人的审批权限
  465. $executeList = $execute->find ( array (
  466. 'where' => 'mold !="日常收支"',
  467. 'select' => 'staff',
  468. 'asArray' => true
  469. ) );
  470. $list2 = array ();
  471. foreach ( $executeList as $key => $value ) {
  472. $ver = json_decode ( $value ['staff'] );
  473. foreach ( $ver as $k => $v ) {
  474. array_push ( $list2, $v [0] );
  475. }
  476. }
  477. $eidList = file_get_contents ( "protected/config/execute/execute.ini" );
  478. $eidList = array_filter ( explode ( ",", $eidList ) );
  479. $this->executeId = array_merge ( $list2, $eidList );
  480. // print_r($this->executeId);
  481. $this->verifyId = $list;
  482. // $this->staff = $staff->getUserByIdList ( $_COOKIE ["staff"] );
  483. return "/";
  484. }
  485. }
  486. Doo::loadCore ( 'uri/DooUriRouter' );
  487. $router = new DooUriRouter ();
  488. $routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER );
  489. if ($routeRs ['1'] != "login") {
  490. header ( 'Content-Type:text/html;charset=utf-8' );
  491. @header ( "Location: /login" );
  492. }
  493. }
  494. private function makeTraveDefault($region){
  495. $defaultTraveProvince="";
  496. if($this->staff['category']=="总部"||$this->staff['category']=="总部1"){
  497. $defaultTraveProvince="广东省";
  498. }elseif($this->staff['category']=="重庆办"){
  499. $defaultTraveProvince="重庆市";
  500. }else{
  501. $defaultTraveProvince=str_replace("办","省",$this->staff['category']);
  502. }
  503. // 获得二级地区的index
  504. $defaultTraveProvinceIndex=0;
  505. foreach ($region as $key=>$value){
  506. if($value['name']==$defaultTraveProvince){
  507. $defaultTraveProvinceIndex=$key;
  508. }
  509. }
  510. return array("defaultTraveProvince"=>$defaultTraveProvince,"defaultTraveProvinceIndex"=>$defaultTraveProvinceIndex);
  511. }
  512. // 构造页面数据
  513. private function makeReceiptEdiData($data, $accountItem, $verify) {
  514. $officeJson = array (
  515. "id" => 0,
  516. "name" => "办事处相关费用",
  517. "show" => false,
  518. "anchor" => "officeAnchor",
  519. "active" => false,
  520. "daily" => $accountItem ['daily'],
  521. "other" => $accountItem ['other'],
  522. "officeExplain" => array (
  523. 0 => array (
  524. "officeExplain" => ""
  525. )
  526. )
  527. );
  528. if (! empty ( $data ['officeJson'] )) {
  529. $officeJson = json_decode ( $data ['officeJson'], true );
  530. }
  531. $traveJson = array (
  532. "id" => 1,
  533. "name" => "差旅相关费用",
  534. "show" => false,
  535. "anchor" => "traveAnchor",
  536. "active" => false,
  537. "trave" => $accountItem ['trave'],
  538. "traveList" => array (),
  539. "traveExplain" => array (
  540. 0 => array (
  541. "traveExplain" => ""
  542. )
  543. )
  544. );
  545. if (! empty ( $data ['traveJson'] )) {
  546. $traveJson = json_decode ( $data ['traveJson'], true );
  547. }
  548. $trainJson = array (
  549. "id" => 2,
  550. "name" => "内部培训费用",
  551. "show" => false,
  552. "anchor" => "trainAnchor",
  553. "active" => false,
  554. "train" => $accountItem ['train'],
  555. "trainExplain" => array (
  556. 0 => array (
  557. "trainExplain" => ""
  558. )
  559. )
  560. );
  561. if (! empty ( $data ['trainJson'] )) {
  562. $trainJson = json_decode ( $data ['trainJson'], true );
  563. }
  564. return array (
  565. "receiptTypeMenu" => array (
  566. 0 => $officeJson,
  567. 1 => $traveJson,
  568. 2 => $trainJson
  569. ),
  570. "verify" => $verify,
  571. "verifyId" => $data ['verify'],
  572. "remittanceBankType" => $data['remittanceBankType'],
  573. "enclosurFiles" => array (),
  574. "aletMsg" => '',
  575. "displayStsates" => 'none'
  576. );
  577. }
  578. }
  579. ?>