Advertisement
Guest User

ts

a guest
Mar 15th, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 342.07 KB | None | 0 0
  1. @extends('layouts.main')
  2. @section('styles')
  3. <style>
  4. .nav-tabs {
  5. position: initial!important;
  6. }
  7. .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
  8. background: #414141!important;
  9. color: #f39c12 !important;
  10. }
  11. .nav > li > a {
  12. padding: 10px 15px!important;
  13. }
  14. .nav-tabs a{
  15. color: #428bca !important;
  16. }
  17. .nav-tabs {
  18. border-bottom: 1px solid #000;
  19. }
  20.  
  21. .error-label {
  22. color: #a94442;
  23. display: none;
  24. padding: 3px;
  25. }
  26.  
  27. .has-error .error-label {
  28. display: block;
  29. }
  30. td.highlight {
  31. font-weight: bold;
  32. color: blue;
  33. }
  34. #deposits_table tbody tr.highlight-discrepancy{
  35. background: #f1a472!important;
  36. }
  37.  
  38. #users_table td{
  39. position: relative;
  40. }
  41.  
  42. #users_table td .voucher-code{
  43. display : none;
  44. /*position : absolute;*/
  45. }
  46.  
  47. #users_table tr:hover .voucher-code{
  48. display : initial;
  49. }
  50.  
  51. #users_table td .set-badges{
  52. display : none;
  53. }
  54.  
  55. #users_table tr:hover .set-badges{
  56. display : initial;
  57. }
  58.  
  59. #users_table td .set-credits{
  60. position: absolute;
  61. right: 20px;
  62. top:10px;
  63. font-size: 15px;
  64. display: none;
  65. cursor: pointer;
  66. }
  67.  
  68. #users_table tr:hover .set-credits{
  69. display : initial;
  70. }
  71.  
  72. #users_table tr:hover .dropdown_display_button{
  73. display : initial;
  74. }
  75.  
  76. #users_table td .dropdown_display_button {
  77. position: absolute;
  78. right: 5px;
  79. top:5px;
  80. font-size: 15px;
  81. display: none;
  82. cursor: pointer;
  83. }
  84.  
  85. #users_table select {
  86. font-size: 12px;
  87. }
  88.  
  89. #users_table .cell_edit_hint {
  90. color: #555;
  91. font-size: .8em;
  92. margin: .3em .2em;
  93. display: block;
  94. }
  95.  
  96. #users_table th:eq(5){
  97. width:100px;
  98. }
  99.  
  100. /*table{
  101. margin: 0 auto;
  102. width: 100%;
  103. clear: both;
  104. border-collapse: collapse;
  105. table-layout: fixed;
  106. word-wrap:break-word;
  107. }*/
  108. .btn-circle-micro {
  109. width: 19px;
  110. height: 19px;
  111. text-align: center;
  112. padding: 1px 0;
  113. font-size: 11px;
  114. line-height: 1.1;
  115. border-radius: 30px;
  116. }
  117. /* .text-wrap{
  118. white-space:normal;
  119. }
  120. .width-200{
  121. width:1000px;
  122. } */
  123.  
  124. table td {
  125. word-wrap: break-word;
  126. max-width: 400px;
  127. }
  128.  
  129. .bubble_counter {
  130. position:relative;
  131. }
  132. .bubble_counter[data-count]:after {
  133. content:attr(data-count);
  134. position:absolute;
  135. top:-15px;
  136. right:-15px;
  137. font-size:.8em;
  138. font-weight:bold;
  139. background:red;
  140. color:black;
  141. width:22px;height:22px;
  142. text-align:center;
  143. line-height:22px;
  144. border-radius:50%;
  145. box-shadow:0 0 1px #333;
  146. }
  147. .main-menu-header {
  148. list-style-type: none;
  149. margin: 0;
  150. padding: 0;
  151. overflow: hidden;
  152. background-color: #333;
  153. }
  154.  
  155. .main-menu-header li {
  156. float: left;
  157. }
  158.  
  159. .main-menu-header li a, .sub-menu-btn {
  160. display: inline-block;
  161. color: white;
  162. text-align: center;
  163. padding: 14px 16px;
  164. text-decoration: none;
  165. font-size: 20px;
  166. font-weight: 700;
  167. text-transform: uppercase;
  168. line-height: 35px;
  169. }
  170.  
  171. .main-menu-header li a:hover, .sub-menus:hover .sub-menu-btn {
  172. background-color: #717171;
  173. }
  174.  
  175. .main-menu-header li.sub-menus {
  176. display: inline-block;
  177. }
  178.  
  179. .main-menu-header li a:active, .sub-menus:active{
  180. background-color: #717171;
  181. }
  182.  
  183. .sub-menus-content {
  184. display: none;
  185. position: absolute;
  186. background-color: #f9f9f9;
  187. min-width: 160px;
  188. box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  189. z-index: 1;
  190. }
  191.  
  192. .sub-menus .sub-menus-content a {
  193. color: black;
  194. padding: 12px 16px;
  195. text-decoration: none;
  196. display: block;
  197. text-align: left;
  198. }
  199.  
  200. .sub-menus-content a:hover {background-color: #f1f1f1}
  201.  
  202. .sub-menus:hover .sub-menus-content {
  203. display: block;
  204. }
  205. #partner_table .edit-button{
  206. font-size: 22px;
  207. position: relative;
  208. top: 3px;
  209. left: 5px;
  210. cursor: pointer;
  211. display: none;
  212. }
  213. #partner_table tr:hover .edit-button{
  214. display: initial;
  215. }
  216. .admin_header_active{
  217. background-color: #717171;
  218. }
  219. .open-update-info, .save-partner-info{
  220. display: none;
  221. }
  222. .form-twin-column{
  223. width: 48%;
  224. margin-bottom: 10px;
  225. }
  226. #update-info{
  227. max-height: 600px;
  228. display: none;
  229. overflow-y: auto;
  230. overflow-x: hidden;
  231. }
  232. .text-wrap{
  233. cursor: pointer;
  234. font-weight: bold;
  235. }
  236. .ticket_thread_column{
  237. max-height: 600px;
  238. overflow-y: auto;
  239. }
  240. .thread_box{
  241. padding: 10px;
  242. background-color: #d8d8d8;
  243. margin: 5px 0px;
  244. word-wrap: break-word;
  245. border-radius: 10px;
  246. }
  247. .thread_box_owner{
  248. padding: 10px;
  249. background-color: #efefef;
  250. margin: 5px 0px;
  251. word-wrap: break-word;
  252. border-radius: 10px;
  253. }
  254. .reply_box_thread{
  255. margin: 8px 25px;
  256. }
  257. .thread_img_square{
  258. height: 50px;
  259. float: left;
  260. margin-bottom: 10px;
  261. }
  262. .thread_icon{
  263. width: 65px;
  264. height: 50px;
  265. font-size: 46px;
  266. padding: 2px 10px;
  267. display: inline-block;
  268. }
  269. .thread_info_panel{
  270. width: calc(100% - 65px);
  271. height: 50px;
  272. float: left;
  273. margin-bottom: 10px;
  274. }
  275. .thread_user_name{
  276. font-size: 18px;
  277. font-weight: bold;
  278. margin: 5px 0px 0px;
  279. }
  280. .thread_content{
  281. padding: 0px 15px;
  282. }
  283. .clickable{
  284. cursor: pointer;
  285. }
  286.  
  287. .panel-heading span {
  288. margin-top: -20px;
  289. font-size: 15px;
  290. }
  291. fieldset.scheduler-border {
  292. border: 1px groove #ddd !important;
  293. padding: 0 1.4em 1.4em 1.4em !important;
  294. margin: 0 0 1.5em 0 !important;
  295. -webkit-box-shadow: 0px 0px 0px 0px #000;
  296. box-shadow: 0px 0px 0px 0px #000;
  297. }
  298.  
  299. legend.scheduler-border {
  300. width:inherit; /* Or auto */
  301. padding:0 10px; /* To give a bit of padding on the left and right */
  302. border-bottom:none;
  303. }
  304. </style>
  305. <link rel="stylesheet" href="{{ asset('bower_components/bootstrap-sweetalert/dist/sweetalert.css') }}">
  306. <link rel="stylesheet" href="{{ asset('css/fileinput.css') }}">
  307. <link rel="stylesheet" href="{{ asset('css/datatables.min.css') }}">
  308. <link rel="stylesheet" href="{{ asset('css/viewer.min.css') }}">
  309. <link rel="stylesheet" href="{{ asset('css/select2/select2.min.css') }}">
  310. <link rel="stylesheet" href="{{ asset('css/bootstrap-multiselect.css') }}">
  311. <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/responsive/2.2.1/css/responsive.dataTables.min.css">
  312. @endsection
  313.  
  314. @section('content')
  315. <div class="main-container dark-grey">
  316.  
  317. <div class="m-container1" style="width: 98% !important; margin-bottom: 0px;">
  318. <ul class="main-menu-header">
  319. <li role="presentation" class="active"><a href="#user-administration" class="admin_header_active" id="user" aria-controls="user-administration" role="tab" data-toggle="tab">User Administration</a></li>
  320. <li role="presentation"><a href="#partner-administration" id="partner" aria-controls="partner-administration" role="tab" data-toggle="tab">Partner Administration</a></li>
  321. @if(!\App::environment('prod'))
  322. <li role="presentation">
  323. <a href="#market-place" id="market" aria-controls="market-place" role="tab" data-toggle="tab">Market Manager</a>
  324. </li>
  325. @endif
  326. <li role="presentation"><a href="#site-settings" id="settings" aria-controls="site-settings" role="tab" data-toggle="tab">Site Settings</a></li>
  327. <!-- <li role="presentation" class="sub-menus">
  328. <a href="javascript:void(0)" class="sub-menu-btn">Dropdown</a>
  329. <div class="sub-menus-content">
  330. <a href="#" aria-controls="home" role="tab" data-toggle="tab">Link 1</a>
  331. <a href="#" aria-controls="home" role="tab" data-toggle="tab">Link 2</a>
  332. <a href="#" aria-controls="home" role="tab" data-toggle="tab">Link 3</a>
  333. </div>
  334. </li> -->
  335. </ul>
  336. </div>
  337.  
  338. <div class="m-container1" style="width: 98% !important; display: none;" id="site-settings">
  339. <div class="main-ct">
  340. <div class="title2">Site Settings</div>
  341. <div class="clearfix"></div>
  342. <div class="blk-1">
  343. <div class="col-md-12">
  344. <ul class="nav nav-tabs" role="tablist">
  345. <li role="presentation" class="active">
  346. <a href="#site-config" aria-controls="site-config" role="tab" data-toggle="tab">2EZ Configuration</a>
  347. </li>
  348. <li role="presentation">
  349. <a href="#site-tos" aria-controls="site-tos" role="tab" data-toggle="tab">Terms &amp; Conditions Editor</a>
  350. </li>
  351. </ul>
  352. <div class="tab-content">
  353. <div role="tabpanel" class="tab-pane fade in active" id="site-config">
  354. <form id="site_settings_form">
  355. <div class="col-md-3">
  356. <fieldset class="scheduler-border">
  357. <legend class="scheduler-border">BDO</legend>
  358. <div class="form-group">
  359. <label for="bdo-account-name">Account Name:</label>
  360. <input id="bdo-account-name" class="form-control" type="text" name="bdo-account-name" value="{{$settings['bdo-account-name']}}" />
  361. <label class="error-label">Invalid Input</label>
  362. </div>
  363. <div class="form-group">
  364. <label for="bdo-account-number">Account Number:</label>
  365. <input id="bdo-account-number" class="form-control" type="text" name="bdo-account-number" value="{{$settings['bdo-account-number']}}" />
  366. <label class="error-label">Invalid Input</label>
  367. </div>
  368. </fieldset>
  369. </div>
  370. <div class="col-md-3">
  371. <fieldset class="scheduler-border">
  372. <legend class="scheduler-border">BPI</legend>
  373. <div class="form-group">
  374. <label for="bpi-account-name">Account Name:</label>
  375. <input id="bpi-account-name" class="form-control" type="text" name="bpi-account-name" value="{{$settings['bpi-account-name']}}"/>
  376. <label class="error-label">Invalid Input</label>
  377. </div>
  378. <div class="form-group">
  379. <label for="bpi-account-number">Account Number:</label>
  380. <input id="bpi-account-number" class="form-control" type="text" name="bpi-account-number" value="{{$settings['bpi-account-number']}}"/>
  381. <label class="error-label">Invalid Input</label>
  382. </div>
  383. </fieldset>
  384. </div>
  385. <div class="col-md-3">
  386. <fieldset class="scheduler-border">
  387. <legend class="scheduler-border">MetroBank</legend>
  388. <div class="form-group">
  389. <label for="metro-account-name">Account Name:</label>
  390. <input id="metro-account-name" class="form-control" type="text" name="metro-account-name" value="{{$settings['metro-account-name']}}"/>
  391. <label class="error-label">Invalid Input</label>
  392. </div>
  393. <div class="form-group">
  394. <label for="metro-account-number">Account Number:</label>
  395. <input id="metro-account-number" class="form-control" type="text" name="metro-account-number" value="{{$settings['metro-account-number']}}"/>
  396. <label class="error-label">Invalid Input</label>
  397. </div>
  398. </fieldset>
  399. </div>
  400. <div class="col-md-3">
  401. <fieldset class="scheduler-border">
  402. <legend class="scheduler-border">SecurityBank</legend>
  403. <div class="form-group">
  404. <label for="security-account-name">Account Name:</label>
  405. <input id="security-account-name" class="form-control" type="text" name="security-account-name" value="{{$settings['security-account-name']}}"/>
  406. <label class="error-label">Invalid Input</label>
  407. </div>
  408. <div class="form-group">
  409. <label for="security-account-number">Account Number:</label>
  410. <input id="security-account-number" class="form-control" type="text" name="security-account-number" value="{{$settings['security-account-number']}}"/>
  411. <label class="error-label">Invalid Input</label>
  412. </div>
  413. </fieldset>
  414. </div>
  415. <div class="col-md-6">
  416. <fieldset class="scheduler-border">
  417. <legend class="scheduler-border">Remittances</legend>
  418. <div class="form-group">
  419. <label for="remittance-name">Receiver Name:</label>
  420. <input id="remittance-name" class="form-control" type="text" name="remittance-name" value="{{$settings['remittance-name']}}"/>
  421. <label class="error-label">Invalid Input</label>
  422. </div>
  423. <div class="form-group">
  424. <label for="remittance-number">Receiver Number/Contact:</label>
  425. <input id="remittance-number" class="form-control" type="text" name="remittance-number" value="{{$settings['remittance-number']}}"/>
  426. <label class="error-label">Invalid Input</label>
  427. </div>
  428. <div class="form-group">
  429. <label for="remittance-location">Receiver Location:</label>
  430. <input id="remittance-location" class="form-control" type="text" name="remittance-location" value="{{$settings['remittance-location']}}"/>
  431. <label class="error-label">Invalid Input</label>
  432. </div>
  433. </fieldset>
  434. </div>
  435. <div class="col-md-6">
  436. <fieldset class="scheduler-border">
  437. <legend class="scheduler-border">Coins.PH</legend>
  438. <div class="form-group">
  439. <label for="wallet-address">Wallet Address:</label>
  440. <input id="wallet-address" class="form-control" type="text" name="coins-wallet-address" value="{{$settings['coins-wallet-address']}}"/>
  441. <label class="error-label">Invalid Input</label>
  442. </div>
  443. </fieldset>
  444. </div>
  445. </form>
  446. <div class="col-md-12">
  447. <p>Last updated: </p>
  448. <button id="save_settings_btn" class="btn btn-primary" data-progress-text="Saving ... <i class='fa fa-circle-o-notch fa-spin fa-fw'></i>">Submit</button>
  449. </div>
  450. </div>
  451. <div role="tabpanel" class="tab-pane fade in" id="site-tos">
  452. <br/>
  453. <p class="last-modified-text">Last Modified: {{ $tos->updated_at->toDayDateTimeString() }} by {{ $tos->editor->name }}<br/>
  454. URL: <a target="_new" href="{{url('/termsandconditions')}}">{{url('/termsandconditions')}}</a></p>
  455. <form id="tos_form" autocomplete="off" action="" method="POST" role="form">
  456. <div class="form-group">
  457. <label>T&amp;C Content</label>
  458. <textarea class="form-control" id="tos_content_ckedit">
  459. {!! $tos->contents !!}
  460. </textarea>
  461. <label class="error-label">Invalid Input</label>
  462. </div>
  463. </form>
  464. <button id="save-tos-btn" type="button" class="btn btn-primary" data-progress-text="Saving ... <span class='glyphicon glyphicon-refresh fa-spin'></span>">Save</button>
  465. </div>
  466. </div>
  467. </div>
  468. </div>
  469. </div>
  470. </div>
  471.  
  472. <div class="m-container1" style="width: 98% !important; display: none;" id="market-place">
  473. <div class="main-ct">
  474. <div class="title2">Market Options and Purchases</div>
  475. <div class="clearfix"></div>
  476. <div class="blk-1">
  477. <div class="col-md-12">
  478. <ul class="nav nav-tabs" role="tablist">
  479. <li role="presentation" class="active">
  480. <a href="#product-options" aria-controls="product-options" role="tab" data-toggle="tab">Items</a>
  481. </li>
  482. <li role="presentation">
  483. <a href="#product-purchase" aria-controls="product-purchase" role="tab" data-toggle="tab">Product Purchased</a>
  484. </li>
  485. </ul>
  486. <div class="tab-content">
  487. <div role="tabpanel" class="tab-pane fade in active" id="product-options">
  488. <div class="col-md-4" style="margin: 0px 0px 10px -15px;">
  489. <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#add-market-item">
  490. <i class="fa fa-plus"></i> Add Item
  491. </button>
  492. </div>
  493. <div class="tab-content" style="margin-top: 20px">
  494. <table id="market_item_list" class="table table-striped" width="100%">
  495. <thead>
  496. <tr>
  497. <th></th>
  498. <th>Item Name</th>
  499. <th>Item Price</th>
  500. <th>Details</th>
  501. </tr>
  502. </thead>
  503. <tbody>
  504. </tbody>
  505. </table>
  506. </div>
  507. </div>
  508. <div role="tabpanel" class="tab-pane fade in" id="product-purchase">
  509. <div class="tab-content" style="margin-top: 20px">
  510. <table id="" class="table table-striped" width="100%">
  511. <thead>
  512. <tr>
  513. <th>User</th>
  514. <th>Purchased Item</th>
  515. <th>Price</th>
  516. <th>Address</th>
  517. <th>Status</th>
  518. </tr>
  519. </thead>
  520. <tbody>
  521. </tbody>
  522. </table>
  523. </div>
  524. </div>
  525. </div>
  526. </div>
  527. </div>
  528. </div>
  529. </div>
  530. <!-- Modal for adding item -->
  531. <style type="text/css">
  532. .btn-file {
  533. position: relative;
  534. overflow: hidden;
  535. }
  536. .btn-file input[type=file] {
  537. position: absolute;
  538. top: 0;
  539. right: 0;
  540. min-width: 100%;
  541. min-height: 100%;
  542. font-size: 100px;
  543. text-align: right;
  544. filter: alpha(opacity=0);
  545. opacity: 0;
  546. outline: none;
  547. background: white;
  548. cursor: inherit;
  549. display: block;
  550. }
  551.  
  552. #item-image-upload{
  553. width: 50%;
  554. margin: 25px 130px;
  555. }
  556. </style>
  557. <div class="modal fade" id="add-market-item" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
  558. <div class="modal-dialog">
  559. <div class="modal-content">
  560. <!-- Modal Header -->
  561. <div class="modal-header">
  562. <button type="button" class="close"
  563. data-dismiss="modal">
  564. <span aria-hidden="true">&times;</span>
  565. <span class="sr-only">Close</span>
  566. </button>
  567. <h4 class="modal-title" id="myModalLabel">
  568. Add Product
  569. </h4>
  570. </div>
  571.  
  572. <!-- Modal Body -->
  573. <div class="modal-body">
  574. <form role="form" method="POST" enctype="multipart/form-data" id="market-product-form">
  575. <div class="form-group">
  576. <div class="row">
  577. <div class="col-md-7">
  578. <label for="market_item_name">Product Name</label>
  579. <input type="text" class="form-control" id="market_item_name" name="market_item_name">
  580. </div>
  581. <div class="col-md-5">
  582. <label for="market_item_price">Product Price</label>
  583. <input type="number" class="form-control" id="market_item_price" name="market_item_price">
  584. </div>
  585. </div>
  586. </div>
  587. <div class="form-group">
  588. <label for="market_item_desc">Product Details</label>
  589. <textarea class="form-control rounded-0" id="market_item_desc" rows="3" name="market_item_desc"></textarea>
  590. </div>
  591. <div class="form-group">
  592. <label>Upload Image</label>
  593. <div class="input-group">
  594. <span class="input-group-btn">
  595. <span class="btn btn-default btn-file">
  596. Browse… <input type="file" id="imgInp" accept="image/*" name="market_item_image">
  597. </span>
  598. </span>
  599. <input type="text" class="form-control" readonly>
  600. </div>
  601. <div class="alert alert-danger" role="alert">
  602. Image should be 270x245
  603. </div>
  604. <img id='item-image-upload'/>
  605. </div>
  606. </form>
  607. </div>
  608. <!-- Modal Footer -->
  609. <div class="modal-footer">
  610. <button type="button" class="btn btn-success" id="upload-market-item">Save</button>
  611. <button type="button" class="btn btn-danger" data-dismiss="modal">Cancel</button>
  612. </div>
  613. </div>
  614. </div>
  615. </div>
  616. <!-- End modal for adding item -->
  617.  
  618. <div class="m-container1" style="width: 98% !important;" id="user-administration">
  619. <div class="main-ct">
  620.  
  621. <div class="title2">Administration</div>
  622. <div class="clearfix"></div>
  623. <div class="blk-1">
  624. <div class="col-md-12">
  625.  
  626. <!-- Nav tabs -->
  627. <ul class="nav nav-tabs" role="tablist">
  628. <li role="presentation" class="active"><a href="#dasboard" aria-controls="dasboard" role="tab" data-toggle="tab">Dashboard</a></li>
  629. <li role="presentation"><a href="#deposits" aria-controls="deposits" role="tab" data-toggle="tab">Deposits</a></li>
  630. <li role="presentation"><a href="#cashout" aria-controls="cashout" role="tab" data-toggle="tab">Cash Outs</a></li>
  631. <li role="presentation"><a href="#bettings" aria-controls="bettings" role="tab" data-toggle="tab">Bettings</a></li>
  632. <li role="presentation"><a href="#donations" aria-controls="donations" role="tab" data-toggle="tab">Donations</a></li>
  633. <li role="presentation"><a href="#commissions" aria-controls="commissions" role="tab" data-toggle="tab">Commissions</a></li>
  634. <li role="presentation"><a href="#badges" aria-controls="badges" role="tab" data-toggle="tab">Badges</a></li>
  635. <li role="presentation"><a href="#usermanagement" aria-controls="usermanagement" role="tab" data-toggle="tab">User Management</a></li>
  636. <li role="presentation"><a href="#rewards" aria-controls="rewards" role="tab" data-toggle="tab">Rewards</a></li>
  637. <li role="presentation"><a href="#bugs" aria-controls="bugs" role="tab" data-toggle="tab"><span id="bug_ctr" class="bubble_counter">Reported Bugs</span></a></li>
  638. <li role="presentation"><a href="#promos" aria-controls="promos" role="tab" data-toggle="tab"><span id="promo_ctr" class="bubble_counter">Promotions</span></a></li>
  639. <li role="presentation"><a href="#referrals" aria-controls="referrals" role="tab" data-toggle="tab">Referrals</a></li>
  640. <li role="presentation"><a href="#payouts" aria-controls="payouts" role="tab" data-toggle="tab">Payouts</a></li>
  641. <li role="presentation"><a href="#rebates" aria-controls="rebates" role="tab" data-toggle="tab">Rebates</a></li>
  642. <li role="presentation"><a href="#verify" aria-controls="verify" role="tab" data-toggle="tab"><span id="verification_ctr" class="bubble_counter">Verification</span></a></li>
  643. </ul>
  644.  
  645. <!-- Tab panes -->
  646. <div class="tab-content">
  647. <div role="tabpanel" class="tab-pane fade in active" id="dasboard">
  648. <div class="tab-content" style="margin-top: 20px">
  649. <h3>Fees Collected</h3>
  650. <table id="fees_table" class="table table-striped" width="100%">
  651. <thead>
  652. <tr>
  653. <th>Date</th>
  654. <th>Type</th>
  655. <th>User/Match/Tournament ID</th>
  656. <th>Details</th>
  657. <th>Amount Earned</th>
  658. </tr>
  659. </thead>
  660. <tbody>
  661. </tbody>
  662. </table>
  663. <h3>Overview</h3>
  664. <div class="row" style="margin-bottom:25px;" id="loading-text"><div class="col-md-6"></div>Loading...</div>
  665. <div class="row" style="margin-bottom:25px;">
  666. <div class="col-md-6" id="overview-circulating"></div>
  667. <div class="col-md-6" id="overview-available"></div>
  668. </div>
  669. <div class="row" style="margin-bottom:25px;">
  670. <div class="col-md-6" id="overview-betted"></div>
  671. <div class="col-md-6" id="overview-fees"></div>
  672. </div>
  673. <div class="row" style="margin-bottom:25px;">
  674. <div class="col-md-6" id="overview-cashouts"></div>
  675. <div class="col-md-6" id="overview-partners"></div>
  676. </div>
  677. <div class="row" style="margin-bottom:25px;">
  678. <div class="col-md-12" id="overview-users_who"></div>
  679. </div>
  680.  
  681. </div>
  682. </div>
  683. <div role="tabpanel" class="tab-pane fade in" id="deposits">
  684. <div class="tab-content" style="margin-top: 20px">
  685. <table id="deposits_table" class="table table-striped" width="100%">
  686. <thead>
  687. <tr>
  688. <th>O.R. #</th>
  689. <th>Date</th>
  690. <th>User</th>
  691. <th>Amount</th>
  692. <th>MOP</th>
  693. <th>Status</th>
  694. <th>Details</th>
  695. <th>Receipt</th>
  696. <th>Last updated by</th>
  697. <th>Action</th>
  698. </tr>
  699. </thead>
  700. <tbody>
  701. </tbody>
  702.  
  703. </table>
  704. </div>
  705. </div>
  706. <div role="tabpanel" class="tab-pane fade in" id="cashout">
  707. <div class="tab-content" style="margin-top: 20px">
  708. <table id="cashout_table" class="table table-striped" width="100%">
  709. <thead>
  710. <tr>
  711. <th>O.R. #</th>
  712. <th>Date</th>
  713. <th>User</th>
  714. <th>Amount</th>
  715. <th>MOP</th>
  716. <th>Details</th>
  717. <th>Donation</th>
  718. <th>Status</th>
  719. <th>Receipt</th>
  720. <th>Notes</th>
  721. <th>Last updated by</th>
  722. <th>Action</th>
  723. </tr>
  724. </thead>
  725. <tbody>
  726. </tbody>
  727.  
  728. </table>
  729. </div>
  730. </div>
  731. <div role="tabpanel" class="tab-pane fade in" id="bettings">
  732. <div class="tab-content" style="margin-top: 20px">
  733. <table id="bettings_table" class="table table-striped" width="100%">
  734. <thead>
  735. <tr>
  736. <th>Date</th>
  737. <th>User</th>
  738. <th>Team Selected</th>
  739. <th>Tournament</th>
  740. <th>Match</th>
  741. <th>Winner</th>
  742. <th>Total Bet</th>
  743. <th>Status</th>
  744. <th>Profit/Loss</th>
  745. </tr>
  746. </thead>
  747. <tbody>
  748. </tbody>
  749. </table>
  750. </div>
  751. </div>
  752.  
  753. <div role="tabpanel" class="tab-pane fade in" id="donations">
  754. <div class="tab-content" style="margin-top: 20px">
  755. <table id="donations_table" class="table table-striped" width="100%">
  756. <thead>
  757. <tr>
  758. <th>Date</th>
  759. <th>User</th>
  760. <th>Amount</th>
  761. </tr>
  762. </thead>
  763. <tbody>
  764. </tbody>
  765. </table>
  766. </div>
  767. </div>
  768.  
  769. <div role="tabpanel" class="tab-pane fade in" id="commissions">
  770. <div class="tab-content" style="margin-top: 20px">
  771. <table id="commissions_table" class="table table-striped" width="100%">
  772. <thead>
  773. <tr>
  774. <th>Date</th>
  775. <th>Belongs To</th>
  776. <th>Transaction Code</th>
  777. <th>By</th>
  778. <th>Ammount Deposited</th>
  779. <th>Amount Earned</th>
  780. <th>Status</th>
  781. </tr>
  782. </thead>
  783. <tbody>
  784. </tbody>
  785. </table>
  786. </div>
  787. </div>
  788.  
  789. <div role="tabpanel" class="tab-pane fade in" id="badges">
  790. <div class="tab-content" style="margin-top: 20px">
  791. <table id="badges_table" class="table table-striped" width="100%">
  792. <thead>
  793. <tr>
  794. <th>Badge</th>
  795. <th>Description</th>
  796. <th>Reward Credits</th>
  797. <th># of Assigned Users</th>
  798. <th>Action</th>
  799. </tr>
  800. </thead>
  801. <tbody>
  802. </tbody>
  803. </table>
  804. <button class="btn btn-primary showCreateBadgesModalBtn" data-toggle="modal" data-target="#createBadgesModal">Create Badges</button>
  805. </div>
  806. </div>
  807.  
  808. <div role="tabpanel" class="tab-pane fade in" id="usermanagement">
  809. <div class="tab-content" style="margin-top: 20px">
  810. <table id="users_table" class="table table-striped" width="100%">
  811. <thead>
  812. <tr>
  813. <th>ID</th>
  814. <th>Name</th>
  815. <th>Badges</th>
  816. <th>Provider</th>
  817. <th>Credits</th>
  818. <th>Voucher Code</th>
  819. <th>Roles</th>
  820. <th>Payables</th>
  821. <th>Action</th>
  822. </tr>
  823. </thead>
  824. <tbody>
  825. </tbody>
  826. </table>
  827. </div>
  828. </div>
  829.  
  830. <div role="tabpanel" class="tab-pane fade in" id="rewards">
  831. <div class="tab-content" style="margin-top: 20px">
  832. <table id="rewards_table" class="table table-striped" width="100%">
  833. <thead>
  834. <tr>
  835. <th>Date</th>
  836. <th>User</th>
  837. <th>Credits Awarded</th>
  838. <th>Reward Type</th>
  839. <th>Reasons</th>
  840. <th>Added By</th>
  841. </tr>
  842. </thead>
  843. <tbody>
  844. </tbody>
  845. </table>
  846. </div>
  847. </div>
  848. <div role="tabpanel" class="tab-pane fade in" id="bugs">
  849. <div class="tab-content" style="margin-top: 20px">
  850. <table id="bugs_table" class="table table-striped" width="100%">
  851. <thead>
  852. <tr>
  853. <th>Date</th>
  854. <th>Name</th>
  855. <th>Subject</th>
  856. <th>Comment</th>
  857. <th>Image</th>
  858. <th>Status</th>
  859. <th>Action</th>
  860. </tr>
  861. </thead>
  862. <tbody>
  863. </tbody>
  864. </table>
  865. </div>
  866. </div>
  867. <div role="tabpanel" class="tab-pane fade in" id="verify">
  868. <div class="tab-content" style="margin-top: 20px">
  869. <table id="verification_table" class="table table-striped" width="100%">
  870. <thead>
  871. <tr>
  872. <th>Date</th>
  873. <th>User ID</th>
  874. <th>Type</th>
  875. <th>Level</th>
  876. <th>Image</th>
  877. <th>Status</th>
  878. <th>Action</th>
  879. </tr>
  880. </thead>
  881. <tbody>
  882. </tbody>
  883. </table>
  884. </div>
  885. </div>
  886. <div role="tabpanel" class="tab-pane fade in" id="promos" >
  887. <div class="tab-content" style="margin-top: 20px">
  888. <table id="promo_table" class="table table-striped" width="100%">
  889. <thead>
  890. <tr>
  891. <th>Date</th>
  892. <th>Name</th>
  893. <th>Comment</th>
  894. <th>Admin Comment</th>
  895. <th>Link</th>
  896. <th>Status</th>
  897. <th>Action</th>
  898. </tr>
  899. </thead>
  900. <tbody>
  901. </tbody>
  902. </table>
  903. </div>
  904. </div>
  905.  
  906. <div role="tabpanel" class="tab-pane fade in" id="referrals">
  907. <div class="tab-content" style="margin-top: 20px">
  908. <table id="referrals_table" class="table table-striped" width="100%">
  909. <thead>
  910. <tr>
  911. <th>Date</th>
  912. <th>Code</th>
  913. <th>Belong to</th>
  914. <th>Refered User</th>
  915. <th>Status</th>
  916. </tr>
  917. </thead>
  918. <tbody>
  919. </tbody>
  920. </table>
  921. </div>
  922. </div>
  923. <div role="tabpanel" class="tab-pane fade in" id="payouts">
  924. <div class="tab-content" style="margin-top: 20px;">
  925. <table id="payout_table" class="table table-striped" width="100%">
  926. <thead>
  927. <tr>
  928. <th>Date</th>
  929. <th>O.R. #</th>
  930. <th>User</th>
  931. <th>Amount</th>
  932. <th>Receipt</th>
  933. <th>Last Updated by</th>
  934. </tr>
  935. </thead>
  936. <tbody></tbody>
  937. </table>
  938. </div>
  939. </div>
  940.  
  941. <div role="tabpanel" class="tab-pane fade in" id="rebates">
  942. <div class="tab-content" style="margin-top: 20px;">
  943. <table id="rebates_table" class="table table-striped" width="100%">
  944. <thead>
  945. <tr>
  946. <th>Date</th>
  947. <th>User</th>
  948. <th>Transaction Code</th>
  949. <th>Amount Deposited</th>
  950. <th>Amount Earned</th>
  951. <th>Status</th>
  952. </tr>
  953. </thead>
  954. <tbody></tbody>
  955. </table>
  956. </div>
  957. </div>
  958.  
  959. {{-- <div role="tabpanel" class="tab-pane fade in" id="referrals">
  960. <div class="tab-content" style="margin-top: 20px">
  961. <table id="referrals_table" class="table table-striped" width="100%">
  962. <thead>
  963. <tr>
  964. <th>Date</th>
  965. <th>Code</th>
  966. <th>Belong to</th>
  967. <th>Refered User</th>
  968. <th>Status</th>
  969. </tr>
  970. </thead>
  971. <tbody>
  972. </tbody>
  973. </table>
  974. </div>
  975. </div> --}}
  976.  
  977. </div>
  978.  
  979. </div>
  980.  
  981. </div>
  982. </div>
  983. </div>
  984.  
  985. <div class="m-container1" style="width: 98% !important; display: none;" id="partner-administration">
  986. <div class="main-ct">
  987. <div class="title2">Partner Administration</div>
  988. <div class="clearfix"></div>
  989. <div class="blk-1">
  990. <div class="col-md-12">
  991. <!-- Nav tabs -->
  992. <ul class="nav nav-tabs" role="tablist">
  993. <li role="presentation" class="active"><a href="#partner-deposit" aria-controls="partner-deposit" role="tab" data-toggle="tab">User Deposits (vP)</a></li>
  994. <li role="presentation"><a href="#partner-cashout" aria-controls="partner-cashout" role="tab" data-toggle="tab">User Cashouts (vP)</a></li>
  995. <li role="presentation"><a href="#partner-earning" aria-controls="partner-earning" role="tab" data-toggle="tab">Payouts</a></li>
  996. <li role="presentation"><a href="#partner-transaction" aria-controls="partner-transaction" role="tab" data-toggle="tab"><span id="partner_buy" class="bubble_counter">Partner-2ez Transactions</span></a></li>
  997. <li role="presentation"><a href="#partner-approval" aria-controls="partner-approval" role="tab" data-toggle="tab">Partnership Approval</a></li>
  998. <li role="presentation"><a href="#partner-manage" aria-controls="partner-manage" role="tab" data-toggle="tab">Partner Management</a></li>
  999. </ul>
  1000. <!-- Tab panes -->
  1001. <div class="tab-content">
  1002. <div role="tabpanel" class="tab-pane fade in active" id="partner-deposit">
  1003. <div class="tab-content" style="margin-top: 20px">
  1004. <table id="partner_user_deposit_table" class="table table-striped" width="100%">
  1005. <thead>
  1006. <tr>
  1007. <th>O.R. #</th>
  1008. <th>User ID</th>
  1009. <th>User</th>
  1010. <th>Partner for Transaction</th>
  1011. <th>Date</th>
  1012. <th>Amount</th>
  1013. <th>MOP</th>
  1014. <th>Status</th>
  1015. <th>Details</th>
  1016. <th>Receipt</th>
  1017. <th>Last updated by</th>
  1018. <th>Action</th>
  1019. </tr>
  1020. </thead>
  1021. <tbody></tbody>
  1022. </table>
  1023. </div>
  1024. </div>
  1025. <div role="tabpanel" class="tab-pane fade in" id="partner-cashout">
  1026. <div class="tab-content" style="margin-top: 20px">
  1027. <table id="partner_user_cashout_table" class="table table-striped" width="100%">
  1028. <thead>
  1029. <tr>
  1030. <th>O.R. #</th>
  1031. <th>User ID</th>
  1032. <th>User</th>
  1033. <th>Partner for Transaction</th>
  1034. <th>Date</th>
  1035. <th>Amount</th>
  1036. <th>Fee</th>
  1037. <th>Status</th>
  1038. <th>Details</th>
  1039. <th>Receipt</th>
  1040. <th>Last updated by</th>
  1041. <th>Action</th>
  1042. </tr>
  1043. </thead>
  1044. <tbody></tbody>
  1045. </table>
  1046. </div>
  1047. </div>
  1048. <div role="tabpanel" class="tab-pane fade in" id="partner-earning">
  1049. <div class="tab-content" style="margin-top: 20px;">
  1050. <table id="partner_payout_table" class="table table-striped" width="100%">
  1051. <thead>
  1052. <tr>
  1053. <th>O.R. #</th>
  1054. <th>Partner</th>
  1055. <th>User</th>
  1056. <th>Date</th>
  1057. <th>Amount</th>
  1058. <th>Details</th>
  1059. <th>Receipt</th>
  1060. <th>Message</th>
  1061. <th>Last Updated by</th>
  1062. </tr>
  1063. </thead>
  1064. <tbody></tbody>
  1065. </table>
  1066. </div>
  1067. {{-- <div class="tab-content" style="margin-top: 20px;">
  1068. <center><h3>Coming Soon - Partner Payouts Table</h3></center>
  1069. </div> --}}
  1070. </div>
  1071. <div role="tabpanel" class="tab-pane fade in" id="partner-transaction">
  1072. <div class="tab-content" style="margin-top: 20px">
  1073. <table id="partner_admin_transactions_table" class="table table-striped" width="100%">
  1074. <thead>
  1075. <tr>
  1076. <th>O.R. #</th>
  1077. <th>Type</th>
  1078. <th>Date</th>
  1079. <th>Partner</th>
  1080. <th>User</th>
  1081. <th>Amount</th>
  1082. <th>MOP</th>
  1083. <th>Status</th>
  1084. <th>Details</th>
  1085. <th>Receipt</th>
  1086. <th>Last updated by</th>
  1087. <th>Action</th>
  1088. </tr>
  1089. </thead>
  1090. <tbody></tbody>
  1091. </table>
  1092. </div>
  1093. </div>
  1094. <div role="tabpanel" class="tab-pane fade in" id="partner-approval">
  1095. <div class="tab-content" style="margin-top: 20px">
  1096. <table id="partner_approval_table" class="table table-striped" width="100%">
  1097. <thead>
  1098. <tr>
  1099. <th>ID</th>
  1100. <th>Partner Name</th>
  1101. <th>Owner</th>
  1102. <th>Mobile Number</th>
  1103. <th>Contact Number</th>
  1104. <th>Status</th>
  1105. <th>Payout to Info</th>
  1106. <th>Other Details</th>
  1107. <th>Last updated by</th>
  1108. <th>Action</th>
  1109. </tr>
  1110. </thead>
  1111. <tbody></tbody>
  1112. </table>
  1113. </div>
  1114. </div>
  1115. <div role="tabpanel" class="tab-pane fade in" id="partner-manage">
  1116. <div class="tab-content" style="margin-top: 20px">
  1117. <table id="partner_table" class="table table-striped" width="100%">
  1118. <thead>
  1119. <tr>
  1120. <th>ID</th>
  1121. <th>Partner Name</th>
  1122. <th>Owner</th>
  1123. <th>Wallet Balance</th>
  1124. <th>Earnings</th>
  1125. <th>Mobile Number</th>
  1126. <th>Contact Number</th>
  1127. <th>Payout to Info</th>
  1128. <th>Partner Info</th>
  1129. <th>Last updated by</th>
  1130. <th>Action</th>
  1131. </tr>
  1132. </thead>
  1133. <tbody></tbody>
  1134. </table>
  1135. </div>
  1136. </div>
  1137. </div>
  1138. </div>
  1139. </div>
  1140. </div>
  1141. </div>
  1142.  
  1143.  
  1144. <!-- Modal viewReceipt-->
  1145. <div class="modal fade" id="viewReceipt" tabindex="-1" role="dialog" aria-labelledby="viewReceipt" aria-hidden="true" style="z-index: 3000">
  1146. <div class="modal-dialog modal-lg" role="document">
  1147. <div class="modal-content">
  1148. <div class="modal-header">
  1149. <h5 class="modal-title" id="exampleModalLabel">Receipt</h5>
  1150. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  1151. <span aria-hidden="true">&times;</span>
  1152. </button>
  1153. </div>
  1154. <div class="modal-body">
  1155. </div>
  1156. <div class="modal-footer">
  1157. <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
  1158. </div>
  1159. </div>
  1160. </div>
  1161. </div>
  1162. <!-- Modal modalDiscrepancy-->
  1163. <div class="modal fade" id="modalDiscrepancy" tabindex="-1" role="dialog" aria-labelledby="modalDiscrepancy">
  1164. <div class="modal-dialog modal-lg" role="document">
  1165. <div class="modal-content">
  1166. <div class="modal-header">
  1167. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  1168. <h4 class="modal-title" id="exampleModalLabel">Discrepancy BC Code: <span id="bc-code" style="font-weight: bold;color: #820804"></span></h4>
  1169. </div>
  1170. <div class="modal-body" style="max-height: 730px;overflow-y: scroll;">
  1171. <form id="discrepancy_form" enctype="multipart/form-data" autocomplete="off" action="" method="POST" role="form">
  1172. <div class="form-group">
  1173. <label for="discrepancy-amount" class="control-label">Amount:</label>
  1174. <input type="text" class="form-control" id="discrepancy-amount" name="amount">
  1175. </div>
  1176. <div class="form-group add_rebate" style="display: none">
  1177. <label for="add_rebate" class="control-label"> <input id="add_rebate" name="add_rebate" type="checkbox"> Add Rebate</label>
  1178. </div>
  1179.  
  1180. <div class="form-group">
  1181. <label for="mop">Mode of Payment</label>
  1182. <select class="form-control mop" name="provider" id="provider" style="width: 100%" data-placeholder="Select mode of payment">
  1183. <option></option>
  1184. <optgroup label="Bank Deposit">
  1185. <option value="BDO-deposit">BDO</option>
  1186. <option value="BPI-deposit">BPI</option>
  1187. <option value="Chinabank-deposit" disabled>Chinabank - coming soon</option>
  1188. <option value="Eastwest-deposit" disabled>Eastwest</option>
  1189. <option value="Metrobank-deposit">Metrobank</option>
  1190. <option value="PNB-deposit" disabled>PNB - coming soon</option>
  1191. <option value="PSBank-deposit" disabled>PSBank - coming soon</option>
  1192. <option value="rcbc-depositc" disabled>RCBC Savings Bank - coming soon</option>
  1193. <option value="securitybank-deposit" disabled>Security Bank Savings - coming soon</option>
  1194. <option value="Unionbank-deposit" disabled>Unionbank - coming soon</option>
  1195. </optgroup>
  1196. <optgroup label="Money Remittance">
  1197. <option value="cebuana-remittance">Cebuana Lhuiller Pera Padala</option>
  1198. <option value="mlhuiller-remittance" disabled>M Lhuillier Kwarta Padala - coming soon</option>
  1199. <option value="lbc-remittance">LBC Peso Padala</option>
  1200. <option value="palawan-remittance">Palawan Express</option>
  1201. <option value="western-remittance" disabled>Western Union - coming soon</option>
  1202. <option value="rd-remittance" disabled>RD Pawnshop - coming soon</option>
  1203. </optgroup>
  1204. <optgroup label="Mobile Money">
  1205. <option value="gcash-mobilemoney" disabled>G Cash - coming soon</option>
  1206. <option value="buycredits-mobilemoney" disabled>Buy Credits-Online - coming soon</option>
  1207. </optgroup>
  1208. <optgroup label="Online Bank Transfer">
  1209. <option value="BDO-online">BDO</option>
  1210. <option value="BPI-online">BPI</option>
  1211. <option value="Chinabank-online" disabled>Chinabank - coming soon</option>
  1212. <option value="Eastwest-online" disabled>Eastwest - coming soon</option>
  1213. <option value="Metrobank-online">Metrobank</option>
  1214. <option value="PNB-online" disabled>PNB - coming soon</option>
  1215. <option value="PSBank-online" disabled>PSBank - coming soon</option>
  1216. <option value="securitybank-online" disabled>Security Bank Savings - coming soon</option>
  1217. <option value="Unionbank-online" disabled>Unionbank - coming soon</option>
  1218. </optgroup>
  1219. </select>
  1220. </div>
  1221.  
  1222. <div class="form-group image">
  1223. <input id="disc-image" name="image" accept="image/*" class="file-loading" type="file">
  1224. <label class="error-label">The image field is required</label>
  1225. </div>
  1226.  
  1227. <div class="form-group message">
  1228. <label for="message-text" class="control-label">Message:</label>
  1229. <textarea class="form-control" id="disc-message" name="message"></textarea>
  1230. <label class="error-label">Invalid Input</label>
  1231. </div>
  1232.  
  1233. <div class="form-group">
  1234. <label for="">History</label>
  1235. <table id="discrepancy_table" class="table table-striped" width="100%">
  1236. <thead>
  1237. <tr>
  1238. <th>Date</th>
  1239. <th>Amount</th>
  1240. <th>Receipt</th>
  1241. <th>MOP</th>
  1242. <th>Message</th>
  1243. <th>Last updated by</th>
  1244. </tr>
  1245. </thead>
  1246. <tbody>
  1247. </tbody>
  1248. </table>
  1249.  
  1250. </div>
  1251. </form>
  1252. </div>
  1253. <div class="modal-footer">
  1254. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  1255. <button type="button" class="btn btn-primary submit_discrepancy" data-progress-text="Saving ... <i class='fa fa-circle-o-notch fa-spin fa-fw'></i>" autocomplete="off">Submit</button>
  1256. </div>
  1257. </div>
  1258. </div>
  1259. </div>
  1260. <!-- Modal modal-mark-as-processed-->
  1261. <div class="modal fade" id="modal-mark-as-processed" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
  1262. <div class="modal-dialog" role="document">
  1263. <div class="modal-content">
  1264. <div class="modal-header">
  1265. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  1266. <h4 class="modal-title" id="exampleModalLabel">Mark as Processed</h4>
  1267. </div>
  1268. <div class="modal-body">
  1269. <form id="mark_as_processed_form" enctype="multipart/form-data" autocomplete="off" action="" method="POST" role="form">
  1270. <div class="form-group photo">
  1271. <input id="image" name="photo" accept="image/*" class="file-loading" type="file">
  1272. <label class="error-label">Invalid Input</label>
  1273. </div>
  1274.  
  1275. <div class="form-group message">
  1276. <label for="message-text" class="control-label">Message:</label>
  1277. <textarea class="form-control" id="message" name="message"></textarea>
  1278. <label class="error-label">Invalid Input</label>
  1279. </div>
  1280.  
  1281. <div class="form-group waive-fee">
  1282. <label for="waive-fee" class="control-label"> <input id="waive-fee" name="waive-fee" type="checkbox"> Waive Fee</label>
  1283. </div>
  1284. </form>
  1285. </div>
  1286. <div class="modal-footer">
  1287. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  1288. <button type="button" class="btn btn-primary submit_mark_as_processed" data-progress-text="Saving ... <i class='fa fa-circle-o-notch fa-spin fa-fw'></i>" autocomplete="off">Submit</button>
  1289. </div>
  1290. </div>
  1291. </div>
  1292. </div>
  1293. <!-- Modal Details-->
  1294. <div class="modal fade" id="modal-details" tabindex="-1" role="dialog" aria-labelledby="modal-details">
  1295. <div class="modal-dialog " role="document">
  1296. <div class="modal-content">
  1297. <div class="modal-header">
  1298. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  1299. <h4 class="modal-title" id="exampleModalLabel">Details</h4>
  1300. </div>
  1301. <div class="modal-body">
  1302. <dl class="dl-horizontal">
  1303.  
  1304. </dl>
  1305. </div>
  1306. <div class="modal-footer">
  1307. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  1308. </div>
  1309. </div>
  1310. </div>
  1311. </div>
  1312.  
  1313. <!-- Modal viewReceipt-->
  1314. <div class="modal fade" id="view-details" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  1315. <div class="modal-dialog" role="document">
  1316. <div class="modal-content">
  1317. <div class="modal-header">
  1318. <h5 class="modal-title" id="exampleModalLabel">Details</h5>
  1319. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  1320. <span aria-hidden="true">&times;</span>
  1321. </button>
  1322. </div>
  1323. <div class="modal-body">
  1324. <div class="details-list">
  1325. <ul class="list-unstyled" id="deposit-steps"></ul>
  1326. </div>
  1327.  
  1328. <div id="update-info">
  1329. <form id="partnerForm" enctype="multipart/form-data">
  1330. <div class="alert alert-danger print-error-msg" style="display:none">
  1331. <ul></ul>
  1332. </div>
  1333. <div class="form-group">
  1334. <label class="control-label">Partner Name: <b style="color: red;">*</b></label>
  1335. <input type="text" name="partner_name" id="partner_name" class="form-control" placeholder="Partner Name">
  1336. <label class="error-label">Please fill it up</label>
  1337. </div>
  1338. <div class="form-group">
  1339. <label class="control-label">Address: <b style="color: red;">*</b></label><br>
  1340. <div class="form-twin-column" style="float: left;">
  1341. <input type="text" name="partner_address" id="partner_address" class="form-control" placeholder="Street Address">
  1342. </div>
  1343. <div class="form-twin-column" style="float: right;">
  1344. <select name="partner_province" id="partner_province" class="form-control">
  1345. <option selected disabled>- Select City/Municipality -</option>
  1346. @foreach($provinces as $province)
  1347. <option value="{{ $province->id }}">{{ $province->province }}</option>
  1348. @endforeach
  1349. </select>
  1350. </div>
  1351. <label class="error-label">Please fill it up</label>
  1352. </div>
  1353. <div class="form-group">
  1354. <label class="control-label">Contact Number(s): <b style="color: red;">*</b></label><br>
  1355. <div class="form-twin-column" style="float: left;">
  1356. <input type="text" name="partner_mobile" id="partner_mobile" class="form-control" placeholder="Mobile Number">
  1357. </div>
  1358. <div class="form-twin-column" style="float: right;">
  1359. <input type="text" name="partner_telephone" id="partner_telephone" class="form-control" placeholder="Telephone Number">
  1360. </div>
  1361. <label class="error-label">Please fill it up</label>
  1362. </div>
  1363. <div class="form-group">
  1364. <label class="control-label">Contact Person: <b style="color: red;">*</b></label>
  1365. <input type="text" name="partner_person" id="partner_person" class="form-control" placeholder="Contact Person">
  1366. <label class="error-label">Please fill it up</label>
  1367. </div>
  1368. <div class="form-group">
  1369. <label class="control-label">Email: <b style="color: red;">*</b></label>
  1370. <input type="text" name="partner_email" id="partner_email" class="form-control" placeholder="Email">
  1371. <label class="error-label">Please fill it up</label>
  1372. </div>
  1373. <div class="form-group">
  1374. <label class="control-label">Facebook Profile Link: <b style="color: red;">*</b></label>
  1375. <input type="text" name="partner_fb_link" id="partner_fb_link" class="form-control" placeholder="Facebook Profile Link">
  1376. <label class="error-label">Please fill it up</label>
  1377. </div>
  1378. <div class="form-group">
  1379. <label class="control-label">Logo: <b style="color: red;">*</b></label>&nbsp;<span>{{ Auth::user()->userPartner ? " - Already uploaded a logo" : "" }}</span>
  1380. <input id="partner_select_logo" name="logo" accept="image/*" class="file-loading partner-select-logo" type="file">
  1381. <label class="error-label">Please choose your logo</label>
  1382. </div>
  1383. <div class="form-group">
  1384. <label>Operational Days & Hours: <b style="color: red;">*</b></label>
  1385. <textarea name="partner_operation" id="partner_operation" class="form-control" placeholder="Monday - Sunday, 8:00AM-8:00PM" rows="8"></textarea>
  1386. <label class="error-label">Please fill it up</label>
  1387. </div>
  1388. <div class="form-group">
  1389. <label>Modes of Payment: <b style="color: red;">*</b></label>
  1390. <textarea name="partner_mop" id="partner_mop" class="form-control" placeholder="E.g. Walk in deposit, walk in cashout" rows="8"></textarea>
  1391. <label class="error-label">Please fill it up</label>
  1392. </div>
  1393. <div class="form-group">
  1394. <label>Additional Details: <b style="color: red;">*</b></label>
  1395. <textarea name="partner_details" id="partner_details" class="form-control" placeholder="E.g. We are still open in holodays" rows="8"></textarea>
  1396. <label class="error-label">Please fill it up</label>
  1397. </div>
  1398. <div class="form-group">
  1399. <label class="control-label">Bank Accounts (for Purchases and Cashouts): <b style="color: red;">*</b></label><br>
  1400. <div class="form-twin-column" style="float: left;">
  1401. <label class="control-label">BPI Account No.:</label>
  1402. <input type="text" name="partner_bpi" id="partner_bpi" class="form-control" placeholder="BPI Account Number" style="margin-bottom: 10px;">
  1403. <input type="text" name="partner_bpi_name" id="partner_bpi_name" class="form-control" placeholder="BPI Account Name">
  1404. </div>
  1405. <div class="form-twin-column" style="float: right;">
  1406. <label class="control-label">BDO Account No.:</label>
  1407. <input type="text" name="partner_bdo" id="partner_bdo" class="form-control" placeholder="BDO Account Number" style="margin-bottom: 10px;">
  1408. <input type="text" name="partner_bdo_name" id="partner_bdo_name" class="form-control" placeholder="BPI Account Name">
  1409. </div>
  1410. <label class="error-label">Please choose one of the bank accounts and fill it up</label>
  1411. </div>
  1412. <div class="alert alert-info" style="margin-top: 115px;">
  1413. <strong>Notes:</strong>
  1414. <br>1. Telephone Number is optional. You can leave it blank if you don't have.
  1415. <br>2. You can have one bank account between BPI and BDO, or both of them. Leave one of the fields empty if you only have one.
  1416. <br>3. If you have both bank accounts, choose one for transacting cashouts. Your current bank account will be chosen if you only have one.
  1417. </div>
  1418. </form>
  1419. </div>
  1420.  
  1421. </div>
  1422. <div class="modal-footer">
  1423. <button type="button" class="btn btn-primary open-update-info" data-toggle="modal">Update</button>
  1424. <button type="button" class="btn btn-success save-partner-info" data-toggle="modal">Update</button>
  1425. <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
  1426. </div>
  1427. </div>
  1428. </div>
  1429. </div>
  1430.  
  1431. <!-- Modal Voucher Code-->
  1432. <div class="modal fade" id="modal-view-code" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  1433. <div class="modal-dialog" role="document">
  1434. <div class="modal-content">
  1435. <div class="modal-header">
  1436. <h5 class="modal-title" id="exampleModalLabel">Voucher Code for <span id="user-name" style="font-weight: bold;color: #820804"></span></h5>
  1437. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  1438. <span aria-hidden="true">&times;</span>
  1439. </button>
  1440. </div>
  1441. <div class="modal-body">
  1442. <form id="voucher-form" autocomplete="off" action="" method="POST" role="form">
  1443. <div class="form-group code">
  1444. <label for="code" class="control-label">Code:</label>
  1445. <input id="voucher_code" name="voucher_code" type="text" placeholder="User Code" class="form-control">
  1446. <label class="error-label">Invalid Input</label>
  1447. </div>
  1448.  
  1449. <div class="form-group percent">
  1450. <label for="percent" class="control-label">Percent:</label>
  1451. <input id="voucher_percent" name="voucher_percent" type="text" class="form-control" placeholder="Percent" >
  1452. <label class="error-label">Invalid Input</label>
  1453. </div>
  1454. </form>
  1455.  
  1456. </div>
  1457. <div class="modal-footer">
  1458. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  1459. <button type="button" class="btn btn-primary submit_voucher" data-progress-text="Saving ... <i class='fa fa-circle-o-notch fa-spin fa-fw'></i>" autocomplete="off">Submit</button>
  1460. </div>
  1461. </div>
  1462. </div>
  1463. </div>
  1464.  
  1465. <!-- Modal Voucher Code-->
  1466. <div class="modal fade" id="modal-resetpassword" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  1467. <div class="modal-dialog" role="document">
  1468. <div class="modal-content">
  1469. <div class="modal-header">
  1470. <h5 class="modal-title" id="exampleModalLabel">Reset Password for <span id="user-name" style="font-weight: bold;color: #820804"></span></h5>
  1471. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  1472. <span aria-hidden="true">&times;</span>
  1473. </button>
  1474. </div>
  1475. <div class="modal-body">
  1476. <form id="password-form" autocomplete="off" action="" method="POST" role="form">
  1477. <div class="form-group code">
  1478. <label for="password" class="control-label">Password:</label>
  1479. <input id="password" name="password" type="text" placeholder="Password" class="form-control">
  1480. <label class="error-label">Invalid Input</label>
  1481. </div>
  1482. </form>
  1483.  
  1484. </div>
  1485. <div class="modal-footer">
  1486. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  1487. <button type="button" class="btn btn-primary submit_password" data-progress-text="Saving ... <i class='fa fa-circle-o-notch fa-spin fa-fw'></i>" autocomplete="off">Submit</button>
  1488. </div>
  1489. </div>
  1490. </div>
  1491. </div>
  1492.  
  1493. <div id="createBadgesModal" class="modal fade" role="dialog">
  1494. <div class="modal-dialog" style="width: 400px">
  1495. <div class="modal-content">
  1496. <div class="modal-header">
  1497. <button type="button" class="close" data-dismiss="modal">&times;</button>
  1498. <h4 class="modal-title">Add Badges</h4>
  1499. </div>
  1500. <div class="modal-body" >
  1501. <form id="badgesForm" action="{{ route('setbadges') }}" enctype="multipart/form-data" method="POST">
  1502.  
  1503. <div class="alert alert-danger print-error-msg" style="display:none">
  1504. <ul></ul>
  1505. </div>
  1506.  
  1507. <input type="hidden" name="badge_id" />
  1508.  
  1509. <div class="form-group">
  1510. <label>Name:</label>
  1511. <input type="text" name="name" class="form-control" placeholder="Badge name">
  1512. </div>
  1513.  
  1514. <div class="form-group">
  1515. <label>Description:</label>
  1516. <textarea name="description" class="form-control" placeholder="Badge description"></textarea>
  1517. </div>
  1518.  
  1519. <div class="form-group">
  1520. <label>Reward Credits (Optional):</label>
  1521. <input type="text" name="credits" class="form-control" value="0" placeholder="(100)">
  1522. </div>
  1523.  
  1524. <div class="form-group">
  1525. <label>Image:</label>
  1526. <input type="file" name="image" class="form-control">
  1527. </div>
  1528.  
  1529. </form>
  1530. </div>
  1531. <div class="modal-footer">
  1532. <button id="createBadgeBtn" type="button" class="btn btn-primary" data-edit-text="Update">Add Badge</button>
  1533. <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
  1534. </div>
  1535. </div>
  1536. </div>
  1537. </div>
  1538. <div id="setBadgesModal" class="modal fade" role="dialog">
  1539. <div class="modal-dialog" style="width: 500px">
  1540. <div class="modal-content">
  1541. <div class="modal-header">
  1542. <button type="button" class="close" data-dismiss="modal">&times;</button>
  1543. <h5 class="modal-title">Set Badges</h5>
  1544. </div>
  1545. <div class="modal-body" >
  1546. <form id="setBadgesForm" action="{{ route('assignbadges') }}" method="POST">
  1547.  
  1548. <div class="alert alert-danger print-error-msg" style="display:none">
  1549. <ul></ul>
  1550. </div>
  1551.  
  1552. <input type="hidden" name="user_id" />
  1553.  
  1554. <div class="form-group">
  1555. <label>Assigned Badges:</label>
  1556. <select id="badges-selection" name="badges[]" multiple="multiple">
  1557. @foreach($badge_list as $badge)
  1558. <option value="{{$badge->id}}">{{$badge->name}}</option>
  1559. @endforeach
  1560. </select>
  1561. </div>
  1562.  
  1563. </form>
  1564. </div>
  1565. <div class="modal-footer">
  1566. <button id="setBadgeBtn" type="button" class="btn btn-primary">Set Badge</button>
  1567. <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
  1568. </div>
  1569. </div>
  1570. </div>
  1571. </div>
  1572. <div id="setCreditsModal" class="modal fade" role="dialog">
  1573. <div class="modal-dialog" style="width: 400px">
  1574. <div class="modal-content">
  1575. <div class="modal-header">
  1576. <button type="button" class="close" data-dismiss="modal">&times;</button>
  1577. <h5 class="modal-title">Update Credits</h5>
  1578. </div>
  1579. <div class="modal-body" >
  1580. <form id="setCreditsForm" action="{{ route('assignbadges') }}" method="POST">
  1581.  
  1582. <div class="alert alert-danger print-error-msg" style="display:none">
  1583. <ul></ul>
  1584. </div>
  1585.  
  1586. <input type="hidden" name="user_id" />
  1587.  
  1588. <div class="form-group">
  1589. <label>Credits:</label>
  1590. <input type="text" name="credits" class="form-control" placeholder="Credits">
  1591. <label class="error-label">Invalid Input</label>
  1592. </div>
  1593.  
  1594. </form>
  1595. </div>
  1596. <div class="modal-footer">
  1597. <button id="setCreditBtn" type="button" class="btn btn-warning">Update Credit</button>
  1598. <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
  1599. </div>
  1600. </div>
  1601. </div>
  1602. </div>
  1603. <div id="addRewardsModal" class="modal fade" role="dialog">
  1604. <div class="modal-dialog" style="width: 400px">
  1605. <div class="modal-content">
  1606. <div class="modal-header">
  1607. <button type="button" class="close" data-dismiss="modal">&times;</button>
  1608. <h5 class="modal-title">Add Reward Credits</h5>
  1609. </div>
  1610. <div class="modal-body" >
  1611. <form id="add_rewards_form" method="POST">
  1612.  
  1613. <div class="alert alert-danger print-error-msg" style="display:none">
  1614. <ul></ul>
  1615. </div>
  1616.  
  1617. <input type="hidden" name="user_id" />
  1618.  
  1619. <div class="form-group">
  1620. <label>Name:</label>
  1621. <div class="user_image" style="padding-top: 10px"></div>
  1622. </div>
  1623.  
  1624. <div class="form-group">
  1625. <label class="control-label">Credits:</label>
  1626. <input type="text" name="credits" class="form-control" placeholder="Credits">
  1627. <label class="error-label">Invalid Input</label>
  1628. </div>
  1629.  
  1630. <div class="form-group">
  1631. <label class="control-label">Reasons:</label>
  1632. <textarea name="reasons" class="form-control" placeholder="Reason for adding credits"></textarea>
  1633. <label class="error-label">Invalid Input</label>
  1634. </div>
  1635.  
  1636. </form>
  1637. </div>
  1638. <div class="modal-footer">
  1639. <button id="addRewardBtn" type="button" class="btn btn-primary">Add Reward</button>
  1640. <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
  1641. </div>
  1642. </div>
  1643. </div>
  1644. </div>
  1645. {{-- AWARD CREDITS BUGS AND PROMOTION MODAL --}}
  1646. <div id="bugPromoModal" class="modal fade" role="dialog">
  1647. <div class="modal-dialog" style="width: 400px">
  1648. <div class="modal-content">
  1649. <div class="modal-header">
  1650. <button type="button" class="close" data-dismiss="modal">&times;</button>
  1651. <h5 class="modal-title">Mark as Done</h5>
  1652. </div>
  1653. <div class="modal-body" >
  1654. <form id="bug_promo_form" method="POST">
  1655.  
  1656. <div class="alert alert-danger print-error-msg" style="display:none">
  1657. <ul></ul>
  1658. </div>
  1659.  
  1660. <input type="hidden" name="id" />
  1661. <input type="hidden" name="type" />
  1662.  
  1663. <div class="form-group">
  1664. <label>Name:</label>
  1665. <div class="user_image" style="padding-top: 10px"></div>
  1666. </div>
  1667.  
  1668. <div class="form-group">
  1669. <label class="control-label">Add Credits:</label>
  1670. <input type="text" name="credits" class="form-control" placeholder="Credits">
  1671. <label class="error-label">Invalid Input</label>
  1672. </div>
  1673.  
  1674. <div class="form-group">
  1675. <label class="control-label">Reasons:</label>
  1676. <textarea name="reasons" class="form-control" placeholder="Reason for adding credits"></textarea>
  1677. <label class="error-label">Invalid Input</label>
  1678. </div>
  1679.  
  1680. <div class="form-group">
  1681. <label class="control-label">Comment:</label>
  1682. <textarea name="admin_comment" class="form-control" placeholder="Add comment here..."></textarea>
  1683. <label class="error-label">Invalid Input</label>
  1684. </div>
  1685.  
  1686. </form>
  1687. </div>
  1688. <div class="modal-footer">
  1689. <button id="bugpromo-save-btn" type="button" class="btn btn-primary">Save</button>
  1690. </div>
  1691. </div>
  1692. </div>
  1693. </div>
  1694.  
  1695. <!-- Verification Modal -->
  1696. <div id="verifyModal" class="modal fade" role="dialog">
  1697. <div class="modal-dialog" style="width: 400px">
  1698. <div class="modal-content">
  1699. <div class="modal-header">
  1700. <button type="button" class="close" data-dismiss="modal">&times;</button>
  1701. <h5 class="modal-title">Mark as Done</h5>
  1702. </div>
  1703. <div id="verification_form" class="modal-body">
  1704. <form method="POST">
  1705. <div class="form-group">
  1706. <label>Name:</label>
  1707. <div class="user_image" style="padding-top: 10px"></div>
  1708. </div>
  1709. <div class="form-group">
  1710. <label class="control-label">Feedback</label>
  1711. <textarea name="admin_feedback" class="form-control" placeholder="Feedback to user"></textarea>
  1712. <label class="error-label">Invalid Input</label>
  1713. </div>
  1714. </form>
  1715. </div>
  1716. <div class="modal-footer">
  1717. <button id="verification-save-btn" type="button" class="btn btn-primary">Save</button>
  1718. </div>
  1719. </div>
  1720. </div>
  1721. </div>
  1722.  
  1723. <div id="reject-modal" class="modal fade" role="dialog">
  1724. <div class="modal-dialog" style="width: 400px">
  1725. <div class="modal-content">
  1726. <div class="modal-header">
  1727. <button type="button" class="close" data-dismiss="modal">&times;</button>
  1728. <h5 class="modal-title">Reject Deposit</h5>
  1729. </div>
  1730. <div class="modal-body">
  1731.  
  1732. <div class="alert alert-danger print-error-msg" style="display:none">
  1733. <ul></ul>
  1734. </div>
  1735. <div class="form-group">
  1736. <label class="control-label user">Name:</label>
  1737. </div>
  1738. <div class="form-group">
  1739. <label class="control-label code">Code:</label>
  1740. </div>
  1741. <form id="deposit-reject-form" method="POST">
  1742. <div class="form-group">
  1743. <label class="control-label">Message:</label>
  1744. <textarea name="admin_comment" class="form-control"></textarea>
  1745. <label class="error-label">Invalid Input</label>
  1746. </div>
  1747. </form>
  1748. </div>
  1749. <div class="modal-footer">
  1750. <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
  1751. <button type="button" class="btn btn-primary btn-reject">Save</button>
  1752. </div>
  1753. </div>
  1754. </div>
  1755.  
  1756. </div>
  1757.  
  1758. <!-- Partner transactions with discrepancy -->
  1759. <div class="modal fade" id="partner_modal_discrepancy" tabindex="-1" role="dialog" aria-labelledby="partner-modal-discrepancy">
  1760. <div class="modal-dialog modal-lg" role="document">
  1761. <div class="modal-content">
  1762. <div class="modal-header">
  1763. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  1764. <h4 class="modal-title" id="exampleModalLabel">Discrepancy BC Code: <span id="partner-bc-code" style="font-weight: bold;color: #820804"></span></h4>
  1765. </div>
  1766. <div class="modal-body" style="max-height: 730px;overflow-y: scroll;">
  1767. <form id="partner_discrepancy_form" enctype="multipart/form-data" autocomplete="off" action="" method="POST" role="form">
  1768. <div class="form-group">
  1769. <label for="partner-discrepancy-amount" class="control-label">Amount:</label>
  1770. <input type="text" class="form-control" id="partner-discrepancy-amount" name="partner_amount">
  1771. </div>
  1772.  
  1773. <div class="form-group">
  1774. <label for="mop">Mode of Payment</label>
  1775. <select class="form-control mop" name="partner_provider" id="partner_provider" style="width: 100%" data-placeholder="Select mode of payment">
  1776. <option></option>
  1777. <optgroup label="Bank Deposit">
  1778. <option value="BDO-deposit">BDO</option>
  1779. <option value="BPI-deposit">BPI</option>
  1780. <option value="Chinabank-deposit" disabled>Chinabank - coming soon</option>
  1781. <option value="Eastwest-deposit" disabled>Eastwest</option>
  1782. <option value="Metrobank-deposit">Metrobank</option>
  1783. <option value="PNB-deposit" disabled>PNB - coming soon</option>
  1784. <option value="PSBank-deposit" disabled>PSBank - coming soon</option>
  1785. <option value="rcbc-depositc" disabled>RCBC Savings Bank - coming soon</option>
  1786. <option value="securitybank-deposit" disabled>Security Bank Savings - coming soon</option>
  1787. <option value="Unionbank-deposit" disabled>Unionbank - coming soon</option>
  1788. </optgroup>
  1789. <optgroup label="Money Remittance">
  1790. <option value="cebuana-remittance">Cebuana Lhuiller Pera Padala</option>
  1791. <option value="mlhuiller-remittance" disabled>M Lhuillier Kwarta Padala - coming soon</option>
  1792. <option value="lbc-remittance">LBC Peso Padala</option>
  1793. <option value="palawan-remittance">Palawan Express</option>
  1794. <option value="western-remittance" disabled>Western Union - coming soon</option>
  1795. <option value="rd-remittance" disabled>RD Pawnshop - coming soon</option>
  1796. </optgroup>
  1797. <optgroup label="Mobile Money">
  1798. <option value="gcash-mobilemoney" disabled>G Cash - coming soon</option>
  1799. <option value="buycredits-mobilemoney" disabled>Buy Credits-Online - coming soon</option>
  1800. </optgroup>
  1801. <optgroup label="Online Bank Transfer">
  1802. <option value="BDO-online">BDO</option>
  1803. <option value="BPI-online">BPI</option>
  1804. <option value="Chinabank-online" disabled>Chinabank - coming soon</option>
  1805. <option value="Eastwest-online" disabled>Eastwest - coming soon</option>
  1806. <option value="Metrobank-online">Metrobank</option>
  1807. <option value="PNB-online" disabled>PNB - coming soon</option>
  1808. <option value="PSBank-online" disabled>PSBank - coming soon</option>
  1809. <option value="securitybank-online" disabled>Security Bank Savings - coming soon</option>
  1810. <option value="Unionbank-online" disabled>Unionbank - coming soon</option>
  1811. </optgroup>
  1812. </select>
  1813. </select>
  1814. </div>
  1815.  
  1816. <div class="form-group image">
  1817. <input id="partner-image" name="image" accept="image/*" class="file-loading" type="file">
  1818. <label class="error-label">The image field is required</label>
  1819. </div>
  1820.  
  1821. <div class="form-group message">
  1822. <label for="message-text" class="control-label">Message:</label>
  1823. <textarea class="form-control" id="partner-message" name="message"></textarea>
  1824. <label class="error-label">Invalid Input</label>
  1825. </div>
  1826.  
  1827. <div class="form-group">
  1828. <label for="">History</label>
  1829. <table id="partner_discrepancy_table" class="table table-striped" width="100%">
  1830. <thead>
  1831. <tr>
  1832. <th>Date</th>
  1833. <th>Amount</th>
  1834. <th>Receipt</th>
  1835. <th>MOP</th>
  1836. <th>Message</th>
  1837. <th>Last updated by</th>
  1838. </tr>
  1839. </thead>
  1840. <tbody>
  1841. </tbody>
  1842. </table>
  1843.  
  1844. </div>
  1845. </form>
  1846. </div>
  1847. <div class="modal-footer">
  1848. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  1849. <button type="button" class="btn btn-primary partner_discrepancy" data-progress-text="Saving ... <i class='fa fa-circle-o-notch fa-spin fa-fw'></i>" autocomplete="off">Submit</button>
  1850. </div>
  1851. </div>
  1852. </div>
  1853. </div>
  1854.  
  1855. <div id="partner_rejection_modal" class="modal fade" role="dialog">
  1856. <div class="modal-dialog" style="width: 400px;">
  1857. <div class="modal-content">
  1858. <div class="modal-header">
  1859. <button type="button" class="close" data-dismiss="modal">&times;</button>
  1860. <h5 class="modal-title">Reasons for Rejecting</h5>
  1861. </div>
  1862. <div class="modal-body" >
  1863. <form id="reject_partner_deposit_cashout" method="POST">
  1864.  
  1865. <div class="alert alert-danger print-error-msg" style="display:none">
  1866. <ul></ul>
  1867. </div>
  1868.  
  1869. <input type="hidden" id="rejection_type" value="">
  1870. <div class="form-group">
  1871. <label class="control-label">Name: <span class="name_span_text"></span></label>
  1872. </div>
  1873. <div class="form-group">
  1874. <label class="control-label">Code: <span class="code_span_text"></span></label>
  1875. </div>
  1876. <div class="form-group">
  1877. <label class="control-label">Message:</label>
  1878. <textarea id="partner_comment" name="partner_comment" class="form-control" style="resize: none;"></textarea>
  1879. <label class="error-label">Message is required</label>
  1880. </div>
  1881.  
  1882. </form>
  1883. </div>
  1884. <div class="modal-footer">
  1885. <button id="reject-save-btn" type="button" class="btn btn-primary">Save</button>
  1886. <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
  1887. </div>
  1888. </div>
  1889. </div>
  1890. </div>
  1891.  
  1892. <div id="bug_thread_modal" class="modal fade" role="dialog">
  1893. <div class="modal-dialog">
  1894. <div class="modal-content">
  1895. <div class="modal-header">
  1896. <button type="button" class="close" data-dismiss="modal">&times;</button>
  1897. <h5 class="modal-title">Ticket Thread</h5>
  1898. </div>
  1899. <div class="modal-body">
  1900. <div class="ticket_thread_column">
  1901.  
  1902. </div>
  1903. <div>
  1904. sadasdsadsa
  1905. </div>
  1906. </div>
  1907. <div class="modal-footer">
  1908. <button type="button" class="btn btn-primary">Save</button>
  1909. <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
  1910. </div>
  1911. </div>
  1912. </div>
  1913. </div>
  1914.  
  1915. <div id="auditUserModal" class="modal fade" role="dialog">
  1916. <div class="modal-dialog modal-lg">
  1917. <div class="modal-content">
  1918. <div class="modal-header">
  1919. <button type="button" class="close" data-dismiss="modal">&times;</button>
  1920. <h4 class="modal-title">Audit User: <strong class="username text-danger"></strong></h4>
  1921. </div>
  1922. <div class="modal-body">
  1923. <div class="row">
  1924. <div class="col-md-6">
  1925. <table class="table" width="100%">
  1926. <tr>
  1927. <th colspan="2">Formula A</th>
  1928. </tr>
  1929. <tr>
  1930. <th>Total Cashout</th>
  1931. <td class="total_cashout">N/A</td>
  1932. </tr>
  1933. <tr>
  1934. <th>Betted Credits</th>
  1935. <td class="curr_bets">N/A</td>
  1936. </tr>
  1937. <tr>
  1938. <th>Remaining Credits</th>
  1939. <td class="curr_credits">N/A</td>
  1940. </tr>
  1941. <tr>
  1942. <th style="text-align: right">Total = </th>
  1943. <td class="total_fa">N/A</td>
  1944. </tr>
  1945. </table>
  1946. </div>
  1947. <div class="col-md-6">
  1948. <table class="table" width="100%">
  1949. <tr>
  1950. <th colspan="2">Formula B</th>
  1951. </tr>
  1952. <tr>
  1953. <th>Total Deposit</th>
  1954. <td class="total_deposit">N/A</td>
  1955. </tr>
  1956. <tr>
  1957. <th>Profit/Loss</th>
  1958. <td class="profit_loss">N/A</td>
  1959. </tr>
  1960. <tr>
  1961. <th>&nbsp;</th>
  1962. <td>&nbsp;</td>
  1963. </tr>
  1964. <tr>
  1965. <th style="text-align: right">Total = </th>
  1966. <td class="total_fb">N/A</td>
  1967. </tr>
  1968. </table>
  1969. </div>
  1970. </div>
  1971. <div class="panel panel-primary" style="margin-bottom: 10px">
  1972. <div class="panel-heading">
  1973. <h3 class="panel-title">Bets</h3>
  1974. <span class="pull-right clickable">(Total Profit/Loss: <strong class="profit_loss"></strong>)&nbsp;&nbsp; <i class="glyphicon glyphicon-chevron-up"></i></span>
  1975. </div>
  1976. <div class="panel-body" style="padding: 0 0 15px 0">
  1977. <table id="audituser-table-bets" class="table table-striped" width="100%" style="font-size: 90%">
  1978. <thead>
  1979. <th>Date/Time</th>
  1980. <th>Match</th>
  1981. <th>Team Selected</th>
  1982. <th>Amount</th>
  1983. <th>Status</th>
  1984. <th>Profit/Loss</th>
  1985. </thead>
  1986. </table>
  1987. </div>
  1988. </div>
  1989. <div class="panel panel-primary" style="margin-bottom: 10px">
  1990. <div class="panel-heading">
  1991. <h3 class="panel-title">Deposits</h3>
  1992. <span class="pull-right clickable">(Total Deposits: <strong class="total_deposit"></strong>)&nbsp;&nbsp; <i class="glyphicon glyphicon-chevron-up"></i></span>
  1993. </div>
  1994. <div class="panel-body" style="padding: 0 0 15px 0">
  1995. <table id="audituser-table-deposits" class="table table-striped" width="100%" style="font-size: 90%">
  1996. <thead>
  1997. <th>Date/Time</th>
  1998. <th>O.R. #</th>
  1999. <th>Amount</th>
  2000. <th>MOP</th>
  2001. <th>Status</th>
  2002. <th>Processed By</th>
  2003. </thead>
  2004. </table>
  2005. <h3>Partner Deposits</h3>
  2006. <table id="audituser-table-partner-deposits" class="table table-striped" width="100%" style="font-size: 90%">
  2007. <thead>
  2008. <th>Date/Time</th>
  2009. <th>O.R. #</th>
  2010. <th>Partner</th>
  2011. <th>Amount</th>
  2012. <th>Status</th>
  2013. </thead>
  2014. </table>
  2015. </div>
  2016. </div>
  2017. <div class="panel panel-primary" style="margin-bottom: 10px">
  2018. <div class="panel-heading">
  2019. <h3 class="panel-title">Cashouts</h3>
  2020. <span class="pull-right clickable">(Total Cashouts: <strong class="total_cashout"></strong>)&nbsp;&nbsp; <i class="glyphicon glyphicon-chevron-up"></i></span>
  2021. </div>
  2022. <div class="panel-body" style="padding: 0 0 15px 0">
  2023. <table id="audituser-table-cashouts" class="table table-striped" width="100%" style="font-size: 90%">
  2024. <thead>
  2025. <th>Date/Time</th>
  2026. <th>O.R. #</th>
  2027. <th>Amount</th>
  2028. <th>MOP</th>
  2029. <th>Status</th>
  2030. <th>Processed By</th>
  2031. </thead>
  2032. </table>
  2033. <h3>Partner Cashouts</h3>
  2034. <table id="audituser-table-partner-cashouts" class="table table-striped" width="100%" style="font-size: 90%">
  2035. <thead>
  2036. <th>Date/Time</th>
  2037. <th>O.R. #</th>
  2038. <th>Partner</th>
  2039. <th>Amount</th>
  2040. <th>Status</th>
  2041. </thead>
  2042. </table>
  2043. </div>
  2044. </div>
  2045. </div>
  2046. <div class="modal-footer">
  2047. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  2048. </div>
  2049. </div>
  2050. </div>
  2051. </div>
  2052. <div id="reject-modal" class="modal fade" role="dialog">
  2053. <div class="modal-dialog" style="width: 400px">
  2054. <div class="modal-content">
  2055. <div class="modal-header">
  2056. <button type="button" class="close" data-dismiss="modal">&times;</button>
  2057. <h5 class="modal-title">Reject Deposit</h5>
  2058. </div>
  2059. <div class="modal-body">
  2060.  
  2061. <div class="alert alert-danger print-error-msg" style="display:none">
  2062. <ul></ul>
  2063. </div>
  2064. <div class="form-group">
  2065. <label class="control-label user">Name:</label>
  2066. </div>
  2067. <div class="form-group">
  2068. <label class="control-label code">Code:</label>
  2069. </div>
  2070. <form id="deposit-reject-form" method="POST">
  2071. <div class="form-group">
  2072. <label class="control-label">Message:</label>
  2073. <textarea name="admin_comment" class="form-control"></textarea>
  2074. <label class="error-label">Invalid Input</label>
  2075. </div>
  2076. </form>
  2077. </div>
  2078. <div class="modal-footer">
  2079. <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
  2080. <button type="button" class="btn btn-primary btn-reject">Save</button>
  2081. </div>
  2082. </div>
  2083. </div>
  2084.  
  2085. </div>
  2086.  
  2087. <!-- Partner transactions with discrepancy -->
  2088. <div class="modal fade" id="partner_payout_modal" tabindex="-1" role="dialog" aria-labelledby="partner_payout_modal">
  2089. <div class="modal-dialog modal-lg" role="document">
  2090. <div class="modal-content">
  2091. <div class="modal-header">
  2092. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  2093. <h4 class="modal-title">Payout for <span id="partner-name-code" style="font-weight: bold;color: #820804"></span></h4>
  2094. </div>
  2095. <div class="modal-body" style="max-height: 730px;overflow-y: scroll;">
  2096. <form id="partner_payout_form" enctype="multipart/form-data" autocomplete="off" action="" method="POST" role="form">
  2097. <div class="alert alert-info">
  2098. <strong>Notes:</strong>
  2099. <br>1. <b>Submit Button</b> can't be clicked unless selected partner's earnings reach the minimum amount, which is <b>&#8369;1000.00</b>.
  2100. <br>2. Selected partner's earnings will be <b>Reset to &#8369;0.00</b> after a successful payout.
  2101. </div>
  2102. <div class="form-group">
  2103. <label>Amount:</label>
  2104. <input type="text" class="form-control" id="partner-payout-amount" name="payout" disabled>
  2105. </div>
  2106.  
  2107. <div class="form-group image">
  2108. <label>Receipt</label>
  2109. <input id="payout-image" name="image" accept="image/*" class="file-loading" type="file">
  2110. <label class="error-label">The image field is required</label>
  2111. </div>
  2112.  
  2113. <div class="form-group message">
  2114. <label>Message:</label>
  2115. <textarea class="form-control" id="payout-message" name="message"></textarea>
  2116. <label class="error-label">Invalid Input</label>
  2117. </div>
  2118.  
  2119. </form>
  2120. </div>
  2121. <div class="modal-footer">
  2122. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  2123. <button type="button" class="btn btn-primary partner_payout_btn" data-progress-text="<i class='fa fa-circle-o-notch fa-spin fa-fw'></i> Processing" autocomplete="off">Submit</button>
  2124. </div>
  2125. </div>
  2126. </div>
  2127. </div>
  2128.  
  2129. <!-- Partner transactions with discrepancy -->
  2130. <div class="modal fade" id="payout_modal" tabindex="-1" role="dialog" aria-labelledby="payout_modal">
  2131. <div class="modal-dialog modal-lg" role="document">
  2132. <div class="modal-content">
  2133. <div class="modal-header">
  2134. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  2135. <h4 class="modal-title">Payout for</h4>
  2136. </div>
  2137. <div class="modal-body" style="max-height: 730px;overflow-y: scroll;">
  2138. <form id="partner_payout_form" enctype="multipart/form-data" autocomplete="off" action="" method="POST" role="form">
  2139.  
  2140. <div class="form-group">
  2141. <label>Amount:</label>
  2142. <input type="text" class="form-control" id="payout-amount" name="amount" disabled>
  2143. </div>
  2144.  
  2145. <div class="form-group image">
  2146. <label>Receipt</label>
  2147. <input id="payout-image-2" name="image" accept="image/*" class="file-loading" type="file">
  2148. <label class="error-label">The image field is required</label>
  2149. </div>
  2150.  
  2151. <div class="form-group message">
  2152. <label>Message:</label>
  2153. <textarea class="form-control"></textarea>
  2154. <label class="error-label">Invalid Input</label>
  2155. </div>
  2156.  
  2157. </form>
  2158. </div>
  2159. <div class="modal-footer">
  2160. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  2161. <button type="button" class="btn btn-primary user_payout_btn" data-progress-text="<i class='fa fa-circle-o-notch fa-spin fa-fw'></i> Processing" autocomplete="off">Submit</button>
  2162. </div>
  2163. </div>
  2164. </div>
  2165. </div>
  2166.  
  2167. </div>
  2168. @endsection
  2169. @section('script')
  2170. <script type="text/javascript" src="{{ asset('js/select2/select2.full.min.js')}}"></script>
  2171. <script type="text/javascript" src="{{ asset('js/fileinput.js')}}"></script>
  2172. <script type="text/javascript" src="{{ asset('js/theme.js')}}"></script>
  2173. <script type="text/javascript" src="{{ asset('js/datatables.min.js')}}"></script>
  2174. <script type="text/javascript" src="https://cdn.datatables.net/responsive/2.2.1/js/dataTables.responsive.min.js"></script>
  2175. <script type="text/javascript" src="{{ asset('js/viewer.min.js')}}"></script>
  2176. <script type="text/javascript" src="{{ asset('js/moment.min.js')}}"></script>
  2177. <script type="text/javascript" src="{{ asset('bower_components/bootstrap-sweetalert/dist/sweetalert.min.js')}}"></script>
  2178. <script type="text/javascript" src="{{ asset('js/bootstrap-multiselect.js')}}"></script>
  2179. <script src="{{ asset('js/datatables-datetime-moment.js') }}"></script>
  2180. <script src="{{ asset('js/mustache.min.js') }}"></script>
  2181. <script src="https://cdn.ckeditor.com/4.10.0/standard-all/ckeditor.js"></script>
  2182. <script id="coinsph-steps-template" type="text/template">
  2183. <li>1. Send the amount <insert amount> to this wallet: <strong>{{$settings['coins-wallet-address']}}</strong></li>
  2184. <li>2. Take screenshot</li>
  2185. <li>3. Edit the screenshot and write your BC-code <span style="font-weight: bold;">@{{code}}</span></li>
  2186. <li>4. Upload the edited reciept with your bccode</li>
  2187. <li>5. Wait for approval.</li>
  2188. </script>
  2189. <script id="manual-steps-template" type="text/template">
  2190. <li>1. Visit any branch of @{{bank}}, the branch will be open around @{{bopen}} to @{{bclose}}, malls will be open at @{{mopen}} closes at @{{mopen}}.</li>
  2191. <li>2. Get the Blue Slip (deposit slip) from the Guard or at the provided shelf with desk provided for slips.</li>
  2192. <li>3. Fill out the necessary fields.</li>
  2193. <ul>
  2194. <li>Account Name: <b>@{{accountname}}</b></li>
  2195. <li>Account Number: <b>@{{accountnumber}}</b></li>
  2196. <li>Date of the Day: <b>(MM/DD/YY)</b></li>
  2197. <li>Insert amount: <span style="font-weight: bold;">&#8369; @{{amount}}</span></li>
  2198. </ul>
  2199. <li>4. Get into the line for bank deposit.</li>
  2200. <li>5. Keep the Official RECEIPT of the tranasaction.</li>
  2201. <li>6. Write the BC Code <span style="font-weight: bold;">@{{code}}</span> ontop of the Official Receipt, and take a picture of it. (make sure the Image and the details written are clear).</li>
  2202. </script>
  2203. <script id="BDO-desktop" type="text/template">
  2204. <li>1. Log in to your BDO.COM, enter the user ID and Password.</li>
  2205. <li>2. Enter the OTP that was sent via SMS by BDO Online on your mobile number.</li>
  2206. <li>3. At the right of your screen, select FINANCIAL SERVIES and click on TRANSFER MONEY.</li>
  2207. <li>4. Enter the TRANSFER FROM box, from the desired account where you want to credit your pay.</li>
  2208. <li>5. 2EZ.BET Account number is <b>{{$settings['bdo-account-number']}}</b>, enter the desired AMOUNT on the next box.</li>
  2209. <li>6. <span style="color:red;font-weight: bold">Important: </span>Write your BC CODE on remarks <span style="font-weight: bold;">@{{code}}</span>.</li>
  2210. <li>7. Then screen shot the transaction once you press the SUBMIT button.</li>
  2211. </script>
  2212. <script id="BPI-desktop" type="text/template">
  2213. <li>1. Go to BPI.com.ph, enter the user ID and Password.</li>
  2214. <li>2. Go to fund transfer tab then select fund transfer on the drop down menu, then click the Transfer funds today.</li>
  2215. <li>3. Fill out the required information, the AMOUNT to transfer, select the source amount, select the enrolled account of 2ez.bet with the account number <b>{{$settings['bpi-account-number']}}</b> and add remarks.</li>
  2216. <li>4. And click Transfer Now/Sumit Button.</li>
  2217. <li>5. <span style="color:red;font-weight: bold">Important: </span>Write your BC CODE on remarks <span style="font-weight: bold;">@{{code}}</span>.</li>
  2218. <li>6. Make a screen shot of the transaction.</li>
  2219. </script>
  2220. <script id="Metrobank-desktop" type="text/template">
  2221. <li>1. Go tometrobank.com.ph, enter the user IDandPassword.</li>
  2222. <li>2. Go to fund transfertab then selectfund transferon the drop down menu, then click theTransfer funds today.</li>
  2223. <li>3. Fill out the required information, the AMOUNT to transfer, select the source amount, select the enrolled account of 2EZ.bet with the account number <b>{{$settings['metro-account-number']}}</b> and add remarks.</li>
  2224. <li>4. And click Transfer Now.</li>
  2225. <li>5. Then press the SUBMIT button.</li>
  2226. <li>6. And screen shot the transaction promt after you press the Submit Button.</li>
  2227. </script>
  2228. <script id="cebuana-remittance" type="text/template">
  2229. <li>1. Visit any Cebuana Remmitance Center,and take a Priority number from the Guard (remmitance botiques outside the malls opens at 8AM to 5PM, while the malls opens 10AM to 8:30PM).</li>
  2230. <li>2. Fill out the Cebuana Pera Padala Format the neceassary fields</li>
  2231. <ul>
  2232. <li>Receiver Name: <b>{{$settings['remittance-name']}}</b></li>
  2233. <li>Receiver Number: <b>{{$settings['remittance-number']}}</b></li>
  2234. <li>Receiver Location: <b>{{$settings['remittance-location']}}</b></li>
  2235. <li>Sender Name: <b>(Indicate your name)</b></li>
  2236. <li>Insert amount: <span style="font-weight: bold;">&#8369; @{{amount}}</span></li>
  2237. </ul>
  2238. <li>3. On the Transaction Type Check the box of Sending.</li>
  2239. <li>4. Place the desired amount to send at Sending/Receiving Amount.</li>
  2240. <li>5. And on the Buttom sign the signature over printed name.</li>
  2241. <li>6. Submit the Form together with your I.D. And Amount at the counter (any I.D. Will do as long as it is a goverment issued I.D. With a picture, your signature and name on it and not expired).</li>
  2242. <li>7. Once the transaction is complete. Write the BC Code <span style="font-weight: bold;">@{{code}}</span> and 10-digit control number on top of the Official RECEIPT.</li>
  2243. </script>
  2244. <script id="mlhuiller-remittance" type="text/template">
  2245. <li>1. Visit any MLhuillier Kwarta Padala Remmitance Center,and take a Priority number from the Guard (remmitance botiques outside the malls opens at 8AM to 5PM, while the malls opens 10AM to 8:30PM).</li>
  2246. <li>2. Fill out the MLhuillier Kwarta Padala Format the neceassary fields</li>
  2247. <ul>
  2248. <li>Receiver Name: <b>{{$settings['remittance-name']}}</b></li>
  2249. <li>Receiver Number: <b>{{$settings['remittance-number']}}</b></li>
  2250. <li>Receiver Location: <b>{{$settings['remittance-location']}}</b></li>
  2251. <li>Sender Name: <b>(Indicate your name)</b></li>
  2252. <li>Insert amount: <span style="font-weight: bold;">Php @{{amount}}</span></li>
  2253. </ul>
  2254. <li>3. On the Transaction Type Check the box of Sending.</li>
  2255. <li>4. Place the desired amount to send at Sending/Receiving Amount.</li>
  2256. <li>5. And on the Buttom sign the signature over printed name.</li>
  2257. <li>6. Submit the Form together with your I.D. And Amount at the counter (any I.D. Will do as long as it is a goverment issued I.D. With a picture, your signature and name on it and not expired).</li>
  2258. <li>7. Once the transaction is complete. Write the BC Code <span style="font-weight: bold;">@{{code}}</span> and 10-digit control number on top of the Official RECEIPT.</li>
  2259. </script>
  2260. <script id="lbc-remittance" type="text/template">
  2261. <li>1. Visit any LBC Center,and take a Priority number from the Guard (remmitance botiques outside the malls opens at 8AM to 5PM, while the malls opens 10AM to 8:30PM).</li>
  2262. <li>2. Fill out the LBC Money Remmitance Format the neceassary fields.</li>
  2263. <ul>
  2264. <li>Receiver Name: <b>{{$settings['remittance-name']}}</b></li>
  2265. <li>Receiver Number: <b>{{$settings['remittance-number']}}</b></li>
  2266. </ul>
  2267. <li>3. Place the desired amount to send.</li>
  2268. <li>4. Place your Mobile number.</li>
  2269. <li>5. Submit the Form together with your 2 Valid I.D. And Amount at the counter (any I.D. Will do as long as it is a goverment issued I.D. With a picture, your signature and name on it and not expired).</li>
  2270. <li>6. Once the transaction is complete, write the 12-Digit Tracking number and BC Code <span style="font-weight: bold;">@{{code}}</span> on the Official Receipt andtake a picture of the Official RECEIPT.</li>
  2271. </script>
  2272. <script id="palawan-remittance" type="text/template">
  2273. <li>1. Visit any Palawan Express Remittance Center,and take a Priority number from the Guard (remmitance botiques outside the malls opens at 8AM to 5PM, while the malls opens 10AM to 8:30PM).</li>
  2274. <li>2. Fill out the Palawan Express Sendout Format the neceassary fields.</li>
  2275. <ul>
  2276. <li>Receiver Name: <b>{{$settings['remittance-name']}}</b></li>
  2277. <li>Receiver Number: <b>{{$settings['remittance-number']}}</b></li>
  2278. </ul>
  2279. <li>3. Place your Mobile number.</li>
  2280. <li>4. Place the desired amount to send.</li>
  2281. <li>5. And on the Buttom sign the signature over printed name.</li>
  2282. <li>6. submit the Form together with your 2 Valid I.D. And Amount at the counter (any I.D. Will do as long as it is a goverment issued I.D. With a picture, your signature and name on it and not expired).</li>
  2283. <li>7. Once the transaction is complete, write the Tracking number and BC Code <span style="font-weight: bold;">@{{code}}</span> on the Official Receipt and take a picture of the Official RECEIPT.</li>
  2284. </script>
  2285. <script id="western-remittance" type="text/template">
  2286. <li>1. Visit any Western Union Remittance Center,and take a Priority number from the Guard (remmitance botiques outside the malls opens at 8AM to 5PM, while the malls opens 10AM to 8:30PM).</li>
  2287. <li>2. Fill out the Palawan Express Sendout Format the neceassary fields.</li>
  2288. <ul>
  2289. <li>Receiver Name: <b>{{$settings['remittance-name']}}</b></li>
  2290. <li>Receiver Number: <b>{{$settings['remittance-number']}}</b></li>
  2291. </ul>
  2292. <li>3. Place your Mobile number.</li>
  2293. <li>4. Place the desired amount to send.</li>
  2294. <li>5. And on the Buttom sign the signature over printed name.</li>
  2295. <li>6. submit the Form together with your 2 Valid I.D. And Amount at the counter (any I.D. Will do as long as it is a goverment issued I.D. With a picture, your signature and name on it and not expired).</li>
  2296. <li>7. Once the transaction is complete, write the Tracking number and BC Code <span style="font-weight: bold;">@{{code}}</span> on the Official Receipt and take a picture of the Official RECEIPT.</li>
  2297. </script>
  2298.  
  2299. <script id="partner-details" type="text/template">
  2300. <li>Partner Name: <span style="font-weight: bold;">@{{partner_name}}</span> </li>
  2301. <li>Address: <span style="font-weight: bold;">@{{address}}</span> </li>
  2302. <li>Owner: <span style="font-weight: bold;">@{{name}}</span></li>
  2303. <li>Contact Person: <span style="font-weight: bold;">@{{person}}</span></li>
  2304. <li>Contacts</li>
  2305. <li>&nbsp;&nbsp;&nbsp;&nbsp;Mobile: <span style="font-weight: bold;">@{{mobile}}</span></li>
  2306. <li>&nbsp;&nbsp;&nbsp;&nbsp;Landline: <span style="font-weight: bold;">@{{landline}}</span></li>
  2307. <li>&nbsp;&nbsp;&nbsp;&nbsp;Email: <span style="font-weight: bold;">@{{email}}</span></li>
  2308. <li>&nbsp;&nbsp;&nbsp;&nbsp;Facebook Link: <span style="font-weight: bold;">@{{fb_link}}</span></li>
  2309. <li>Bank Accounts</li>
  2310. <li>&nbsp;&nbsp;BPI</li>
  2311. <li>&nbsp;&nbsp;&nbsp;&nbsp;Account No.: <span style="font-weight: bold;">@{{bpi_num}}</span></li>
  2312. <li>&nbsp;&nbsp;&nbsp;&nbsp;Account Name: <span style="font-weight: bold;">@{{bpi_name}}</span></li>
  2313. <li>&nbsp;&nbsp;BDO</li>
  2314. <li>&nbsp;&nbsp;&nbsp;&nbsp;Account No.: <span style="font-weight: bold;">@{{bdo_num}}</span></li>
  2315. <li>&nbsp;&nbsp;&nbsp;&nbsp;Account Name: <span style="font-weight: bold;">@{{bdo_name}}</span></li>
  2316. </script>
  2317. <script id="partner-account" type="text/template">
  2318. <li><span style="font-weight: bold;">@{{name}}</span>'s Bank Account(s)</li>
  2319. <li>•&nbsp;BPI</li>
  2320. <li>&nbsp;&nbsp;&nbsp;&nbsp;Account No.: <span style="font-weight: bold;">@{{bpi_num}}</span></li>
  2321. <li>&nbsp;&nbsp;&nbsp;&nbsp;Account Name: <span style="font-weight: bold;">@{{bpi_name}}</span></li>
  2322. <li>•&nbsp;BDO</li>
  2323. <li>&nbsp;&nbsp;&nbsp;&nbsp;Account No.: <span style="font-weight: bold;">@{{bdo_num}}</span></li>
  2324. <li>&nbsp;&nbsp;&nbsp;&nbsp;Account Name: <span style="font-weight: bold;">@{{bdo_name}}</span></li>
  2325. </script>
  2326. <script id="partner-walkin" type="text/template">
  2327. <li>1. Visit @{{partner}} at @{{address}} in this schedule, @{{schedule}}.</li>
  2328. <li>2. Approach the contact person in the area and tell about the transaction code - <strong>@{{code}}</strong>.</li>
  2329. <li>3. Pay for the amount to the person.</li>
  2330. <li>4. The person will transfer the credits to your account once the payment is complete.</li>
  2331. </script>
  2332. <script id="cash-others" type="text/template">
  2333. <li>Please contact 2ez.bet page for instructions.</li>
  2334. </script>
  2335. <script>
  2336. $(document).on('click', '.panel-heading span.clickable', function(e){
  2337. var $this = $(this);
  2338. if(!$this.hasClass('panel-collapsed')) {
  2339. $this.parents('.panel').find('.panel-body').slideUp();
  2340. $this.addClass('panel-collapsed');
  2341. $this.find('i').removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down');
  2342. } else {
  2343. $this.parents('.panel').find('.panel-body').slideDown();
  2344. $this.removeClass('panel-collapsed');
  2345. $this.find('i').removeClass('glyphicon-chevron-down').addClass('glyphicon-chevron-up');
  2346. }
  2347. })
  2348. $(document).ready(function() {
  2349. $.fn.dataTable.ext.errMode = 'none';
  2350. $('#badges-selection').multiselect({
  2351. includeSelectAllOption: true
  2352. });
  2353. CKEDITOR.replace('tos_content_ckedit', {
  2354. extraPlugins: 'embed,autoembed,image2',
  2355. height: 300,
  2356. contentsCss: [ CKEDITOR.basePath + 'contents.css', 'https://sdk.ckeditor.com/samples/assets/css/widgetstyles.css' ],
  2357. embed_provider: '//ckeditor.iframe.ly/api/oembed?url={url}&callback={callback}',
  2358. image2_alignClasses: [ 'image-align-left', 'image-align-center', 'image-align-right' ],
  2359. image2_disableResizer: true,
  2360. extraAllowedContent: 'iframe(*){*}[*]',
  2361. });
  2362. $('#save-tos-btn').click(function() {
  2363. $btn = $(this);
  2364. $btn.button('progress');
  2365. $btn.prop('disabled', true);
  2366. console.log('saving tos...');
  2367. $.ajax({
  2368. url: "{{route('updateTOS')}}",
  2369. type: 'POST',
  2370. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  2371. data: {content: CKEDITOR.instances.tos_content_ckedit.getData()},
  2372. success: function(data) {
  2373. $btn.button('reset');
  2374. $btn.prop('disabled', false);
  2375. if(data.success)
  2376. swal("Success!", 'Successfully updated T&C!', "success");
  2377. else
  2378. swal("Oops!", 'Something went wrong. Please try again!', "error");
  2379. },
  2380. error: function(xhr, status, error) {
  2381. $btn.button('reset');
  2382. $btn.prop('disabled', false);
  2383. swal("Oops!", 'Something went wrong. Please try again!', "error");
  2384. }
  2385. });
  2386. });
  2387. });
  2388. $(".mop").select2({
  2389. placeholder: "Please select mode of payment"
  2390. });
  2391.  
  2392. $('#voucher_percent').currencyFormat();
  2393.  
  2394. var url = '{{asset('transaction/images/')}}'
  2395.  
  2396. var $image = $('#disc-image'), initPlugin = function() {
  2397. $image.fileinput({
  2398. previewFileType: "image",
  2399. theme: "fa",
  2400. showUpload: false,
  2401. showCaption: false,
  2402. showRemove: false,
  2403. browseClass: "btn btn-primary",
  2404. browseLabel: "Pick Image",
  2405. browseIcon: "<i class=\"fa fa-picture-o\"></i> ",
  2406. validateInitialCount:true,
  2407. allowedFileExtensions: ["jpg", "gif", "png"],
  2408. })
  2409. };
  2410.  
  2411. var $_image = $('#modal-mark-as-processed #image'), _initPlugin = function() {
  2412. $_image.fileinput({
  2413. previewFileType: "image",
  2414. theme: "fa",
  2415. showUpload: false,
  2416. showCaption: false,
  2417. showRemove: false,
  2418. browseClass: "btn btn-primary",
  2419. browseLabel: "Pick Image",
  2420. browseIcon: "<i class=\"fa fa-picture-o\"></i> ",
  2421. validateInitialCount:true,
  2422. allowedFileExtensions: ["jpg", "gif", "png"],
  2423. })
  2424. };
  2425.  
  2426. var $partner_image = $('#partner_modal_discrepancy #partner-image'), partnerInitPlugin = function() {
  2427. $partner_image.fileinput({
  2428. previewFileType: "image",
  2429. theme: "fa",
  2430. showUpload: false,
  2431. showCaption: false,
  2432. showRemove: false,
  2433. browseClass: "btn btn-primary",
  2434. browseLabel: "Pick Image",
  2435. browseIcon: "<i class=\"fa fa-picture-o\"></i> ",
  2436. validateInitialCount:true,
  2437. allowedFileExtensions: ["jpg", "gif", "png"],
  2438. }).on("filebatchselected", function(event, files) {
  2439. $('.kv-upload-progress').removeClass('hide').css('display', 'block').find('.progress-bar').css('width', '100%').text('Done');
  2440. $('.file-upload-indicator').css({
  2441. backgroundColor: '#dff0d8',
  2442. borderColor: '#d6e9c6'
  2443. });
  2444. $('.file-upload-indicator').find('i').removeClass('fa-hand-o-down').removeClass('text-warning').addClass('fa-check-circle').addClass('text-success');
  2445. });
  2446. };
  2447.  
  2448. var $payout_image = $('#partner_payout_modal #payout-image'), partnerPayoutInitPlugin = function() {
  2449. $payout_image.fileinput({
  2450. previewFileType: "image",
  2451. theme: "fa",
  2452. showUpload: false,
  2453. showCaption: false,
  2454. showRemove: false,
  2455. browseClass: "btn btn-primary",
  2456. browseLabel: "Pick Image",
  2457. browseIcon: "<i class=\"fa fa-picture-o\"></i> ",
  2458. validateInitialCount:true,
  2459. allowedFileExtensions: ["jpg", "gif", "png"],
  2460. });
  2461. };
  2462.  
  2463. var $payout_image_2 = $('#payout_modal #payout-image-2'), payoutInitPlugin = function() {
  2464. $payout_image_2.fileinput({
  2465. previewFileType: "image",
  2466. theme: "fa",
  2467. showUpload: false,
  2468. showCaption: false,
  2469. showRemove: false,
  2470. browseClass: "btn btn-primary",
  2471. browseLabel: "Pick Image",
  2472. browseIcon: "<i class=\"fa fa-picture-o\"></i> ",
  2473. validateInitialCount:true,
  2474. allowedFileExtensions: ["jpg", "gif", "png"],
  2475. }).on("filebatchselected", function(event, files) {
  2476. $('.kv-upload-progress').removeClass('hide').css('display', 'block').find('.progress-bar').css('width', '100%').text('Done');
  2477. $('.file-upload-indicator').css({
  2478. backgroundColor: '#dff0d8',
  2479. borderColor: '#d6e9c6'
  2480. });
  2481. $('.file-upload-indicator').find('i').removeClass('fa-hand-o-down').removeClass('text-warning').addClass('fa-check-circle').addClass('text-success');
  2482. });
  2483. };
  2484.  
  2485. // initialize plugin
  2486. initPlugin();
  2487. _initPlugin();
  2488. partnerInitPlugin();
  2489. payoutInitPlugin();
  2490. partnerPayoutInitPlugin();
  2491.  
  2492. var deposits_table
  2493. var cashout_table
  2494. var donations_table
  2495. var commissions_table
  2496. var discrepancy_table
  2497. var users_table
  2498. var bugs_table
  2499. var promo_table
  2500. var partner_discrepancy_table
  2501. var referrals_table
  2502. var payout_table
  2503. var rebates_table
  2504. var fees_table
  2505. var audit_user_bets
  2506. var audit_user_cashouts
  2507. var audit_user_deposits
  2508. var audit_user_partner_deposits
  2509. var audit_user_partner_cashouts
  2510. var verification_table
  2511. $(function(){
  2512. $.ajax({
  2513. url: '/admin/dashboard',
  2514. type: 'GET',
  2515. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  2516. success: function(data) {
  2517. var dt = $('<dt class="col-sm-6"></dt>')
  2518. var dd = $('<dd class="col-sm-6"></dd>')
  2519. $.each(data,function(index,item){
  2520. var _dt = dt.clone().append(humanize(index)+': ')
  2521. var _dd = dd.clone().append(item)
  2522. if(index.indexOf('circulating') != -1){
  2523. $('#overview-circulating').append(_dt)
  2524. $('#overview-circulating').append(_dd)
  2525. }
  2526.  
  2527. if(index.indexOf('available') != -1){
  2528. $('#overview-available').append(_dt)
  2529. $('#overview-available').append(_dd)
  2530. }
  2531.  
  2532. if(index.indexOf('betted_credits') != -1){
  2533. $('#overview-betted').append(_dt)
  2534. $('#overview-betted').append(_dd)
  2535. }
  2536.  
  2537. if(index.indexOf('fees') != -1){
  2538. $('#overview-fees').append(_dt)
  2539. $('#overview-fees').append(_dd)
  2540. }
  2541.  
  2542. if(index.indexOf('cashouts') != -1){
  2543. $('#overview-cashouts').append(_dt)
  2544. $('#overview-cashouts').append(_dd)
  2545. }
  2546.  
  2547. if(index.indexOf('partners') != -1){
  2548. $('#overview-partners').append(_dt)
  2549. $('#overview-partners').append(_dd)
  2550. }
  2551.  
  2552. if(index.indexOf('users_who') != -1){
  2553. $('#overview-users_who').append(_dt)
  2554. $('#overview-users_who').append(_dd)
  2555. }
  2556. })
  2557. $('#loading-text').html('')
  2558.  
  2559. function humanize(str) {
  2560. var frags = str.split('_');
  2561. for (i=0; i<frags.length; i++) {
  2562. frags[i] = frags[i].charAt(0).toUpperCase() + frags[i].slice(1);
  2563. }
  2564. return frags.join(' ');
  2565. }
  2566. },
  2567. fail: function(obj) {
  2568.  
  2569. }
  2570. });
  2571. $.fn.dataTable.moment('llll');
  2572.  
  2573. fees_table = $('#fees_table').DataTable({
  2574. processing: true,
  2575. serverSide:true,
  2576. stateSave: true,
  2577. responsive: true,
  2578. ajax: "{!! route('get-all-fees') !!}",
  2579. order: [[ 1, "desc" ]],
  2580. columns:[
  2581. {
  2582. data:'created_at',
  2583. name:'created_at',
  2584. render: function(data,type,row){
  2585. return moment(data).format('llll')+'<br>'+moment(data).fromNow()
  2586. }
  2587. },
  2588. {data:'meta_key',name:'meta_key'},
  2589. {data:'meta_value',name:'meta_value'},
  2590. {
  2591. data:'transaction',
  2592. searchable:false,
  2593. render: function(data,type,row){
  2594. switch (row['meta_key']) {
  2595. case 'cashout':
  2596. return data.code
  2597. case 'cashout-partner':
  2598. return data.code
  2599. case 'match':
  2600. return data.name
  2601. case 'tournament':
  2602. return data.name
  2603. default:
  2604. break;
  2605. }
  2606. }
  2607. },
  2608. {data:'collected',name:'collected'},
  2609. ]
  2610. });
  2611.  
  2612. discrepancy_table = $('#discrepancy_table').DataTable({
  2613. paging: false,
  2614. info: false,
  2615. searching: false,
  2616. ordering: false,
  2617. destroy: true,
  2618. responsive: true,
  2619. columns :[
  2620. {
  2621. data:'created_at',
  2622. render: function(data,type,row){
  2623. return moment(data).format('llll')+'<br>'+moment(data).fromNow()
  2624. }
  2625. },
  2626. {
  2627. data:'amount',
  2628. render: function(data,type,row){
  2629. return data ? data : 'n/a'
  2630. }
  2631. },
  2632. {
  2633. data:'picture',
  2634. searchable:false,
  2635. render: function(data,type,row){
  2636. return data ? '<a href="#" class="btn btn-default view-receipt"><i class="fa fa-picture-o" aria-hidden="true"></i></a>' : 'n/a'
  2637. }
  2638. },
  2639. {data: 'mop'},
  2640. {data: 'message'},
  2641. {data: 'process_by.name'},
  2642.  
  2643. ]
  2644. });
  2645.  
  2646. deposits_table = $('#deposits_table').DataTable({
  2647. processing: true,
  2648. serverSide:true,
  2649. stateSave: true,
  2650. responsive: true,
  2651. ajax: "{!! route('get_all_transactions',['type' => 'deposit']) !!}",
  2652. order: [[ 1, "desc" ]],
  2653. createdRow: function ( row, data, index ) {
  2654. var transaction = data;
  2655. if (transaction.discrepancy.length > 0) {
  2656. $('td', row).eq(3).addClass('highlight');
  2657. // $('td', row).closest('tr').addClass('highlight-dicrepancy');
  2658. }
  2659. },
  2660. columns:[
  2661. {data:'code',name:'code'},
  2662. {
  2663. data:'created_at',
  2664. name:'created_at',
  2665. render: function(data,type,row){
  2666. return moment(data).format('llll')+'<br>'+moment(data).fromNow()
  2667. }
  2668. },
  2669. {data:'user.name',name:'user.name'},
  2670. {
  2671. data:'amount',
  2672. name:'amount',
  2673. render: function(data,type,row){
  2674. return '&#8369; '+numberWithCommas(data);
  2675. }
  2676. },
  2677. {data:'data.mop',name:'data'},
  2678. {
  2679. data:'status',
  2680. name:'status',
  2681. render: function(data,type,row){
  2682. // return row['picture'] == null && data != 'completed' ? 'incomplete' : data == 'completed' ? 'Approved and Completed' : 'Needs Approval'
  2683. if(data == 'rejected'){
  2684. return 'rejected'
  2685. }else{
  2686. if(row['picture'] == null && data != 'completed'){
  2687. return 'incomplete'
  2688. }else{
  2689. switch (data) {
  2690. case 'completed':
  2691. return 'Approved and Completed'
  2692. default:
  2693. return 'Needs Approval'
  2694. }
  2695. }
  2696. }
  2697. }
  2698. },
  2699. {
  2700. data:'data',
  2701. searchable: false,
  2702. render: function(data,type,row){
  2703. return '<a href="#" class="btn btn-default view-details"><i class="fa fa-info" aria-hidden="true"></i></a>'
  2704. }
  2705. },
  2706. {
  2707. data:'picture',
  2708. searchable:false,
  2709. render: function(data,type,row){
  2710. return data != null ? '<a href="#" class="btn btn-default view-receipt"><i class="fa fa-picture-o" aria-hidden="true"></i></a>' : 'n/a'
  2711. }
  2712. },
  2713. {
  2714. data:'process_by',
  2715. searchable:false,
  2716. render: function(data,type,row){
  2717. return data == null ? 'n/a' : data['name']
  2718. }
  2719. },
  2720. {
  2721. data:'status',
  2722. searchable:false,
  2723. render: function(data,type,row){
  2724. if(data == 'rejected'){
  2725. return row['notes'][0] ? row['notes'][0].message : '';
  2726. }else{
  2727. if (row['picture'] == null && data != 'completed') {
  2728. return '<a href="#" data-status="rejected" class="btn btn-danger btn-sm btn-reject">Reject</a> <a href="#" data-status="discrepancy" class="btn btn-warning btn-sm btn-edit discrepancy">Approve w/ discrepancy</a>'
  2729.  
  2730. }else{
  2731. if (data == 'completed') {
  2732. return '<a href="#" data-status="discrepancy" class="btn btn-success btn-sm btn-edit discrepancy">Update w/ discrepancy</a>'
  2733. }else{
  2734. return '<a href="#" data-status="rejected" class="btn btn-danger btn-sm btn-reject">Reject</a> <a href="#" data-status="pocessing" class="btn btn-primary btn-sm btn-edit approve">Check and approve</a>'
  2735. }
  2736.  
  2737. }
  2738. }
  2739. // return '<a href="#" data-status="'+(data == 'completed' ? 'disapproved' : 'approved')+'" class="btn btn-'+(data == 'completed' ? 'danger' : 'primary')+' btn-sm btn-edit approve">'+(data == 'completed' ? 'Disapprove' : 'Approve')+'</a>'
  2740. }
  2741. },
  2742. ]
  2743.  
  2744. })
  2745.  
  2746. cashout_table = $('#cashout_table').DataTable({
  2747. processing: true,
  2748. serverSide:true,
  2749. stateSave: true,
  2750. responsive: true,
  2751. ajax: "{!! route('get_all_transactions',['type' => 'cashout']) !!}",
  2752. order: [[ 1, "desc" ]],
  2753. columns:[
  2754. {data:'code',name:'code'},
  2755. {
  2756. data:'created_at',
  2757. name:'created_at',
  2758. render: function(data,type,row){
  2759. return moment(data).format('llll')+'<br>'+moment(data).fromNow()
  2760. }
  2761. },
  2762. {data:'user.name',name:'user.name'},
  2763. {
  2764. data:'amount',
  2765. name:'amount',
  2766. render: function(data,type,row){
  2767. return '&#8369; '+numberWithCommas(data);
  2768. }
  2769. },
  2770. {data:'data.mop',name:'data'},
  2771. {
  2772. data:'data',
  2773. searchable:false,
  2774. render: function(data,type,row){
  2775. return data != null ? '<a href="#" class="btn btn-default view-details"><i class="fa fa-info" aria-hidden="true"></i></a>' : 'n/a'
  2776. }
  2777. },
  2778. {
  2779. data:'donation',
  2780. searchable:false,
  2781. render: function(data,type,row){
  2782. return data == null ? 'n/a' : data['amount']
  2783. }
  2784. },
  2785. {
  2786. data:'status',
  2787. name:'status',
  2788. render: function(data,type,row){
  2789. if(data == 'rejected'){
  2790. return 'Rejected'
  2791. }else{
  2792. if(row['picture'] == null){
  2793. return 'Processing'
  2794. }else{
  2795. return 'Processed'
  2796. }
  2797. }
  2798. }
  2799. },
  2800. {
  2801. data:'picture',
  2802. searchable:false,
  2803. render: function(data,type,row){
  2804. return data != null ? '<a href="#" class="btn btn-default view-receipt"><i class="fa fa-picture-o" aria-hidden="true"></i></a>' : 'n/a'
  2805. }
  2806. },
  2807. {
  2808. data:'notes',
  2809. searchable:false,
  2810. render: function(data,type,row){
  2811. return data.length == 0 ? 'n/a' : data[0].message
  2812. }
  2813. },
  2814. {
  2815. searchable:false,
  2816. render: function(data,type,row){
  2817. return row['process_by'] == null ? 'n/a' : row['process_by'].name
  2818. }
  2819. },
  2820. {
  2821. data:'status',
  2822. searchable:false,
  2823. render: function(data,type,row){
  2824. if(data == 'rejected'){
  2825. return row['notes'][0].message + '<br/><button class="btn btn-info btn-sm audit-user" data-toggle="modal" data-target="#auditUserModal">Audit</button>';
  2826. }else{
  2827. if (row['picture'] == null) {
  2828. return '<a href="#" data-status="rejected" class="btn btn-danger btn-sm btn-reject">Reject</a> <a href="#" data-status="deleted" class="btn btn-primary btn-sm mark-as-processed">Mark as processed</a> <button class="btn btn-info btn-sm audit-user" data-toggle="modal" data-target="#auditUserModal">Audit</button>'
  2829. }else{
  2830. return '<button class="btn btn-info btn-sm audit-user" data-toggle="modal" data-target="#auditUserModal">Audit</button>'
  2831. }
  2832. }
  2833. }
  2834. },
  2835. ]
  2836.  
  2837. });
  2838.  
  2839. bettings_table = $('#bettings_table').DataTable({
  2840. processing: true,
  2841. serverSide:true,
  2842. responsive: true,
  2843. ajax: "{!! route('json_tournament_allbets') !!}",
  2844. order: [[ 0, "desc" ]],
  2845. columns: [
  2846. {data: 'updated_at'},
  2847. {
  2848. data: 'user.name',
  2849. name: 'user.name',
  2850. render: function(data,type,row){
  2851. return data;
  2852. }
  2853. },
  2854. {
  2855. data: 'team.name',
  2856. data: 'team.name'
  2857. },
  2858. {
  2859. data: 'league',
  2860. name: 'league.name',
  2861. render: function(data,type,row){
  2862. if(data)
  2863. return data.name;
  2864. else
  2865. return row['tournament'];
  2866. }
  2867. },
  2868. {
  2869. data: 'match',
  2870. name: 'match.name',
  2871. render: function(data,type,row){
  2872. if(data) {
  2873. var url = "{{url('/')}}/match/" + data.id;
  2874. return '<a href="'+url+'" target="_new">' + data.name + '</a>';
  2875. } else {
  2876. var url = "{{url('/')}}/tournament/" + row['league'].id;
  2877. return '<a href="'+url+'" target="_new">' + row['league'].name + ' Winner</a>';
  2878. }
  2879. }
  2880. },
  2881. {
  2882. data: 'match.teamwinner',
  2883. name: 'match.teamwinner.name',
  2884. render: function(data,type,row){
  2885. if(data) {
  2886. return data.name;
  2887. } else {
  2888. if(row['type'] == 'tournament')
  2889. return row['league'].champion ? row['league'].champion.name : 'N/A';
  2890. else
  2891. return 'N/A';
  2892. }
  2893. }
  2894. },
  2895. {
  2896. data: 'amount',
  2897. name: 'amount',
  2898. render: function(data,type,row) {
  2899. return numberWithCommas(parseFloat(data).toFixed(2));
  2900. }
  2901. },
  2902. {
  2903. data: 'match',
  2904. name: 'match.status',
  2905. render: function(data,type,row){
  2906. if(data) {
  2907. switch(data.status) {
  2908. case 'open':
  2909. return '<strong style="color: green">Open</strong>';
  2910. case 'closed':
  2911. case 'settled':
  2912. if(row['team_id'] == data.team_winner)
  2913. return 'Settled (<strong style="color: blue">Win</strong>)';
  2914. else
  2915. return 'Settled (<strong style="color: red">Loss</strong>)';
  2916. default:
  2917. return data.status.toLowerCase().replace(/\b[a-z]/g, function(letter) {
  2918. return letter.toUpperCase();
  2919. });
  2920. }
  2921. } else {
  2922. if(row['type'] == 'tournament') {
  2923. switch(row['league'].betting_status) {
  2924. case 0:
  2925. if (row['league'].league_winner)
  2926. return 'Closed';
  2927. else
  2928. return 'Ongoing';
  2929. break;
  2930. case 1:
  2931. return '<strong style="color: green">Open</strong>';
  2932. break;
  2933. case -1:
  2934. if(row['league'].league_winner == row['team_id'])
  2935. return 'Settled (<strong style="color: blue">Win</strong>)';
  2936. else
  2937. return 'Settled (<strong style="color: red">Loss</strong>)';
  2938. break;
  2939. default:
  2940. return 'Closed';
  2941. break;
  2942. }
  2943. }
  2944. }
  2945. }
  2946. },
  2947. {
  2948. data: 'amount',
  2949. name: 'amount',
  2950. render: function(data,type,row){
  2951. if(row['match']) {
  2952. switch(row['match'].status) {
  2953. case 'cancelled':
  2954. case 'forfeit':
  2955. case 'draw':
  2956. return 0;
  2957. case 'settled':
  2958. case 'closed':
  2959. // var profit = row['potential_winnings'] - row['amount'];
  2960. if(row['team_id'] == row['match'].team_winner)
  2961. return '<span style="color:green">+'+numberWithCommas(parseFloat(row.gains).toFixed(2))+'</span>';
  2962. else
  2963. return '<span style="color:red">-'+numberWithCommas(row['amount'])+'</span>';
  2964. break;
  2965. default:
  2966. return 'N/A';
  2967. }
  2968. } else {
  2969. if(row['type'] == 'tournament') {
  2970. if(row.league.betting_status == -1) {
  2971. if(row.league.league_winner == row['team_id'])
  2972. return '<span style="color:green">+'+numberWithCommas(parseFloat(row.gains).toFixed(2))+'</span>';
  2973. else
  2974. return '<span style="color:red">-'+numberWithCommas(row['amount'])+'</span>';
  2975. } else
  2976. return 'N/A';
  2977. } else
  2978. return 'N/A';
  2979. }
  2980. }
  2981. },
  2982. ]
  2983. });
  2984.  
  2985. $('#deposits_table').on('click', '.approve', function(event) {
  2986. event.preventDefault();
  2987. $tr = $(this).closest('tr').hasClass('child') ?
  2988. $(this).closest('tr').prev() : $(this).closest('tr');
  2989. var row = deposits_table.row($tr).data();
  2990. let message = `Transaction <span style="font-weight:bold;color: #820804">${row.code}</span> will be approved <br> <label for="add_rebate" class="control-label"> <input id="add_rebate" name="add_rebate" type="checkbox"> Add Rebate</label>`
  2991.  
  2992. swal({
  2993. title: "Are you sure?",
  2994. text: "Transaction <span style='font-weight:bold;color: #820804'>"+row.code+"</span> will be approved",
  2995. type: "warning",
  2996. showCancelButton: true,
  2997. confirmButtonClass: "btn-danger",
  2998. confirmButtonText: "Yes, please continue!",
  2999. showLoaderOnConfirm: true,
  3000. closeOnConfirm: false,
  3001. html:true
  3002. },
  3003. function(){
  3004. var add_rebate = $('.sweet-alert').find('#add_rebate').is(':checked') ? 1 : 0;
  3005.  
  3006. $.ajax({
  3007. url: '{{ route('set_status') }}',
  3008. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  3009. type: 'POST',
  3010. data: { id: row['id'],status:'completed',type: 'deposit', user_id:row['user'].id, add_rebate: add_rebate },
  3011. success: function(data) {
  3012. if (data.success) {
  3013. swal("Approved!", 'Transaction successfully approved', "success");
  3014. deposits_table.ajax.reload( null, false );
  3015. }else{
  3016. swal("Oops!", 'Something went wrong!', "error");
  3017. }
  3018. },
  3019. fail: function(xhr, status, error) {
  3020. console.log(error);
  3021. }
  3022. });
  3023. });
  3024. $('.sweet-alert').find('.lead').html(message);
  3025.  
  3026. });
  3027.  
  3028. donations_table = $('#donations_table').DataTable({
  3029. processing: true,
  3030. serverSide:true,
  3031. responsive: true,
  3032. ajax: "{!! route('get_donations_transactions') !!}",
  3033. order: [[ 1, "desc" ]],
  3034. columns:[
  3035. {
  3036. data:'created_at',
  3037. name:'created_at',
  3038. render: function(data,type,row){
  3039. return moment(data).format('llll')+'<br>'+moment(data).fromNow()
  3040. }
  3041. },
  3042. {data:'user.name',name:'user.name'},
  3043. {
  3044. data:'amount',
  3045. name:'amount',
  3046. render: function(data,type,row){
  3047. return '&#8369; '+numberWithCommas(data);
  3048. }
  3049. },
  3050. ]
  3051.  
  3052. })
  3053.  
  3054. commissions_table = $('#commissions_table').DataTable({
  3055. processing: true,
  3056. serverSide:true,
  3057. responsive: true,
  3058. ajax: "{!! route('get_commissions_transactions') !!}",
  3059. order: [[ 1, "desc" ]],
  3060. columns:[
  3061. {
  3062. data:'created_at',
  3063. name:'created_at',
  3064. render: function(data,type,row){
  3065. return moment(data).format('llll')+'<br>'+moment(data).fromNow()
  3066. }
  3067. },
  3068. {data:'user.name',name:'user.name'},
  3069. {
  3070. data:'transaction.code',
  3071. name:'transaction.code',
  3072. },
  3073. {
  3074. data:'transaction.user.name',
  3075. name:'transaction.user.name',
  3076. },
  3077. {
  3078. data:'transaction.discrepancy',
  3079. render: function (data,type,row) {
  3080. if(data.length > 0){
  3081. var _dis = $.grep(data,function(discrepancy){
  3082. if(discrepancy.amount){
  3083. return discrepancy;
  3084. }
  3085. })
  3086. return _dis.length > 0 ? '&#8369; '+numberWithCommas(_dis[_dis.length - 1].amount) :
  3087. '&#8369; '+numberWithCommas(row.transaction.amount);
  3088. }else{
  3089. return '&#8369; '+numberWithCommas(row.transaction.amount);
  3090. }
  3091. }
  3092. },
  3093. {
  3094. data:'amount',
  3095. name:'amount',
  3096. render: function(data,type,row){
  3097. return '&#8369; '+numberWithCommas(data);
  3098. }
  3099. },
  3100. {
  3101. data:'status',
  3102. name:'status',
  3103. render: function(data,type,row){
  3104. return data ? 'Paid' : 'Unpaid';
  3105. }
  3106. },
  3107. ]
  3108.  
  3109. })
  3110.  
  3111. badges_table = $('#badges_table').DataTable({
  3112. processing: true,
  3113. serverSide:true,
  3114. responsive: true,
  3115. ajax: "{!! route('get_all_badges') !!}",
  3116. order: [[ 1, "desc" ]],
  3117. columns:[
  3118. {
  3119. data:'name',
  3120. name:'name',
  3121. render: function(data,type,row){
  3122. var image_url = "{{url('/public_image')}}/" + row['image'];
  3123. return data + '<br/><image src="'+ image_url +'" width="60px" />';
  3124. }
  3125. },
  3126. {
  3127. data:'description',
  3128. name:'description',
  3129. render: function(data,type,row){
  3130. return data;
  3131. }
  3132. },
  3133. {
  3134. data:'credits',
  3135. name:'credits',
  3136. render: function(data,type,row){
  3137. return data;
  3138. }
  3139. },
  3140. {
  3141. data:'users',
  3142. name:'users',
  3143. render: function(data,type,row){
  3144. return data.length;
  3145. }
  3146. },
  3147. {
  3148. searchable:false,
  3149. render: function(data,type,row){
  3150. return '<button type="button" class="btn btn-warning btn-xs editBadge" data-badgeid="'+row['id']+'">Edit</button> ' +
  3151. '<button type="button" class="btn btn-danger btn-xs delBadge" data-badgeid="'+row['id']+'">Delete</button>';
  3152. }
  3153. }
  3154. ]
  3155.  
  3156. });
  3157.  
  3158. users_table = $('#users_table').DataTable({
  3159. processing: true,
  3160. serverSide:true,
  3161. responsive: true,
  3162. ajax: "{!! route('users') !!}",
  3163. order: [[ 0, "asc" ]],
  3164. createdRow: function ( row, data, index ) {
  3165. $('td', row).eq(4).css('width', '100px');
  3166. },
  3167. columns:[
  3168. { data:'id' },
  3169. {
  3170. data:'name',
  3171. render: function(data,type,row){
  3172. return data + '<br/><span style="font-size: 75%;">' + row['email'] + '</span>';
  3173. }
  3174. },
  3175. {
  3176. data:'badges',
  3177. name:'badges.name',
  3178. render: function(data,type,row){
  3179. if(data.length) {
  3180. var badges = [];
  3181. $.each(data, function() {
  3182. badges.push(this.name);
  3183. });
  3184. return badges.join(', ') + ' <a href="#" class="btn btn-primary btn-xs set-badges">Set</a>';
  3185. } else
  3186. return 'n/a <a href="#" class="btn btn-primary btn-xs set-badges">Set</a>';
  3187. }
  3188. },
  3189. {
  3190. data:'provider',
  3191. },
  3192. {
  3193. data:'credits',
  3194. render: function(data,type,row){
  3195. // return '&#8369; '+numberWithCommas(parseFloat(data).toFixed(2)) + ' <span class="set-credits fa fa-plus-circle"></span>';
  3196. return '&#8369; '+numberWithCommas(parseFloat(data).toFixed(2));
  3197. }
  3198. },
  3199. {
  3200. data:'voucher_code',
  3201. render: function(data,type,row){
  3202. return data ? data+' <a href="#" class="btn btn-success btn-xs update-code voucher-code">Update</a>' : 'n/a <a href="#" class="btn btn-primary btn-xs add-code voucher-code">Add</a>'
  3203. }
  3204. },
  3205. {
  3206. width: '100px',
  3207. data:'type',
  3208. render: function(data,type,row){
  3209. var html = ''
  3210. if (row['roles'].length > 0) {
  3211. $.each(row['roles'], function(index, val) {
  3212. var letter,color;
  3213. switch (val.id) {
  3214. case 1:
  3215. letter = 'A';
  3216. color = 'danger'
  3217. break;
  3218. case 2:
  3219. letter = 'AG';
  3220. color = 'warning'
  3221. break;
  3222. case 3:
  3223. letter = 'BT';
  3224. color = 'success'
  3225. break;
  3226. case 4:
  3227. letter = 'M';
  3228. color = 'primary'
  3229. break;
  3230. case 5:
  3231. letter = 'MM';
  3232. color = 'danger';
  3233. default:
  3234. break;
  3235. }
  3236. html += '<span class="btn btn-'+color+' btn-circle-micro value">'+letter+'</span>'
  3237. });
  3238. html += '<span class="dropdown_display_button fa fa-pencil-square"></span>'
  3239. return html;
  3240. }else{
  3241. var letter,color;
  3242. switch (data) {
  3243. case 'admin':
  3244. letter = 'A';
  3245. color = 'danger'
  3246. break;
  3247. case 'user':
  3248. letter = 'M';
  3249. color = 'primary'
  3250. break;
  3251. case 'matchmanager':
  3252. letter = 'MM';
  3253. color = 'danger';
  3254. break;
  3255. default:
  3256. break;
  3257. }
  3258. return '<span class="btn btn-'+color+' btn-circle-micro value">'+letter+'</span><span class="dropdown_display_button fa fa-pencil-square"></span>';
  3259.  
  3260. }
  3261. // return '<span class="value" data-id="'+row['id']+'" data-type="'+data+'">'+data+'</span><span class="dropdown_display_button fa fa-pencil-square"></span>'
  3262. }
  3263. },
  3264. {
  3265. data:'unpaid_commissions',
  3266. searchable:false,
  3267. ordering: false,
  3268. render: function(data,type,row) {
  3269. if(data.filter((el) => el.transaction != null).length){
  3270. return data.filter((el) => el.transaction != null).reduce((sum, current) => { // <== Note `sum` parameter
  3271. return sum + parseFloat(current.amount); // <== Using `sum`
  3272. }, 0);
  3273. }else{
  3274. return '0.00';
  3275. }
  3276. }
  3277. },
  3278. {
  3279. searchable:false,
  3280. render: function(data,type,row){
  3281. // return row.provider != 'facebook' ? '<a href="#" class="btn btn-primary btn-xs add-rewards">Add Rewards</a> <a href="#" class="btn btn-warning btn-xs reset-password">Reset Password</a>' :
  3282. // '<a href="#" class="btn btn-primary btn-xs add-rewards" data-toggle="modal">Add Rewards</a>'
  3283. let total_commission = row['unpaid_commissions'].length ? row['unpaid_commissions'].filter((el) => el.transaction != null).reduce((sum, current) => { return sum + parseFloat(current.amount);}, 0) : 0
  3284. let btn_payout = row['unpaid_commissions'].length && total_commission >= 1000 ? '<button class="btn btn-success btn-xs show-payout-modal">Payout</button> ' : ''
  3285. var html = '<button class="btn btn-info btn-xs audit-user" data-toggle="modal" data-target="#auditUserModal">Audit</button> ' +btn_payout+
  3286. (row.provider != 'facebook' ? '<a href="#" class="btn btn-warning btn-xs reset-password">Reset Password</a>' : '');
  3287. return html;
  3288. }
  3289. },
  3290. ]
  3291.  
  3292. })
  3293.  
  3294. rewards_table = $('#rewards_table').DataTable({
  3295. processing: true,
  3296. serverSide:true,
  3297. responsive: true,
  3298. ajax: "{!! route('get_all_rewards') !!}",
  3299. order: [[ 0, "desc" ]],
  3300. columns:[
  3301. {
  3302. data:'created_at',
  3303. name:'created_at',
  3304. render: function(data,type,row){
  3305. return moment(data).format('llll')+'<br>'+moment(data).fromNow();
  3306. }
  3307. },
  3308. {
  3309. data:'user.name',
  3310. name:'user.name',
  3311. render: function(data,type,row){
  3312. return data;
  3313. }
  3314. },
  3315. {
  3316. data:'credits',
  3317. name:'credits',
  3318. render: function(data,type,row){
  3319. return data;
  3320. }
  3321. },
  3322. {
  3323. data:'type',
  3324. name:'type',
  3325. render: function(data,type,row){
  3326. return data;
  3327. }
  3328. },
  3329. {
  3330. data:'description',
  3331. name:'description',
  3332. render: function(data,type,row){
  3333. return data;
  3334. }
  3335. },
  3336. {
  3337. data:'added_by',
  3338. name:'added_by',
  3339. render: function(data,type,row){
  3340. return data ? data.name : 'System';
  3341. }
  3342. }
  3343. ]
  3344.  
  3345. });
  3346.  
  3347. bugs_table = $('#bugs_table').DataTable({
  3348. processing: true,
  3349. serverSide:true,
  3350. responsive: true,
  3351. ajax: "{!! route('get-all-reported-bugs',['type' => 'admin']) !!}",
  3352. order: [[ 0, "desc" ]],
  3353. columnDefs: [
  3354. {
  3355. render: function (data, type, full, meta) {
  3356. return "<div class='text-wrap width-200'>" + data + "</div>";
  3357. },
  3358. targets: 2
  3359. }
  3360. ],
  3361. columns: [
  3362. {data: 'created_at'},
  3363. {data: 'user.name'},
  3364. {data: 'subject'},
  3365. {data: 'comment'},
  3366. {
  3367. data:'hasImage',
  3368. searchable:false,
  3369. render: function(data,type,row){
  3370. return data ? '<a href="#" class="btn btn-default view-bug"><i class="fa fa-picture-o" aria-hidden="true"></i></a>' : 'n/a'
  3371. }
  3372. },
  3373. {
  3374. data:'status',
  3375. render: function(data,type,row){
  3376. switch (data) {
  3377. case 0:
  3378. return '<strong class="label label-primary">Processing</strong>'
  3379. break;
  3380. case 1:
  3381. return '<strong class="label label-success">Accepted</strong>'
  3382. break;
  3383. case 2:
  3384. return '<strong class="label label-danger">Rejected</strong>'
  3385. break;
  3386.  
  3387. default:
  3388. break;
  3389. }
  3390. // return data ? '<strong class="label label-success">Done</strong>' : '<strong class="label label-primary">Processing</strong>'
  3391. }
  3392. },
  3393. {
  3394. data:'status',
  3395. render: function(data,type,row){
  3396. return data ? '<a href="#" class="btn btn-success btn-xs" data-toggle="modal" disabled>Done</a>' : '<a href="#" class="btn btn-primary btn-xs bug-done-btn" data-toggle="modal">Mark as done</a>'
  3397. }
  3398. },
  3399. ],
  3400. drawCallback: function( settings ) {
  3401. var api = this.api();
  3402. var pending_ctr = api.rows().data()[0].pending_bugs;
  3403. if(pending_ctr > 0)
  3404. $('#bug_ctr').attr('data-count', pending_ctr);
  3405. else
  3406. $('#bug_ctr').removeAttr('data-count');
  3407. }
  3408. });
  3409.  
  3410. verification_table = $('#verification_table').DataTable({
  3411. processing: true,
  3412. serverSide: true,
  3413. responsive: true,
  3414. ajax: "{!! route('get-all-verifications',['type' => 'admin']) !!}",
  3415. order: [[ 0, "desc"]],
  3416. columnDefs:[
  3417. {
  3418. render: function(data,type,full,meta){
  3419. return "<div class='text-wrap width-200'>" + data + "</div>";
  3420. },
  3421. targets: 1
  3422. }
  3423. ],
  3424. columns: [
  3425. {data: 'created_at'},
  3426. {data: 'user_id'},
  3427. {data: 'type'},
  3428. {data: 'level'},
  3429. {
  3430. data:'hasImage',
  3431. searchable:false,
  3432. render: function(data,type,row){
  3433. return data ? '<a href="#" class="btn btn-default view-verification"><i class="fa fa-picture-o" aria-hidden="true"></i></a>' : 'n/a'
  3434. }
  3435. },
  3436. {
  3437. data: 'status',
  3438. render: function(data,type,row){
  3439. switch(data){
  3440. case 'processing':
  3441. return '<strong class="label label-primary">Processing</strong>'
  3442. break;
  3443. case 'accepted':
  3444. return '<strong class="label label-success">Accepted</strong>'
  3445. break;
  3446. case 'rejected':
  3447. return '<strong class="label label-danger">Rejected</strong>'
  3448. break;
  3449. default:
  3450. break;
  3451. }
  3452. }
  3453. },
  3454. {
  3455. data:'status',
  3456. render: function(data,type,row){
  3457. if (data == 'processing') {
  3458. return '<a href="#" data-status="rejected" class="btn btn-danger btn-sm btn-reject">Reject</a> <a href="#" data-status="deleted" class="btn btn-primary btn-sm mark-as-processed">Mark as processed</a>'
  3459. }
  3460. else{
  3461. if(data == 'rejected'){
  3462. '<a href="#" class="btn btn-success btn-xs" data-toggle="modal" disabled>Done</a>'
  3463. }
  3464. }
  3465. }
  3466. },
  3467. ],
  3468. drawCallback: function(settings){
  3469. var api = this.api();
  3470. var pending_ctr = api.rows().data()[0].pending_verification;
  3471. if(pending_ctr > 0)
  3472. $('#verification_ctr').attr('data-count', pending_ctr);
  3473. else
  3474. $('#verification_ctr').removeAttr('data-count');
  3475. }
  3476. });
  3477.  
  3478. promo_table = $('#promo_table').DataTable({
  3479. processing: true,
  3480. serverSide:true,
  3481. responsive: true,
  3482. ajax: "{!! route('get-all-promo',['type' => 'admin']) !!}",
  3483. order: [[ 0, "desc" ]],
  3484. columns: [
  3485. {data: 'created_at'},
  3486. {data: 'user.name'},
  3487. {data: 'comment'},
  3488. {data: 'admin_comment'},
  3489. {data: 'link'},
  3490. // {
  3491. // data:'link',
  3492. // searchable:false,
  3493. // render: function(data,type,row){
  3494. // return '<a href="'+(data)+'" target="_blank">'+(data)+'</a>'
  3495. // }
  3496. // },
  3497. {
  3498. data:'status',
  3499. render: function(data,type,row){
  3500. switch (data) {
  3501. case 0:
  3502. return '<strong class="label label-primary">Processing</strong>'
  3503. break;
  3504. case 1:
  3505. return '<strong class="label label-success">Accepted</strong>'
  3506. break;
  3507. case 2:
  3508. return '<strong class="label label-danger">Rejected</strong>'
  3509. break;
  3510.  
  3511. default:
  3512. break;
  3513. }
  3514. // return data ? '<strong class="label label-success">Done</strong>' : '<strong class="label label-primary">Processing</strong>'
  3515. }
  3516. },
  3517. {
  3518. data:'status',
  3519. render: function(data,type,row){
  3520. return data ? '<a href="#" class="btn btn-success btn-xs" data-toggle="modal" disabled>Done</a>' : '<a href="#" class="btn btn-primary btn-xs promo-done-btn" data-toggle="modal">Mark as done</a>'
  3521. }
  3522. },
  3523. ],
  3524. drawCallback: function( settings ) {
  3525. var api = this.api();
  3526. var pending_ctr = api.rows().data()[0].pending_promos;
  3527. if(pending_ctr > 0)
  3528. $('#promo_ctr').attr('data-count', pending_ctr);
  3529. else
  3530. $('#promo_ctr').removeAttr('data-count');
  3531. }
  3532. });
  3533.  
  3534. referrals_table = $('#referrals_table').DataTable({
  3535. processing: true,
  3536. serverSide:true,
  3537. responsive: true,
  3538. ajax: "{!! route('get-all-referrals') !!}",
  3539. order: [[ 1, "desc" ]],
  3540. columns:[
  3541. {
  3542. data:'created_at',
  3543. name:'created_at',
  3544. render: function(data,type,row){
  3545. return moment(data).format('llll')+'<br>'+moment(data).fromNow()
  3546. }
  3547. },
  3548. {
  3549. data:'code',
  3550. name:'code',
  3551. },
  3552. {data:'owner.name',name:'owner.name'},
  3553. {data:'refered_user.name',name:'refered_user.name'},
  3554. {
  3555. data:'code',
  3556. name:'code',
  3557. render: function(data,type,row){
  3558. var active = []
  3559. let transactions = row.refered_user.transactions
  3560. if(transactions.length > 0){
  3561. active = $.grep(transactions,function(transaction){
  3562. if(transaction.status == 'completed'){
  3563. return transaction;
  3564. }
  3565. })
  3566. }
  3567. return active.length > 0 ? 'Bettor' : 'Inactive'
  3568. }
  3569. },
  3570. ]
  3571.  
  3572. })
  3573.  
  3574. payout_table = $('#payout_table').DataTable({
  3575. processing: true,
  3576. serverSide:true,
  3577. responsive: true,
  3578. ajax: "{!! route('get.all.payout') !!}",
  3579. order: [[ 1, "desc" ]],
  3580. columns:[
  3581. {
  3582. data:'created_at',
  3583. name:'created_at',
  3584. render: function(data,type,row){
  3585. return moment(data).format('llll')+'<br>'+moment(data).fromNow()
  3586. }
  3587. },
  3588. {
  3589. data:'code',
  3590. name:'code',
  3591. },
  3592. { data: 'user.name',
  3593. name: 'user.name'
  3594. },
  3595. {
  3596. data:'amount',
  3597. name:'amount',
  3598. render: function(data,type,row){
  3599. return '&#8369; '+numberWithCommas(data);
  3600. }
  3601. },
  3602. {
  3603. data: 'receipt',
  3604. searchable: false,
  3605. orderable: false,
  3606. render: function(data,type,row){
  3607. return data ? '<a href="#" class="btn btn-default view-receipt"><i class="fa fa-picture-o" aria-hidden="true"></i></a>' : 'n/a'
  3608. }
  3609. },
  3610. { data: 'process_by.name',
  3611. searchable: false,
  3612. orderable: false,
  3613. },
  3614. ]
  3615.  
  3616. })
  3617.  
  3618. rebates_table = $('#rebates_table').DataTable({
  3619. processing: true,
  3620. serverSide:true,
  3621. responsive: true,
  3622. ajax: "{!! route('get-rebates') !!}",
  3623. order: [[ 0, "desc" ]],
  3624. columns: [
  3625. {data: 'created_at', name:'created_at'},
  3626. {data: 'user.name', name:'user.name'},
  3627. {data:'transaction.code', name:'transaction.code'},
  3628. {
  3629. data:'transaction.discrepancy',
  3630. name:'transaction.discrepancy',
  3631. render: function (data,type,row) {
  3632. if(data.length > 0){
  3633. var _dis = $.grep(data,function(discrepancy){
  3634. if(discrepancy.amount){
  3635. return discrepancy;
  3636. }
  3637. });
  3638. return _dis.length > 0 ? '&#8369; '+numberWithCommas(_dis[_dis.length - 1].amount) :
  3639. '&#8369; '+numberWithCommas(row.transaction.amount);
  3640. }else{
  3641. return '&#8369; '+numberWithCommas(row.transaction.amount)
  3642. }
  3643. }
  3644. },
  3645. {data: 'collected'},
  3646. {
  3647. data:'transfered',
  3648. name:'transfered',
  3649. searchable: false,
  3650. orderable: false,
  3651. render: function(data,type,row){
  3652. return data ? 'Transafered' : 'Not Transfered';
  3653. }
  3654. },
  3655. ]
  3656. });
  3657.  
  3658. audit_user_bets = $('#auditUserModal #audituser-table-bets').DataTable({
  3659. processing: true,
  3660. serverSide:true,
  3661. responsive: true,
  3662. ajax: "{!! route('get-audit-data', ['type' => 'bets']) !!}",
  3663. columns: [
  3664. {
  3665. data:'updated_at',
  3666. name:'updated_at'
  3667. },
  3668. {
  3669. data:'match',
  3670. name:'match.name',
  3671. render: function(data,type,row){
  3672. if(data) {
  3673. var url = "{{url('/')}}/match/" + data.id;
  3674. return '<a href="'+url+'" target="_new">' + data.name + '</a>';
  3675. } else {
  3676. var url = "{{url('/')}}/tournament/" + row['league'].id;
  3677. return '<a href="'+url+'" target="_new">' + row['league'].name + ' Winner</a>';
  3678. }
  3679. }
  3680. },
  3681. {
  3682. data: 'team.name',
  3683. name: 'team.name'
  3684. },
  3685. {
  3686. data: 'amount',
  3687. render: function(data,type,row){
  3688. return '&#8369; '+numberWithCommas(data);
  3689. }
  3690. },
  3691. {
  3692. data: 'match',
  3693. name: 'match.status',
  3694. render: function(data,type,row){
  3695. if(data) {
  3696. switch(data.status) {
  3697. case 'open':
  3698. return '<strong style="color: green">Open</strong>';
  3699. case 'ongoing':
  3700. return '<strong style="color: green">Ongoing</strong>';
  3701. case 'closed':
  3702. case 'settled':
  3703. if(row['team_id'] == data.team_winner)
  3704. return 'Settled (<strong style="color: blue">Win</strong>)';
  3705. else
  3706. return 'Settled (<strong style="color: red">Loss</strong>)';
  3707. default:
  3708. return data.status.toLowerCase().replace(/\b[a-z]/g, function(letter) {
  3709. return letter.toUpperCase();
  3710. });
  3711. }
  3712. } else {
  3713. if(row['type'] == 'tournament') {
  3714. switch(row['league'].betting_status) {
  3715. case 0:
  3716. if (row['league'].league_winner)
  3717. return 'Closed';
  3718. else
  3719. return '<strong style="color: green">Ongoing</strong>';
  3720. break;
  3721. case 1:
  3722. return '<strong style="color: green">Open</strong>';
  3723. break;
  3724. case -1:
  3725. if(row['league'].league_winner == row['team_id'])
  3726. return 'Settled (<strong style="color: blue">Win</strong>)';
  3727. else
  3728. return 'Settled (<strong style="color: red">Loss</strong>)';
  3729. break;
  3730. default:
  3731. return 'Closed';
  3732. break;
  3733. }
  3734. }
  3735. }
  3736. }
  3737. },
  3738. {
  3739. data: 'amount',
  3740. name: 'amount',
  3741. render: function(data,type,row){
  3742. if(row['match']) {
  3743. switch(row['match'].status) {
  3744. case 'cancelled':
  3745. case 'forfeit':
  3746. case 'draw':
  3747. return 0;
  3748. case 'settled':
  3749. case 'closed':
  3750. // var profit = row['potential_winnings'] - row['amount'];
  3751. if(row['team_id'] == row['match'].team_winner)
  3752. return '<span style="color:green">+'+numberWithCommas(parseFloat(row.gains).toFixed(2))+'</span>';
  3753. else
  3754. return '<span style="color:red">-'+numberWithCommas(row['amount'])+'</span>';
  3755. break;
  3756. default:
  3757. return 'N/A';
  3758. }
  3759. } else {
  3760. if(row['type'] == 'tournament') {
  3761. if(row['league'].betting_status == -1) {
  3762. if(row['league'].league_winner == row['team_id']) {
  3763. var _gains = row['potential_winnings'] - row.amount;
  3764. return '<span style="color:green">+'+numberWithCommas(parseFloat(_gains).toFixed(2))+'</span>';
  3765. } else
  3766. return '<span style="color:red">-'+numberWithCommas(row['amount'])+'</span>';
  3767. } else
  3768. return 'N/A';
  3769. } else
  3770. return 'N/A';
  3771. }
  3772. }
  3773. }
  3774. ]
  3775. });
  3776. audit_user_deposits = $('#auditUserModal #audituser-table-deposits').DataTable({
  3777. searching: false,
  3778. lengthChange: false,
  3779. processing: true,
  3780. serverSide:true,
  3781. responsive: true,
  3782. ajax: "{!! route('get-audit-data', ['type' => 'deposits']) !!}",
  3783. columns: [
  3784. {
  3785. data:'created_at',
  3786. name:'created_at',
  3787. },
  3788. { data:'code',name:'code' },
  3789. {
  3790. data:'amount',
  3791. name:'amount',
  3792. render: function(data,type,row){
  3793. if(row.discrepancy.length) {
  3794. var disc_amount = row.discrepancy.reduce(function(total, currVal) {
  3795. return total + currVal.amount;
  3796. }, 0);
  3797. return '&#8369; '+numberWithCommas(data)+
  3798. ' (<span style="font-weight:bold; color: blue">'+
  3799. numberWithCommas(disc_amount)+
  3800. '</span>)';
  3801. } else
  3802. return '&#8369; '+numberWithCommas(data);
  3803. }
  3804. },
  3805. {data:'data.mop',name:'data'},
  3806. {
  3807. data:'status',
  3808. name:'status',
  3809. render: function(data,type,row){
  3810. // return row['picture'] == null && data != 'completed' ? 'incomplete' : data == 'completed' ? 'Approved and Completed' : 'Needs Approval'
  3811. if(data == 'rejected'){
  3812. return 'rejected'
  3813. }else{
  3814. if(row['picture'] == null && data != 'completed'){
  3815. return 'incomplete'
  3816. }else{
  3817. switch (data) {
  3818. case 'completed':
  3819. return 'Approved and Completed'
  3820. default:
  3821. return 'Needs Approval'
  3822. }
  3823. }
  3824. }
  3825. }
  3826. },
  3827. {
  3828. data:'process_by',
  3829. searchable:false,
  3830. render: function(data,type,row){
  3831. return data == null ? 'n/a' : data['name']
  3832. }
  3833. }
  3834. ]
  3835. });
  3836. audit_user_cashouts = $('#auditUserModal #audituser-table-cashouts').DataTable({
  3837. searching: false,
  3838. lengthChange: false,
  3839. processing: true,
  3840. serverSide:true,
  3841. responsive: true,
  3842. ajax: "{!! route('get-audit-data', ['type' => 'cashouts']) !!}",
  3843. columns: [
  3844. {
  3845. data:'created_at',
  3846. name:'created_at',
  3847. },
  3848. { data:'code',name:'code' },
  3849. {
  3850. data:'amount',
  3851. name:'amount',
  3852. render: function(data,type,row){
  3853. return '&#8369; '+numberWithCommas(data);
  3854. }
  3855. },
  3856. {data:'data.mop',name:'data'},
  3857. {
  3858. data:'status',
  3859. name:'status',
  3860. render: function(data,type,row){
  3861. // return row['picture'] == null && data != 'completed' ? 'incomplete' : data == 'completed' ? 'Approved and Completed' : 'Needs Approval'
  3862. if(data == 'rejected'){
  3863. return 'rejected'
  3864. }else{
  3865. if(row['picture'] == null && data != 'completed'){
  3866. return 'incomplete'
  3867. }else{
  3868. switch (data) {
  3869. case 'completed':
  3870. return 'Approved and Completed'
  3871. default:
  3872. return 'Needs Approval'
  3873. }
  3874. }
  3875. }
  3876. }
  3877. },
  3878. {
  3879. data:'process_by',
  3880. searchable:false,
  3881. render: function(data,type,row){
  3882. return data == null ? 'n/a' : data['name']
  3883. }
  3884. }
  3885. ]
  3886. });
  3887.  
  3888. audit_user_partner_deposits = $('#auditUserModal #audituser-table-partner-deposits').DataTable({
  3889. searching: false,
  3890. lengthChange: false,
  3891. processing: true,
  3892. serverSide:true,
  3893. responsive: true,
  3894. ajax: "{!! route('get-audit-data', ['type' => 'partner_deposits']) !!}",
  3895. columns: [
  3896. {
  3897. data:'created_at',
  3898. name:'created_at',
  3899. },
  3900. { data:'code',name:'code' },
  3901. { data:'partner.partner_name',name:'partner.partner_name' },
  3902. {
  3903. data:'amount',
  3904. name:'amount',
  3905. render: function(data,type,row){
  3906. return '&#8369; '+numberWithCommas(data);
  3907. }
  3908. },
  3909. {
  3910. data:'status',
  3911. name:'status',
  3912. render: function(data,type,row) {
  3913. if(row['picture'] == null && data < 1 ) {
  3914. return "Incomplete";
  3915. }
  3916. else{
  3917. switch(data){
  3918. case 1:
  3919. return "Approved"; break;
  3920. case 2:
  3921. return "Rejected"; break;
  3922. default:
  3923. return "Needs Approval";
  3924. }
  3925. }
  3926. }
  3927. }
  3928. ]
  3929. });
  3930.  
  3931. audit_user_partner_cashouts = $('#auditUserModal #audituser-table-partner-cashouts').DataTable({
  3932. searching: false,
  3933. lengthChange: false,
  3934. processing: true,
  3935. serverSide:true,
  3936. responsive: true,
  3937. ajax: "{!! route('get-audit-data', ['type' => 'partner_cashouts']) !!}",
  3938. columns: [
  3939. {
  3940. data:'created_at',
  3941. name:'created_at',
  3942. },
  3943. { data:'code',name:'code' },
  3944. { data:'partner.partner_name',name:'partner.partner_name' },
  3945. {
  3946. data:'amount',
  3947. name:'amount',
  3948. render: function(data,type,row){
  3949. return '&#8369; '+numberWithCommas(data);
  3950. }
  3951. },
  3952. {
  3953. data:'status',
  3954. name:'status',
  3955. render: function(data,type,row) {
  3956. if(row['picture'] == null && data < 1 ) {
  3957. return "Incomplete";
  3958. }
  3959. else{
  3960. switch(data){
  3961. case 1:
  3962. return "Approved"; break;
  3963. case 2:
  3964. return "Rejected"; break;
  3965. default:
  3966. return "Needs Approval";
  3967. }
  3968. }
  3969. }
  3970. }
  3971. ]
  3972. });
  3973.  
  3974. $('#bugs_table').on('click', '.view-bug', function(event) {
  3975. event.preventDefault();
  3976. var row = bugs_table.row($(this).closest('tr')).data();
  3977. var url = "{{url('/reported-bugs/showimage')}}/" + row['id'];
  3978. if (row['hasImage']) {
  3979. // var viewer = new Viewer(document.getElementById('receipt-'+row['id']), {url:'data-url'});
  3980. $('#viewReceipt').find('h5').html('Image')
  3981. $('#viewReceipt').find('.modal-body').html('<image class="form-control" style="height:100%" src="'+(url)+'"/>')
  3982. $('#viewReceipt').modal('show');
  3983. }else{
  3984. swal("No Image!", 'No image has been uploaded', "warning");
  3985.  
  3986. }
  3987. });
  3988.  
  3989. $('#bugs_table').on('click', '.text-wrap', function(event) {
  3990. event.preventDefault();
  3991. var row = bugs_table.row($(this).closest('tr')).data();
  3992. mainThread(row);
  3993. $('#bug_thread_modal').find('.modal-title').text('[#'+row.id+'] - ' + row.subject);
  3994. $('#bug_thread_modal').modal('show');
  3995. });
  3996.  
  3997. $('#bugs_table').on('click', '.bug-done-btn', function(event) {
  3998. event.preventDefault();
  3999. var row = bugs_table.row($(this).closest('tr')).data();
  4000. var url_image = row.user.avatar;
  4001. $('#bugPromoModal').find('h5').html('Mark as done promotion')
  4002. $('#bugPromoModal').find('input[name=id]').val(row.id);
  4003. $('#bugPromoModal').find('input[name=type]').val('bug');
  4004. $('#bugPromoModal').find('.user_image').html(
  4005. row.user.name + '<br/><img src="'+url_image+'" style="width: 110px"/>');
  4006. $('#bugPromoModal').modal('show');
  4007. });
  4008.  
  4009. $('#verification_table').on('click', '.view-verification', function(event){
  4010. event.preventDefault();
  4011. var row = verification_table.row($(this).closest('tr')).data();
  4012. var url = "{{url('/verification-request/showimage')}}/" + row['id'];
  4013. if(row['hasImage']){
  4014. $('#viewReceipt').find('h5').html('Image');
  4015. $('#viewReceipt').find('.modal-body').html('<image class="form-control" style="height:100%" src="'+(url)+'"/>')
  4016. $('#viewReceipt').modal('show');
  4017. }else{
  4018. swal("No Image!", 'No image has been uploaded',"warning");
  4019. }
  4020. });
  4021.  
  4022. // $('#verification_table').on('click', '.text-wrap', function(event){
  4023. // event.preventDefault();
  4024. // var row = verification_table.row($(this).closest('tr')).data();
  4025. // mainThread(row);
  4026. // })
  4027.  
  4028. $('#verification_table').on('click', '.verification-done-btn', function(event){
  4029. event.preventDefault();
  4030. var row = verification_table.row($(this).closest('tr')).data();
  4031. var url_image = row.user.avatar;
  4032. $('#verifyModal').find('h5').html("Mark as done")
  4033. $('#verifyModal').find('input[name=id]').val(row.id);
  4034. $('#verifyModal').find('input[name=type]').val('verification');
  4035. $('#verifyModal').find('.user_image').html(
  4036. row.user.name + '<br/><img src="'+url_image+'" style="width: 110px"/>');
  4037. $('#verifyModal').modal('show');
  4038. });
  4039.  
  4040. $('#promo_table').on('click', '.promo-done-btn', function(event) {
  4041. event.preventDefault();
  4042. var row = promo_table.row($(this).closest('tr')).data();
  4043. var url_image = row.user.avatar;
  4044. $('#bugPromoModal').find('h5').html('Mark as done promotion')
  4045. $('#bugPromoModal').find('input[name=id]').val(row.id);
  4046. $('#bugPromoModal').find('input[name=type]').val('promotion');
  4047. $('#bugPromoModal').find('.user_image').html(
  4048. row.user.name + '<br/><img src="'+url_image+'" style="width: 110px"/>');
  4049. $('#bugPromoModal').modal('show');
  4050. });
  4051.  
  4052. $('#bugpromo-save-btn').click(function() {
  4053. var $modal = $(this).closest('.modal');
  4054. var form = new FormData($("#bug_promo_form")[0]);
  4055. $.ajax({
  4056. url: "{{ route('generic-update-status') }}", //Server script to process data
  4057. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4058. type: 'POST',
  4059. success: function(data){
  4060. if(data.error)
  4061. printErrorMsg(data.error);
  4062. else {
  4063. $('#bug_promo_form')[0].reset();
  4064. $('#bug_promo_form .print-error-msg').hide();
  4065. $('#bugPromoModal').modal('hide');
  4066. swal("Success!", 'Status successfully updated', "success");
  4067. bugs_table.ajax.reload( null, false );
  4068. promo_table.ajax.reload( null, false );
  4069. rewards_table.ajax.reload( null, false );
  4070. }
  4071. },
  4072. data: form,
  4073. cache:false,
  4074. contentType: false,
  4075. processData: false,
  4076. });
  4077. });
  4078.  
  4079. $('#verification-save-btn').click(function() {
  4080. var $modal = $(this).closest('.modal');
  4081. var form = new FormData($("#verification_form")[0]);
  4082. $.ajax({
  4083. url: "{{ route('update-verification') }}", //Server script to process data
  4084. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4085. type: 'POST',
  4086. success: function(data){
  4087. if(data.error)
  4088. printErrorMsg(data.error);
  4089. else {
  4090. $('#verification_form')[0].reset();
  4091. $('#verification_form .print-error-msg').hide();
  4092. $('#verifyModal').modal('hide');
  4093. swal("Success!", 'Status successfully updated', "success");
  4094. bugs_table.ajax.reload( null, false );
  4095. promo_table.ajax.reload( null, false );
  4096. rewards_table.ajax.reload( null, false );
  4097. }
  4098. },
  4099. data: form,
  4100. cache:false,
  4101. contentType: false,
  4102. processData: false,
  4103. });
  4104. });
  4105.  
  4106. $('#bugPromoModal').on('hidden.bs.modal', function() {
  4107. $('#bug_promo_form')[0].reset();
  4108. $('#bug_promo_form .print-error-msg').hide();
  4109. });
  4110.  
  4111. $('#cashout_table').on('click', '.view-details', function(event) {
  4112. event.preventDefault();
  4113. $tr = $(this).closest('tr').hasClass('child') ?
  4114. $(this).closest('tr').prev() : $(this).closest('tr');
  4115. var cashout = cashout_table.row($tr).data();
  4116. var modal = $('#modal-details');
  4117. $(modal).find('.modal-body .dl-horizontal').empty();
  4118. var details
  4119. $.each(cashout.data, function(index, val) {
  4120. details = '<dt>'+index+'</dt>' +
  4121. '<dd>'+val+'</dd>'
  4122. $(modal).find('.modal-body .dl-horizontal').append(details);
  4123. });
  4124. $(modal).modal('show');
  4125. });
  4126.  
  4127. $('#deposits_table').on('click', '.discrepancy', function(event) {
  4128. event.preventDefault();
  4129. $tr = $(this).closest('tr').hasClass('child') ?
  4130. $(this).closest('tr').prev() : $(this).closest('tr');
  4131. var transaction = deposits_table.row($tr).data();
  4132. var form = $('#discrepancy_form')[0];
  4133. var note_id
  4134. var discrepancy_id
  4135. $('input[type="hidden"][name="user_id"]', form).remove();
  4136. $('input[type="hidden"][name="id"]', form).remove();
  4137. $('input[type="hidden"][name="approveWDiscrepancy"]', form).remove();
  4138. // $('input[type="hidden"][name="note_id"]', form).remove();
  4139. // $('input[type="hidden"][name="discrepancy_id"]', form).remove();
  4140. $('#discrepancy-amount').val('');
  4141. $('textarea#message').val('');
  4142. $("#provider").select2().val(null).trigger('change');
  4143. $image.fileinput('refresh');
  4144. $('#discrepancy_form').find('.message').removeClass('has-error');
  4145. $image.fileinput('destroy');
  4146.  
  4147. if ($image.data('fileinput')) {
  4148. return;
  4149. }
  4150. initPlugin();
  4151. if ($image.val()) {
  4152. $image.trigger('change');
  4153. }
  4154. // if (transaction.notes.length > 0) {
  4155. // $('textarea#message').val(transaction.notes[transaction.notes.length - 1].message );
  4156. // }else{
  4157. // $('textarea#message').val('');
  4158. // }
  4159. $('#modalDiscrepancy').find('#bc-code').text(transaction.code);
  4160. $('.add_rebate').hide()
  4161. $('#add_rebate').prop('checked', false)
  4162. discrepancy_table.clear().draw();
  4163. if (transaction.discrepancy.length > 0) {
  4164. discrepancy_table.rows.add(transaction.discrepancy).draw();
  4165. discrepancy_table.columns.adjust().draw();
  4166. // discrepancy_id = transaction.discrepancy[transaction.discrepancy.length - 1].id
  4167. // note_id = transaction.notes[transaction.notes.length - 1].id
  4168. // if (transaction.discrepancy[transaction.discrepancy.length - 1].amount != null) {
  4169.  
  4170. // $('#discrepancy-amount').val(transaction.discrepancy[transaction.discrepancy.length - 1].amount);
  4171. // }else{
  4172.  
  4173. // $('#discrepancy-amount').val('');
  4174. // }
  4175.  
  4176. // if (transaction.discrepancy[transaction.discrepancy.length - 1].mop != null) {
  4177. // $('#provider').select2().val(transaction.discrepancy[transaction.discrepancy.length - 1].mop).trigger('change');
  4178. // }else{
  4179. // $("#provider").select2().val(null).trigger('change');
  4180. // }
  4181. // if (transaction.discrepancy[transaction.discrepancy.length - 1].picture != null) {
  4182. // $image.fileinput('refresh', {
  4183. // overwriteInitial: true,
  4184. // initialPreview: [
  4185. // url+transaction.discrepancy[transaction.discrepancy.length - 1].picture.replace('/uploads',''),
  4186. // ],
  4187. // initialPreviewAsData: true, // identify if you are sending preview data only and not the raw markup
  4188. // initialPreviewFileType: 'image', // image is the default and can be overridden in config below
  4189. // initialPreviewConfig: [
  4190. // {caption: "receipt.jpg", size: 576237, width: "120px",},
  4191. // ],
  4192. // });
  4193.  
  4194. // }else{
  4195. // $image.fileinput('refresh');
  4196. // }
  4197. }
  4198. else{
  4199. $('.add_rebate').show()
  4200. // $image.fileinput('destroy');
  4201.  
  4202. // if ($image.data('fileinput')) {
  4203. // return;
  4204. // }
  4205. // initPlugin();
  4206. // if ($image.val()) {
  4207. // $image.trigger('change');
  4208. // }
  4209. // $("#provider").select2().val(null).trigger('change');
  4210. // $('#discrepancy-amount').val('');
  4211. }
  4212.  
  4213.  
  4214. // if ($('.file-preview-image').attr('src') != null) {
  4215.  
  4216. // }
  4217. $(form).append(
  4218. $('<input>')
  4219. .attr('type', 'hidden')
  4220. .attr('name', 'user_id')
  4221. .val(transaction['user'].id)
  4222. );
  4223. $(form).append(
  4224. $('<input>')
  4225. .attr('type', 'hidden')
  4226. .attr('name', 'id')
  4227. .val(transaction['id'])
  4228. );
  4229. if (transaction.picture == null) {
  4230. $(form).append(
  4231. $('<input>')
  4232. .attr('type', 'hidden')
  4233. .attr('name', 'approveWDiscrepancy')
  4234. .val(1)
  4235. );
  4236. }
  4237. // $(form).append(
  4238. // $('<input>')
  4239. // .attr('type', 'hidden')
  4240. // .attr('name', 'note_id')
  4241. // .val(note_id)
  4242. // );
  4243. // $(form).append(
  4244. // $('<input>')
  4245. // .attr('type', 'hidden')
  4246. // .attr('name', 'discrepancy_id')
  4247. // .val(discrepancy_id)
  4248. // );
  4249.  
  4250. $('#modalDiscrepancy').modal('show');
  4251. $('#discrepancy-amount').currencyFormat();
  4252. });
  4253.  
  4254. $('#cashout_table').on('click', '.btn-reject', function(event) {
  4255. event.preventDefault();
  4256. var div = $('#reject-modal');
  4257. var transaction = cashout_table.row($(this).closest('tr')).data();
  4258. div.find('textarea').val('')
  4259. div.find('.modal-title').html('Reject <span style="color:red"><b>'+transaction.code+'</b></span>')
  4260. div.find('.user').html('Name: '+transaction.user.name)
  4261. div.find('.code').html('Code: '+transaction.code)
  4262. div.find('.btn-primary').data('transaction_id',transaction.id)
  4263. div.modal('show')
  4264. });
  4265.  
  4266. $('#reject-modal').on('click', '.btn-reject', function(event) {
  4267. var $modal = $(this).closest('.modal');
  4268. var $this = $(this)
  4269. $this.prop('disabled', true);
  4270. $this.button('progress');
  4271. if( $modal.find('textarea').val() != ''){
  4272. $.ajax({
  4273. url: "{{ route('generic-update-status') }}", //Server script to process data
  4274. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4275. type: 'POST',
  4276. data: {admin_comment: $modal.find('textarea').val(),transaction_id:$this.data('transaction_id'),type:'transaction',status:'rejected'},
  4277. success: function(data){
  4278. if(data.success){
  4279. $modal.modal('hide');
  4280. swal("Success!", data.message, "success");
  4281. deposits_table.ajax.reload( null, false );
  4282. cashout_table.ajax.reload( null, false );
  4283. }
  4284. else {
  4285. swal("Oops!", 'Something went wrong', "danger");
  4286. }
  4287. $this.prop('disabled', false);
  4288. $this.button('reset');
  4289. },
  4290. });
  4291. }else{
  4292. $modal.find('textarea').parent().addClass('has-error');
  4293. $modal.find('textarea').parent().find('.error-label').text('Message is needed');
  4294. $this.prop('disabled', false);
  4295. $this.button('reset');
  4296. }
  4297. });
  4298.  
  4299.  
  4300.  
  4301. $('#deposits_table').on('click', '.btn-reject', function(event) {
  4302. event.preventDefault();
  4303. $tr = $(this).closest('tr').hasClass('child') ?
  4304. $(this).closest('tr').prev() : $(this).closest('tr');
  4305. var div = $('#reject-modal');
  4306. var transaction = deposits_table.row($tr).data();
  4307. div.find('textarea').val('')
  4308. div.find('.modal-title').html('Reject Deposit <span style="color:red"><b>'+transaction.code+'</b></span>')
  4309. div.find('.user').html('Name: '+transaction.user.name)
  4310. div.find('.code').html('Code: '+transaction.code)
  4311. div.find('.btn-primary').data('transaction_id',transaction.id)
  4312. div.modal('show')
  4313. });
  4314.  
  4315. $('#cashout_table').on('click', '.btn-reject', function(event) {
  4316. event.preventDefault();
  4317. var div = $('#reject-modal');
  4318. $tr = $(this).closest('tr').hasClass('child') ?
  4319. $(this).closest('tr').prev() : $(this).closest('tr');
  4320. var transaction = cashout_table.row($tr).data();
  4321. div.find('textarea').val('')
  4322. div.find('.modal-title').html('Reject <span style="color:red"><b>'+transaction.code+'</b></span>')
  4323. div.find('.user').html('Name: '+transaction.user.name)
  4324. div.find('.code').html('Code: '+transaction.code)
  4325. div.find('.btn-primary').data('transaction_id',transaction.id)
  4326. div.modal('show')
  4327. });
  4328.  
  4329. $('#reject-modal').on('click', '.btn-reject', function(event) {
  4330. var $modal = $(this).closest('.modal');
  4331. var $this = $(this)
  4332. $this.prop('disabled', true);
  4333. $this.button('progress');
  4334. if( $modal.find('textarea').val() != ''){
  4335. $.ajax({
  4336. url: '/admin/transaction/'+$this.data('transaction_id')+'/reject',
  4337. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4338. type: 'POST',
  4339. data: {admin_comment: $modal.find('textarea').val()},
  4340. success: function(data){
  4341. if(data.success){
  4342. $modal.modal('hide');
  4343. swal("Success!", data.message, "success");
  4344. deposits_table.ajax.reload( null, false );
  4345. cashout_table.ajax.reload( null, false );
  4346. }
  4347. else {
  4348. $modal.modal('hide');
  4349. swal("Oops!", data.message, "error");
  4350. }
  4351. $this.prop('disabled', false);
  4352. $this.button('reset');
  4353. },
  4354. });
  4355. }else{
  4356. $modal.find('textarea').parent().addClass('has-error');
  4357. $modal.find('textarea').parent().find('.error-label').text('Message is needed');
  4358. $this.prop('disabled', false);
  4359. $this.button('reset');
  4360. }
  4361. });
  4362.  
  4363.  
  4364.  
  4365. $('#deposits_table').on('click', '.delete', function(event) {
  4366. event.preventDefault();
  4367. var row = deposits_table.row($(this).closest('tr')).data();
  4368.  
  4369. swal({
  4370. title: "Are you sure?",
  4371. text: "Transaction <span style='font-weight:bold;color: #820804'>"+row.code+"</span> will be deleted",
  4372. type: "warning",
  4373. showCancelButton: true,
  4374. confirmButtonClass: "btn-danger",
  4375. confirmButtonText: "Yes, please continue!",
  4376. showLoaderOnConfirm: true,
  4377. closeOnConfirm: false,
  4378. html: true
  4379. },
  4380. function(){
  4381.  
  4382. $.ajax({
  4383. url: '{{ route('delete_transaction') }}',
  4384. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4385. type: 'DELETE',
  4386. data: { id: row['id']},
  4387. success: function(data) {
  4388. if (data.success) {
  4389. swal("Deleted!", 'Transaction successfully deleted', "success");
  4390. deposits_table.ajax.reload( null, false );
  4391. }else{
  4392. swal("Oops!", 'Something went wrong!', "error");
  4393. }
  4394. },
  4395. fail: function(xhr, status, error) {
  4396. console.log(error);
  4397. }
  4398. });
  4399. });
  4400.  
  4401.  
  4402. });
  4403.  
  4404. $('#deposits_table').on('click', '.view-receipt', function(event) {
  4405. event.preventDefault();
  4406. $tr = $(this).closest('tr').hasClass('child') ?
  4407. $(this).closest('tr').prev() : $(this).closest('tr');
  4408. var row = deposits_table.row($tr).data();
  4409. if (row['picture']) {
  4410. // var viewer = new Viewer(document.getElementById('receipt-'+row['id']), {url:'data-url'});
  4411. $('#viewReceipt').find('h5').html('Receipt')
  4412. $('#viewReceipt').find('.modal-body').html('<image class="form-control" style="height:100%" src="'+(url+row['picture']).replace('/uploads','')+'"/>')
  4413. $('#viewReceipt').modal('show');
  4414. }else{
  4415. swal("No Receipt!", 'No receipt has been uploaded', "warning");
  4416.  
  4417. }
  4418. });
  4419.  
  4420. $('#payout_table').on('click', '.view-receipt', function(event) {
  4421. event.preventDefault();
  4422. $tr = $(this).closest('tr').hasClass('child') ?
  4423. $(this).closest('tr').prev() : $(this).closest('tr');
  4424. var row = payout_table.row($tr).data();
  4425. if (row['receipt']) {
  4426. // var viewer = new Viewer(document.getElementById('receipt-'+row['id']), {url:'data-url'});
  4427. $('#viewReceipt').find('h5').html('Receipt')
  4428. $('#viewReceipt').find('.modal-body').html('<image class="form-control" style="height:100%" src="'+(url+row['receipt']).replace('/uploads','')+'"/>')
  4429. $('#viewReceipt').modal('show');
  4430. }else{
  4431. swal("No Receipt!", 'No receipt has been uploaded', "warning");
  4432.  
  4433. }
  4434. });
  4435.  
  4436. $('#discrepancy_table').on('click', '.view-receipt', function(event) {
  4437. event.preventDefault();
  4438. $tr = $(this).closest('tr').hasClass('child') ?
  4439. $(this).closest('tr').prev() : $(this).closest('tr');
  4440. var row = discrepancy_table.row($tr).data();
  4441. if (row['picture']) {
  4442. // var viewer = new Viewer(document.getElementById('receipt-'+row['id']), {url:'data-url'});
  4443. $('#viewReceipt').find('h5').html('Receipt')
  4444. $('#viewReceipt').find('.modal-body').html('<image class="form-control" style="height:100%" src="'+(url+row['picture']).replace('/uploads','')+'"/>')
  4445. $('#viewReceipt').modal('show');
  4446. }else{
  4447. swal("No Receipt!", 'No receipt has been uploaded', "warning");
  4448.  
  4449. }
  4450. });
  4451.  
  4452. $('#cashout_table').on('click', '.view-receipt', function(event) {
  4453. event.preventDefault();
  4454. $tr = $(this).closest('tr').hasClass('child') ?
  4455. $(this).closest('tr').prev() : $(this).closest('tr');
  4456. var row = cashout_table.row($tr).data();
  4457. if (row['picture']) {
  4458. // var viewer = new Viewer(document.getElementById('receipt-'+row['id']), {url:'data-url'});
  4459. $('#viewReceipt').find('.modal-body').html('<image class="form-control" style="height:100%" src="'+(url+row['picture']).replace('/uploads','')+'"/>')
  4460. $('#viewReceipt').modal('show');
  4461. }else{
  4462. swal("No Receipt!", 'No receipt has been uploaded', "warning");
  4463.  
  4464. }
  4465. });
  4466.  
  4467. $('.submit_discrepancy').click(function(event) {
  4468. var $this = $(this);
  4469. $this.prop('disabled', true);
  4470. $this.button('progress');
  4471. var form = $('#discrepancy_form')[0];
  4472. $('#disc-image').on('filebatchselected');
  4473. var message = $('textarea#disc-message').val();
  4474. var amount = $('input[name="amount"]').val();
  4475. var mop = $('[name="provider"]', form).val();
  4476. var user_id = $('input[type="hidden"][name="user_id"]', form).val();
  4477. var id = $('input[type="hidden"][name="id"]', form).val();
  4478. var note_id = $('input[type="hidden"][name="note_id"]', form).val();
  4479. var discrepancy_id = $('input[type="hidden"][name="discrepancy_id"]', form).val();
  4480. var photo = $('#modalDiscrepancy').find('.file-preview-image').attr('src');
  4481. var _url = $('input[type="hidden"][name="approveWDiscrepancy"]', form).val() ? '{{ route('approveWDiscrepancy') }}' : '{{ route('adminExtraAction') }}';
  4482. var add_rebate = $('#add_rebate').is(':checked') ? 1 : 0;
  4483.  
  4484. $.ajax({
  4485. url: _url,
  4486. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4487. type: 'POST',
  4488. data: {photo:photo,message:message,amount:amount,mop:mop,user_id:user_id,id:id,note_id:note_id,discrepancy_id:discrepancy_id,add_rebate: add_rebate},
  4489. success: function(data) {
  4490.  
  4491. if (data.errors) {
  4492. $.each( data.errors, function( key, value ) {
  4493. if (key == 'message') {
  4494. $('#discrepancy_form').find('.message').addClass('has-error');
  4495. $('#discrepancy_form').find('textarea#message').parent().find('.error-label').text(value[0]);
  4496. }
  4497. if (key == 'photo') {
  4498. $('#discrepancy_form').find('.image').addClass('has-error');
  4499. }
  4500. });
  4501. }else{
  4502. if ($('#modalDiscrepancy').find('.file-preview-image').attr('src') != null) {
  4503. $('#modalDiscrepancy').find('.kv-upload-progress').removeClass('hide').css('display', 'block').find('.progress-bar').css('width', '100%').text('Done')
  4504. $('#modalDiscrepancy').find('.file-upload-indicator').css({
  4505. backgroundColor: '#dff0d8',
  4506. borderColor: '#d6e9c6'
  4507. });
  4508. $('#modalDiscrepancy').find('.file-upload-indicator').find('i').removeClass('fa-hand-o-down').removeClass('text-warning').addClass('fa-check-circle').addClass('text-success')
  4509.  
  4510. }
  4511. $('#disc-image').fileinput('clear')
  4512. $('textarea#disc-message').val('')
  4513. $('#modalDiscrepancy').modal('hide');
  4514. swal("Added!", 'Discrepancy successfully added', "success");
  4515. deposits_table.ajax.reload( null, false );
  4516.  
  4517. }
  4518. $this.prop('disabled', false);
  4519. $this.button('reset');
  4520. },
  4521. fail: function(xhr, status, error) {
  4522. console.log(error);
  4523. $('#disc-image').fileinput('clear')
  4524. }
  4525. });
  4526.  
  4527. });
  4528.  
  4529. $('#cashout_table').on('click', '.mark-as-processed', function(event) {
  4530. event.preventDefault();
  4531. $tr = $(this).closest('tr').hasClass('child') ?
  4532. $(this).closest('tr').prev() : $(this).closest('tr');
  4533. var row = cashout_table.row($tr).data();
  4534. var form = $('#mark_as_processed_form')[0];
  4535. $_image.fileinput('refresh');
  4536. $('textarea#message').val('');
  4537. $('#waive-fee').attr('checked',false);
  4538. $('#mark_as_processed_form').find('.message').removeClass('has-error');
  4539. $('#modal-mark-as-processed').find('.submit_mark_as_processed').data('transaction',row)
  4540. // $(form).append(
  4541. // $('<input>')
  4542. // .attr('type', 'hidden')
  4543. // .attr('name', 'id')
  4544. // .val(row['id'])
  4545. // );
  4546. // $(form).append(
  4547. // $('<input>')
  4548. // .attr('type', 'hidden')
  4549. // .attr('name', 'user_id')
  4550. // .val(row['user'].id)
  4551. // );
  4552. $('#modal-mark-as-processed').modal('show');
  4553.  
  4554.  
  4555. });
  4556.  
  4557. $('.submit_mark_as_processed').click(function(event) {
  4558. var $this = $(this);
  4559. var transaction = $this.data('transaction')
  4560. $this.prop('disabled', true);
  4561. $this.button('progress');
  4562. // $('#image').on('filebatchselected');
  4563. var message = $('#mark_as_processed_form textarea#message').val();
  4564. var user_id = transaction.user_id;
  4565. var id = transaction.id
  4566. var photo = $('#modal-mark-as-processed').find('.file-preview-image').attr('src');
  4567. var waive_fee = $('#waive-fee').is(':checked') ? 1 : 0;
  4568.  
  4569. if (photo == null) {
  4570. $('#mark_as_processed_form').find('.photo').addClass('has-error');
  4571. $('#mark_as_processed_form').find('.photo').find('.error-label').text('Image is required');
  4572. $this.prop('disabled', false);
  4573. $this.button('reset');
  4574.  
  4575. }else{
  4576.  
  4577. $.ajax({
  4578. url: '{{ route('adminExtraAction') }}',
  4579. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4580. type: 'POST',
  4581. data: {photo:photo,user_id:user_id,id:id,message:message, waive_fee: waive_fee},
  4582. success: function(data) {
  4583.  
  4584. if (data.errors) {
  4585. $.each( data.errors, function( key, value ) {
  4586. $('#mark_as_processed_form').find('.message').addClass('has-error');
  4587. $('#mark_as_processed_form').find('textarea#message').parent().find('.error-label').text(value[0]);
  4588. });
  4589. }else{
  4590. if ($('#modal-mark-as-processed').find('.file-preview-image').attr('src') != null) {
  4591. $('#modal-mark-as-processed').find('.kv-upload-progress').removeClass('hide').css('display', 'block').find('.progress-bar').css('width', '100%').text('Done')
  4592. $('#modal-mark-as-processed').find('.file-upload-indicator').css({
  4593. backgroundColor: '#dff0d8',
  4594. borderColor: '#d6e9c6'
  4595. });
  4596. $('#modal-mark-as-processed').find('.file-upload-indicator').find('i').removeClass('fa-hand-o-down').removeClass('text-warning').addClass('fa-check-circle').addClass('text-success')
  4597.  
  4598. }
  4599. $('#modal-mark-as-processed').modal('hide');
  4600. $('#modal-mark-as-processed').find('#image').fileinput('clear')
  4601. swal("Success!", 'Cashout successfully proccessed', "success");
  4602. $this.removeData('transaction')
  4603. cashout_table.ajax.reload( null, false );
  4604.  
  4605. }
  4606. $this.prop('disabled', false);
  4607. $this.button('reset');
  4608. },
  4609. fail: function(xhr, status, error) {
  4610. console.log(error);
  4611. $('#modal-mark-as-processed').find('#image').fileinput('clear')
  4612. }
  4613. });
  4614.  
  4615. }
  4616.  
  4617. });
  4618.  
  4619. $('#deposits_table').on('click', '.view-details', function(event) {
  4620. event.preventDefault();
  4621. $tr = $(this).closest('tr').hasClass('child') ?
  4622. $(this).closest('tr').prev() : $(this).closest('tr');
  4623. var transaction = deposits_table.row($tr).data();
  4624. $('#view-details').find('.modal-body').find('#deposit-steps').empty();
  4625. renderStepsManual(transaction.data.mop.split('-'),transaction)
  4626. $('#view-details').modal('show');
  4627. });
  4628.  
  4629. $('#users_table').on('click', '.voucher-code', function(event) {
  4630. event.preventDefault();
  4631. var user = users_table.row($(this).closest('tr')).data();
  4632. var form = $('#voucher-form')[0];
  4633. $('#voucher-form').removeClass('.has-error');
  4634. $('#voucher-form').find('.form-group').each(function(index, el) {
  4635. $(el).removeClass('has-error')
  4636. });
  4637. $('input[type="hidden"][name="user_id"]', form).remove();
  4638. $('#modal-view-code').find('.modal-body').find('#voucher_code').val('')
  4639. $('#modal-view-code').find('.modal-body').find('#voucher_percent').val('')
  4640. $('#modal-view-code').find('#user-name').text(user.name);
  4641. if (user.voucher_code) {
  4642. $('#modal-view-code').find('.modal-body').find('#voucher_code').val(user.voucher_code)
  4643. $('#modal-view-code').find('.modal-body').find('#voucher_percent').val(user.voucher_percent)
  4644. }
  4645. $(form).append(
  4646. $('<input>')
  4647. .attr('type', 'hidden')
  4648. .attr('name', 'user_id')
  4649. .val(user.id)
  4650. );
  4651. $('#modal-view-code').modal('show');
  4652. });
  4653.  
  4654. $('#users_table').on('click', '.show-payout-modal', function(event) {
  4655. event.preventDefault();
  4656. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  4657. let user = users_table.row($tr).data();
  4658. let total_commission = user.unpaid_commissions.filter((el) => el.transaction != null).reduce((sum, current) => { return sum + parseFloat(current.amount);}, 0)
  4659. var $modal = $('#payout_modal')
  4660. $modal.find('.modal-title').html('Payout for '+user.name)
  4661. $modal.find('#payout-amount').val(total_commission)
  4662. $modal.find('.user_payout_btn').data('user',user)
  4663. $modal.modal('show');
  4664. });
  4665.  
  4666. $('.user_payout_btn').click(function(event) {
  4667. var $this = $(this);
  4668. $this.prop('disabled', true);
  4669. $this.button('progress');
  4670. let user = $this.data('user')
  4671. let amount = user.unpaid_commissions.filter((el) => el.transaction != null).reduce((sum, current) => { return sum + parseFloat(current.amount);}, 0)
  4672. let message = $('#payout_modal textarea').val();
  4673. let user_id = user.id;
  4674. let photo = $('#payout_modal').find('.file-preview-image').attr('src');
  4675.  
  4676. if (photo == null) {
  4677. $('#mark_as_processed_form').find('.photo').addClass('has-error');
  4678. $('#mark_as_processed_form').find('.photo').find('.error-label').text('Image is required');
  4679. $this.prop('disabled', false);
  4680. $this.button('reset');
  4681.  
  4682. }else{
  4683.  
  4684. $.ajax({
  4685. url: '{{ route('payout.user') }}',
  4686. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4687. type: 'POST',
  4688. data: {photo:photo,user_id:user_id,message:message, amount: amount},
  4689. success: function(data) {
  4690.  
  4691. if (data.errors) {
  4692. $.each( data.errors, function( key, value ) {
  4693. $('#payout_modal').find('.message').addClass('has-error');
  4694. $('#payout_modal').find('textarea').parent().find('.error-label').text(value[0]);
  4695. });
  4696. }else{
  4697. if ($('#payout_modal').find('.file-preview-image').attr('src') != null) {
  4698. $('#payout_modal').find('.kv-upload-progress').removeClass('hide').css('display', 'block').find('.progress-bar').css('width', '100%').text('Done')
  4699. $('#payout_modal').find('.file-upload-indicator').css({
  4700. backgroundColor: '#dff0d8',
  4701. borderColor: '#d6e9c6'
  4702. });
  4703. $('#payout_modal').find('.file-upload-indicator').find('i').removeClass('fa-hand-o-down').removeClass('text-warning').addClass('fa-check-circle').addClass('text-success')
  4704.  
  4705. }
  4706. $('#payout_modal').modal('hide');
  4707. $('#payout_modal').find('#payout-image-2').fileinput('clear')
  4708. swal("Success!", data.message, "success");
  4709. $this.removeData('user')
  4710. users_table.ajax.reload( null, false );
  4711.  
  4712. }
  4713. $this.prop('disabled', false);
  4714. $this.button('reset');
  4715. },
  4716. fail: function(xhr, status, error) {
  4717. console.log(error);
  4718. $('#payout_modal').find('#payout-image-2').fileinput('clear')
  4719. }
  4720. });
  4721.  
  4722. }
  4723.  
  4724. });
  4725.  
  4726. $('#users_table').on('click', '.set-badges', function(event) {
  4727. event.preventDefault();
  4728. var user = users_table.row($(this).closest('tr')).data();
  4729. $('#setBadgesModal').find('.modal-title').html('Set Badges for <span style="color: #820804">' + user.name + '</span>');
  4730. $('#setBadgesModal').find('input[name=user_id]').val(user.id);
  4731. $.each(user.badges, function() {
  4732. $('#setBadgesModal select[name="badges[]"]')
  4733. .find('option[value="'+this.id+'"]')
  4734. .prop('selected',true);
  4735. });
  4736. $('#badges-selection').multiselect('refresh');
  4737. $('#setBadgesModal').modal('show');
  4738. });
  4739.  
  4740. $('#users_table').on('click', '.set-credits', function(event) {
  4741. event.preventDefault();
  4742. var user = users_table.row($(this).closest('tr')).data();
  4743. $('#setCreditsModal').find('.modal-title').html('Update Credits for <span style="color: #820804">' + user.name + '</span>');
  4744. $('#setCreditsModal').find('input[name=user_id]').val(user.id);
  4745. $('#setCreditsModal').find('input[name=credits]').val(user.credits);
  4746. $('#setCreditsModal').modal('show');
  4747. });
  4748.  
  4749. $('.submit_voucher').click(function(event) {
  4750. var $this = $(this);
  4751. var form = $('#voucher-form')[0];
  4752. $this.prop('disabled', true);
  4753. $this.button('progress');
  4754. $.ajax({
  4755. url: '{{ route('add_update_voucher') }}',
  4756. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4757. type: 'POST',
  4758. data: $(form).serialize(),
  4759. success: function(data) {
  4760.  
  4761. if (data.errors) {
  4762. $.each( data.errors, function( key, value ) {
  4763. $('#voucher-form').find(':input[name='+ key +']').parent().addClass('has-error');
  4764. $('#voucher-form').find(':input[name='+ key +']').parent().find('.error-label').text(value[0]);
  4765. });
  4766. }else{
  4767. $('#modal-view-code').modal('hide');
  4768. swal("Success!", 'Voucher code successfully added', "success");
  4769. users_table.ajax.reload( null, false );
  4770.  
  4771. }
  4772. $this.prop('disabled', false);
  4773. $this.button('reset');
  4774. },
  4775. fail: function(xhr, status, error) {
  4776. console.log(error);
  4777. }
  4778. });
  4779.  
  4780. });
  4781.  
  4782. $('#users_table').on('click', '.reset-password', function(event) {
  4783. event.preventDefault();
  4784. var user = users_table.row($(this).closest('tr')).data();
  4785. var form = $('#password-form')[0];
  4786. $('#password-form').removeClass('.has-error');
  4787. $('#password-form').find('.form-group').each(function(index, el) {
  4788. $(el).removeClass('has-error')
  4789. });
  4790. $('input[type="hidden"][name="user_id"]', form).remove();
  4791. $('#modal-resetpassword').find('.modal-body').find('#password').val('')
  4792. $('#modal-resetpassword').find('#user-name').text(user.name);
  4793. $(form).append(
  4794. $('<input>')
  4795. .attr('type', 'hidden')
  4796. .attr('name', 'user_id')
  4797. .val(user.id)
  4798. );
  4799. $('#modal-resetpassword').modal('show');
  4800. });
  4801.  
  4802. $('.submit_password').click(function(event) {
  4803. var $this = $(this);
  4804. var form = $('#password-form')[0];
  4805. $this.prop('disabled', true);
  4806. $this.button('progress');
  4807. $.ajax({
  4808. url: '{{ route('reset_password') }}',
  4809. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4810. type: 'POST',
  4811. data: $(form).serialize(),
  4812. success: function(data) {
  4813.  
  4814. if (data.errors) {
  4815. $.each( data.errors, function( key, value ) {
  4816. $('#password-form').find(':input[name='+ key +']').parent().addClass('has-error');
  4817. $('#password-form').find(':input[name='+ key +']').parent().find('.error-label').text(value[0]);
  4818. });
  4819. }else{
  4820. $('#modal-resetpassword').modal('hide');
  4821. swal("Success!", 'Password successfully changed', "success");
  4822. users_table.ajax.reload( null, false );
  4823.  
  4824. }
  4825. $this.prop('disabled', false);
  4826. $this.button('reset');
  4827. },
  4828. fail: function(xhr, status, error) {
  4829. console.log(error);
  4830. }
  4831. });
  4832.  
  4833. });
  4834.  
  4835. $('#createBadgeBtn').click(function() {
  4836. var form = new FormData($("#badgesForm")[0]);
  4837. $.ajax({
  4838. url: "{{ route('setbadges') }}", //Server script to process data
  4839. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4840. type: 'POST',
  4841. success: function(data){
  4842. if(data.error)
  4843. printErrorMsg(data.error);
  4844. else {
  4845. $('#badgesForm')[0].reset();
  4846. $('#badgesForm .print-error-msg').hide();
  4847. $('#createBadgesModal').modal('hide');
  4848. badges_table.ajax.reload();
  4849. }
  4850. },
  4851. data: form,
  4852. cache:false,
  4853. contentType: false,
  4854. processData: false,
  4855. });
  4856. });
  4857.  
  4858. $(document).on('click', '#badges_table .editBadge', function() {
  4859. var badge = badges_table.row($(this).closest('tr')).data();
  4860. $('#createBadgesModal .modal-title').text('Edit current Badge');
  4861. $('#badgesForm').find(':input[name=badge_id]').val(badge.id);
  4862. $('#badgesForm').find(':input[name=name]').val(badge.name);
  4863. $('#badgesForm').find(':input[name=description]').val(badge.description);
  4864. $('#badgesForm').find(':input[name=credits]').val(badge.credits);
  4865. $('#createBadgesModal').modal('show');
  4866. $('#createBadgeBtn').removeClass('btn-primary').addClass('btn-warning');
  4867. $('#createBadgeBtn').button('edit');
  4868. });
  4869.  
  4870. $(document).on('click', '#badges_table .delBadge', function() {
  4871. var badgeid = $(this).data('badgeid');
  4872. swal({
  4873. title: "Delete this badge?",
  4874. text: "The selected badge will be deleted and cannot be retreived!",
  4875. type: "warning",
  4876. showCancelButton: true,
  4877. confirmButtonClass: "btn-danger",
  4878. confirmButtonText: "Yes, delete it!",
  4879. cancelButtonText: "No",
  4880. closeOnConfirm: false,
  4881. showLoaderOnConfirm: true
  4882. },
  4883. function(){
  4884. $.ajax({
  4885. url:'{{route("json_badge_delete")}}',
  4886. type:'DELETE',
  4887. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4888. data: {badge_id: badgeid},
  4889. success:function(data){
  4890. if(data.error) {
  4891. swal("Error!", data.error, "error");
  4892. } else {
  4893. swal("Badge deleted!", "The badge has now been deleted.", "success");
  4894. badges_table.ajax.reload();
  4895. }
  4896. }
  4897. });
  4898. });
  4899. });
  4900.  
  4901. $('#users_table').on('click', '.add-rewards', function(event) {
  4902. var user = users_table.row($(this).closest('tr')).data();
  4903. var url_image = user.avatar;
  4904. $('#addRewardsModal').find('input[name=user_id]').val(user.id);
  4905. $('#addRewardsModal').find('.user_image').html(
  4906. user.name + '<br/><img src="'+url_image+'" style="width: 110px"/>');
  4907. $('#addRewardsModal').modal('show');
  4908. });
  4909.  
  4910. $('#setBadgeBtn').click(function() {
  4911. var $modal = $(this).closest('.modal');
  4912. var userid = $modal.find('input[name=user_id]').val();
  4913. var selected_badges = $modal.find('select[name="badges[]"]').val();
  4914. $.ajax({
  4915. url:'{{route("assignbadges")}}',
  4916. type:'POST',
  4917. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4918. data: {user_id: userid, badges: selected_badges},
  4919. success:function(data){
  4920. if(data.success) {
  4921. users_table.ajax.reload(null, false);
  4922. $modal.modal('hide');
  4923. }
  4924. }
  4925. });
  4926. });
  4927.  
  4928. $('#setCreditBtn').click(function() {
  4929. var $modal = $(this).closest('.modal');
  4930. var userid = $modal.find('input[name=user_id]').val();
  4931. var credits = $modal.find('input[name=credits]').val();
  4932. $.ajax({
  4933. url:'{{route("set_user_credits")}}',
  4934. type:'POST',
  4935. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4936. data: {user_id: userid, credits: credits},
  4937. success:function(data){
  4938. if(data.errors) {
  4939. $.each( data.errors, function( key, value ) {
  4940. $('#setCreditsForm').find(':input[name='+ key +']').parent().addClass('has-error');
  4941. $('#setCreditsForm').find(':input[name='+ key +']').parent().find('.error-label').text(value[0]);
  4942. });
  4943. } else {
  4944. users_table.ajax.reload(null, false);
  4945. $modal.modal('hide');
  4946. }
  4947. }
  4948. });
  4949. });
  4950.  
  4951. $('#addRewardBtn').click(function() {
  4952. var $modal = $(this).closest('.modal');
  4953. var form = new FormData($("#add_rewards_form")[0]);
  4954. $.ajax({
  4955. url: "{{ route('set_user_rewards') }}", //Server script to process data
  4956. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  4957. type: 'POST',
  4958. success: function(data){
  4959. if(data.error)
  4960. printErrorMsg(data.error);
  4961. else {
  4962. $('#add_rewards_form')[0].reset();
  4963. $('#add_rewards_form .print-error-msg').hide();
  4964. $('#addRewardsModal').modal('hide');
  4965. users_table.ajax.reload();
  4966. rewards_table.ajax.reload();
  4967. }
  4968. },
  4969. data: form,
  4970. cache:false,
  4971. contentType: false,
  4972. processData: false,
  4973. });
  4974. });
  4975.  
  4976. $('#setBadgesModal').on('hidden.bs.modal', function() {
  4977. $(this).find('.modal-title').html('Set Badges');
  4978. $('#setBadgesForm')[0].reset();
  4979. $('#badges-selection').multiselect('refresh');
  4980. });
  4981.  
  4982. $('#addRewardsModal').on('hidden.bs.modal', function() {
  4983. $('#add_rewards_form')[0].reset();
  4984. $('#add_rewards_form .print-error-msg').hide();
  4985. });
  4986.  
  4987. $('#createBadgesModal').on('hidden.bs.modal', function() {
  4988. $(this).find('.modal-title').html('Add Badges');
  4989. $('#badgesForm')[0].reset();
  4990. $('#badgesForm .print-error-msg').hide();
  4991. $('#createBadgeBtn').button('reset');
  4992. $('#createBadgeBtn').removeClass('btn-warning').addClass('btn-primary');
  4993. });
  4994.  
  4995. $('#setCreditsModal').on('hidden.bs.modal', function() {
  4996. $(this).find('.modal-title').html('Set Credits');
  4997. $('#setCreditsForm')[0].reset();
  4998. $('#setCreditsForm :input').closest('.has-error').removeClass('has-error');
  4999. });
  5000.  
  5001. function renderStepsManual(mop,transaction)
  5002. {
  5003. switch (mop[1]) {
  5004. case 'payment':
  5005. var container = $("#coinsph-steps-template").html();
  5006. var data = {}
  5007. data.code = transaction.code;
  5008. $('#deposit-steps').append(Mustache.render(container, data));
  5009. break;
  5010. case 'deposit':
  5011. var data = {}, bank=mop[0], bopen, bclose, mopen, mclose, accountnumber;
  5012. var container = $("#manual-steps-template").html();
  5013. switch (mop[0]) {
  5014. case 'BDO':
  5015. bopen = '9AM'
  5016. bclose = '3PM'
  5017. mopen = '10AM'
  5018. mclose = '7PM'
  5019. accountnumber = "{{$settings['bdo-account-number']}}"
  5020. accountname = "{{$settings['bdo-account-name']}}"
  5021. break;
  5022. case 'BPI':
  5023. bopen = '9AM'
  5024. bclose = '3PM'
  5025. mopen = '10AM'
  5026. mclose = '6PM'
  5027. accountnumber = "{{$settings['bpi-account-number']}}"
  5028. accountname = "{{$settings['bpi-account-name']}}"
  5029. break;
  5030. case 'Metrobank':
  5031. bopen = '9AM'
  5032. bclose = '3PM'
  5033. mopen = '10AM'
  5034. mclose = '6PM'
  5035. accountnumber = "{{$settings['metro-account-number']}}"
  5036. accountname = "{{$settings['metro-account-name']}}"
  5037. break;
  5038. }
  5039. data.bank = bank;
  5040. data.bopen = bopen;
  5041. data.bclose = bclose;
  5042. data.mopen = mopen;
  5043. data.mclose = mclose;
  5044. data.accountnumber = accountnumber;
  5045. data.accountname = accountname;
  5046. data.amount = numberWithCommas(transaction.amount);
  5047. data.code = transaction.code;
  5048. $('#view-details').find('.modal-body').find('#deposit-steps').append(Mustache.render(container, data));
  5049. break;
  5050. case 'remittance':
  5051. var data = {}
  5052. data.amount = numberWithCommas(transaction.amount);
  5053. data.code = transaction.code;
  5054. var container = $("#"+mop[0]+"-remittance").html();
  5055. $('#view-details').find('.modal-body').find('#deposit-steps').append(Mustache.render(container, data));
  5056. break;
  5057. case 'online':
  5058. var container = $("#"+mop[0]+"-desktop").html();
  5059. var data = {}
  5060. data.code = transaction.code;
  5061. $('#view-details').find('.modal-body').find('#deposit-steps').append(Mustache.render(container, data));
  5062. break;
  5063. }
  5064.  
  5065. }
  5066.  
  5067. // The first thread - from a user
  5068. function mainThread(ticket){
  5069. // console.log(ticket);
  5070. var main_frag = document.createDocumentFragment(), thread_box = document.createElement('div'), thread_img_square = document.createElement('div'),
  5071. thread_icon = document.createElement('div'), thread_img = document.createElement('img'), thread_info_panel = document.createElement('div'),
  5072. thread_user_name = document.createElement('p'), thread_span = document.createElement('span'), thread_content = document.createElement('div');
  5073.  
  5074. $(thread_img).attr('src', "{{asset('images/default_avatar.png')}}").css('width', '100%');
  5075. $(thread_icon).addClass('thread_icon').append(thread_img);
  5076. $(thread_img_square).addClass('thread_img_square').append(thread_icon);
  5077. $(thread_user_name).addClass('thread_user_name').text(ticket.user.name);
  5078. $(thread_span).text(moment(ticket.created_at).format('LLLL')+' | '+moment(ticket.created_at).fromNow());
  5079. $(thread_info_panel).addClass('thread_info_panel').append(thread_user_name).append(thread_span);
  5080. $(thread_content).addClass('thread_content').text(ticket.comment);
  5081. $(thread_box).addClass('thread_box').append(thread_img_square).append(thread_info_panel).append(thread_content);
  5082. main_frag.append(thread_box);
  5083. $('.ticket_thread_column').html('').append(main_frag);
  5084. if(ticket.thread.length > 0){
  5085. replyThreads(ticket.thread, ticket.user.id);
  5086. }
  5087. }
  5088.  
  5089. function replyThreads(thread, user){
  5090. // console.log(thread)
  5091. var main_frag = document.createDocumentFragment();
  5092. for(var i = 0; i < thread.length; i++){
  5093. var thread_box = document.createElement('div'), thread_img_square = document.createElement('div'), thread_icon = document.createElement('div'),
  5094. thread_img = document.createElement('img'), thread_info_panel = document.createElement('div'), thread_user_name = document.createElement('p'),
  5095. thread_span = document.createElement('span'), thread_content = document.createElement('div'), class_name = 'thread_box_owner reply_box_thread';
  5096. if(thread[i].commented_by.id == user){
  5097. class_name = 'thread_box reply_box_thread';
  5098. }
  5099. $(thread_img).attr('src', "{{asset('images/default_avatar.png')}}").css('width', '100%');
  5100. $(thread_icon).addClass('thread_icon').append(thread_img);
  5101. $(thread_img_square).addClass('thread_img_square').append(thread_icon);
  5102. $(thread_user_name).addClass('thread_user_name').text(thread[i].commented_by.name);
  5103. $(thread_span).text(moment(thread[i].created_at).format('LLLL')+' | '+moment(thread[i].created_at).fromNow());
  5104. $(thread_info_panel).addClass('thread_info_panel').append(thread_user_name).append(thread_span);
  5105. $(thread_content).addClass('thread_content').text(thread[i].comment);
  5106. $(thread_box).addClass(class_name).append(thread_img_square).append(thread_info_panel).append(thread_content);
  5107. main_frag.append(thread_box);
  5108. }
  5109. $('.ticket_thread_column').append(main_frag);
  5110. }
  5111.  
  5112. /**
  5113. * Change role for a user
  5114. */
  5115. $(document).on('click', '#users_table .dropdown_display_button', function() {
  5116. var user = users_table.row($(this).closest('tr')).data();
  5117. var select = document.createElement('select');
  5118. select.innerHTML = "<option value='1'>admin</option>"
  5119. +"<option value='2'>agent</option>"
  5120. +"<option value='3'>beta-tester</option>"
  5121. +"<option value='4'>member</option>"
  5122. +"<option value='5'>match-manager</option>"
  5123. ;
  5124. var thisCell = this.parentNode;
  5125. var currtype = $(this.parentNode).find('.value').data('type');
  5126. var id = user.id;
  5127. var cancelled = false;
  5128. var hint = "<span class='cell_edit_hint'>Press escape to cancel selection.</span>";
  5129.  
  5130. this.parentNode.appendChild(select);
  5131. $(this.parentNode).append(hint);
  5132. $(this.parentNode).find('.value').hide();
  5133. $(select).val($(this.parentNode).find('.value').data('type'));
  5134. $(select).focus();
  5135.  
  5136. $(select).on('keyup',function(evt) {
  5137. if (evt.keyCode == 27) {
  5138. cancelled = true;
  5139. this.blur();
  5140. }
  5141. });
  5142.  
  5143. $(select).change(function(){});
  5144.  
  5145. $(select).focusout(function() {
  5146. thisCell.removeChild(this);
  5147. $(thisCell).find('.value').show();
  5148. $(thisCell).find('.cell_edit_hint').remove();
  5149. if(!cancelled && currtype != this.value && this.value != '') {
  5150. var type, role_id = this.value;
  5151. switch (this.value) {
  5152. case '1':
  5153. type = 'admin'
  5154. break;
  5155. case '2':
  5156. type = 'agent'
  5157. break;
  5158. case '3':
  5159. type = 'beta-tester'
  5160. break;
  5161. case '4':
  5162. type = 'member'
  5163. break;
  5164. case '5':
  5165. type = 'match-manager';
  5166. break;
  5167. default:
  5168. // statements_def
  5169. break;
  5170. }
  5171. swal({
  5172. title: "Are you sure?",
  5173. text: "Add "+type+" role to "+user.name,
  5174. type: "warning",
  5175. showCancelButton: true,
  5176. confirmButtonClass: "btn-danger",
  5177. confirmButtonText: "Yes, please continue!",
  5178. showLoaderOnConfirm: true,
  5179. closeOnConfirm: false,
  5180. html:true
  5181. },
  5182. function(){
  5183.  
  5184. $.ajax({
  5185. url: '{{ route("add_role") }}',
  5186. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  5187. type: 'POST',
  5188. data: {id: id, type: role_id },
  5189. success: function(obj) {
  5190. // $(thisCell).find('.value').text(this.value);
  5191. // $(thisCell).find('.value').data('id', id);
  5192. if(obj.success){
  5193. swal("Success!", 'User role successfully added', "success");
  5194. }else{
  5195. swal("Oops!", 'Role already exist for the user', "error");
  5196. }
  5197. users_table.ajax.reload( null, false );
  5198. }
  5199. });
  5200. });
  5201. }
  5202. });
  5203. });
  5204.  
  5205. $(document).on('click', '#users_table .audit-user', function() {
  5206. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  5207. var user = users_table.row($tr).data();
  5208. showAuditUser(user);
  5209. });
  5210.  
  5211. $(document).on('click', '#cashout_table .audit-user', function() {
  5212. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  5213. var data = cashout_table.row($tr).data();
  5214. showAuditUser(data.user);
  5215. });
  5216.  
  5217. })
  5218.  
  5219. function showAuditUser(user) {
  5220. $.each($('#auditUserModal .panel-heading span.clickable'), function() {
  5221. if(!$(this).hasClass('panel-collapsed')) {
  5222. $(this).parents('.panel').find('.panel-body').slideUp();
  5223. $(this).addClass('panel-collapsed');
  5224. $(this).find('i').removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down');
  5225. }
  5226. });
  5227. $.ajax({
  5228. url: '{{ route("user-audit-info") }}',
  5229. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  5230. type: 'POST',
  5231. data: { userid: user.id },
  5232. success: function(data) {
  5233. if (data.success) {
  5234. var total_deposits = parseFloat(data.ez_deposit) + parseFloat(data.partner_deposit);
  5235. var total_cashouts = parseFloat(data.ez_cashout) + parseFloat(data.partner_cashout);
  5236. var total_a = total_cashouts + parseFloat(data.curr_bets) + parseFloat(data.user_credit);
  5237. var total_b = total_deposits + parseFloat(data.profit_loss);
  5238. $('#auditUserModal .username').html(user.name + ' (Ez credit: ' + numberWithCommas(parseFloat(data.user_credit).toFixed(2)) + ')');
  5239. $('#auditUserModal .curr_credits').html(numberWithCommas(parseFloat(data.user_credit).toFixed(2)));
  5240. $('#auditUserModal .curr_bets').html(numberWithCommas(data.curr_bets.toFixed(2)));
  5241. $('#auditUserModal .profit_loss').html(numberWithCommas(data.profit_loss.toFixed(2)));
  5242. $('#auditUserModal .total_deposit').html(numberWithCommas(total_deposits.toFixed(2)));
  5243. $('#auditUserModal .total_cashout').html(numberWithCommas(total_cashouts.toFixed(2)));
  5244. $('#auditUserModal .total_fa').html(numberWithCommas(total_a.toFixed(2)));
  5245. $('#auditUserModal .total_fb').html(numberWithCommas(total_b.toFixed(2)));
  5246. }
  5247. },
  5248. fail: function(xhr, status, error) {
  5249. console.log(error);
  5250. }
  5251. });
  5252. audit_user_bets.ajax.url("{!! route('get-audit-data', ['type' => 'bets']) !!}&userid="+user.id).load();
  5253. audit_user_deposits.ajax.url("{!! route('get-audit-data', ['type' => 'deposits']) !!}&userid="+user.id).load();
  5254. audit_user_cashouts.ajax.url("{!! route('get-audit-data', ['type' => 'cashouts']) !!}&userid="+user.id).load();
  5255. audit_user_partner_deposits.ajax.url("{!! route('get-audit-data', ['type' => 'partner_deposits']) !!}&userid="+user.id).load();
  5256. audit_user_partner_cashouts.ajax.url("{!! route('get-audit-data', ['type' => 'partner_cashouts']) !!}&userid="+user.id).load();
  5257. }
  5258.  
  5259. function printErrorMsg (msg) {
  5260. $(".print-error-msg").find("ul").html('');
  5261. $(".print-error-msg").css('display','block');
  5262. $.each( msg, function( key, value ) {
  5263. $(".print-error-msg").find("ul").append('<li>'+value+'</li>');
  5264. });
  5265. }
  5266.  
  5267. if (document.location.toString().match('#')) {
  5268. $('.nav-tabs a[href="#' + url.split('#')[1] + '"]').tab('show');
  5269. }
  5270.  
  5271. $('.nav-tabs a').on('shown.bs.tab', function (e) {
  5272. switch(e.currentTarget.hash) {
  5273. case '#bettings':
  5274. bettings_table.ajax.reload();
  5275. break;
  5276. case '#cashout':
  5277. cashout_table.ajax.reload();
  5278. break;
  5279. case '#deposits':
  5280. deposits_table.ajax.reload();
  5281. break;
  5282. case '#referals':
  5283. referrals_table.ajax.reload();
  5284. break;
  5285. case '#payouts':
  5286. payout_table.ajax.reload();
  5287. break;
  5288. case '#rewards':
  5289. rewards_table.ajax.reload();
  5290. break;
  5291. case '#bugs':
  5292. bugs_table.ajax.reload();
  5293. break;
  5294. case '#promos':
  5295. promo_table.ajax.reload();
  5296. break;
  5297. case '#badges':
  5298. badges_table.ajax.reload();
  5299. break;
  5300. case '#commissions':
  5301. commissions_table.ajax.reload();
  5302. case '#usermanagement':
  5303. users_table.ajax.reload();
  5304. break;
  5305. case '#verify':
  5306. verification_table.ajax.reload();
  5307. break;
  5308. }
  5309. })
  5310. </script>
  5311.  
  5312. <script>
  5313. $(document).ready(function(){
  5314. $('#user').click(function(){
  5315. $(this).addClass('admin_header_active');
  5316. $('#partner').removeClass('admin_header_active');
  5317. $('#market').removeClass('admin_header_active');
  5318. $('#settings').removeClass('admin_header_active');
  5319.  
  5320. $('#partner-administration').hide();
  5321. $('#market-place').hide();
  5322. $('#site-settings').hide();
  5323. $('#user-administration').fadeIn();
  5324. });
  5325. $('#partner').click(function(){
  5326. $(this).addClass('admin_header_active');
  5327. $('#user').removeClass('admin_header_active');
  5328. $('#market').removeClass('admin_header_active');
  5329. $('#settings').removeClass('admin_header_active');
  5330.  
  5331. $('#user-administration').hide();
  5332. $('#market-place').hide();
  5333. $('#site-settings').hide();
  5334. $('#partner-administration').fadeIn();
  5335. });
  5336. $('#market').click(function(){
  5337. $(this).addClass('admin_header_active');
  5338. $('#user').removeClass('admin_header_active');
  5339. $('#partner').removeClass('admin_header_active');
  5340. $('#settings').removeClass('admin_header_active');
  5341.  
  5342. $('#user-administration').hide();
  5343. $('#partner-administration').hide();
  5344. $('#site-settings').hide();
  5345. $('#market-place').fadeIn();
  5346. });
  5347. $('#settings').click(function(){
  5348. $(this).addClass('admin_header_active');
  5349. $('#user').removeClass('admin_header_active');
  5350. $('#partner').removeClass('admin_header_active');
  5351. $('#market').removeClass('admin_header_active');
  5352.  
  5353. $('#user-administration').hide();
  5354. $('#partner-administration').hide();
  5355. $('#market-place').hide();
  5356. $('#site-settings').fadeIn();
  5357. });
  5358.  
  5359. $(document).on('click', '#save_settings_btn', function() {
  5360. var form = new FormData($("#site_settings_form")[0]);
  5361. $btn = $(this);
  5362. $btn.button('progress');
  5363. $.ajax({
  5364. url: "{{ route('set-site-settings') }}", //Server script to process data
  5365. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  5366. type: 'POST',
  5367. success: function(data){
  5368. $btn.button('reset');
  5369. if (data.errors) {
  5370. $.each( data.errors, function( key, value ) {
  5371. $.each( data.errors, function( key, value ) {
  5372. $('#site_settings_form').find(':input[name='+ key +']').parent().addClass('has-error');
  5373. $('#site_settings_form').find(':input[name='+ key +']').parent().find('.error-label').text(value[0]);
  5374. });
  5375. });
  5376. swal("Error!", 'Please fill-in required fields!', "error");
  5377. } else
  5378. swal("Success", 'Successfully set site settings!', "success");
  5379. console.log(data);
  5380. },
  5381. data: form,
  5382. cache:false,
  5383. contentType: false,
  5384. processData: false,
  5385. });
  5386. });
  5387.  
  5388. // Data Tables
  5389. partner_user_deposit_table = $('#partner_user_deposit_table').DataTable({
  5390. processing: true,
  5391. serverSide:true,
  5392. responsive: true,
  5393. ajax: "{!! route('dash_partner_users_transactions',['type' => 'deposit', 'trade_type' => 'partner-user']) !!}",
  5394. order: [[ 4, "desc" ]],
  5395. columns: [
  5396. {
  5397. data: 'code',
  5398. name: 'code'
  5399. },
  5400. {
  5401. data: 'user_id',
  5402. name: 'user_id',
  5403. },
  5404. {
  5405. data: 'partner_transactions.name',
  5406. name: 'partner_transactions.name',
  5407. },
  5408. {
  5409. data: 'partner.partner_name',
  5410. name: 'partner.partner_name',
  5411. },
  5412. {
  5413. data: 'created_at',
  5414. name: 'created_at',
  5415. render: function(data,type,row){
  5416. return moment(data).format('llll')+'<br>'+moment(data).fromNow()
  5417. }
  5418. },
  5419. {
  5420. data: 'amount',
  5421. name: 'amount',
  5422. render: function(data,type,row){
  5423. var net = parseFloat(data);
  5424. return '&#8369; '+numberWithCommas( net.toFixed(2) );
  5425. }
  5426. },
  5427. {
  5428. data: 'data',
  5429. name: 'data',
  5430. render: function(data,type,row){
  5431. var mop = data ? JSON.parse(data) : '';
  5432. return mop.mop;
  5433. }
  5434. },
  5435. {
  5436. data: 'status',
  5437. name: 'status',
  5438. render: function ( data, type, row ) {
  5439. if(row['picture'] == null && data < 1 ){
  5440. return "Incomplete";
  5441. }
  5442. else{
  5443. switch(data){
  5444. case 1:
  5445. return "Approved"; break;
  5446. case 2:
  5447. return "Rejected"; break;
  5448. default:
  5449. return "Needs Approval";
  5450. }
  5451. }
  5452. }
  5453. },
  5454. {
  5455. render: function(data,type,row){
  5456. return '<a href="#" class="btn btn-default view-details"><i class="fa fa-info" aria-hidden="true"></i></a>';
  5457. }
  5458. },
  5459. {
  5460. data: 'picture',
  5461. searchable:false,
  5462. render: function(data,type,row){
  5463. return data ? '<a href="#" class="btn btn-default view-receipt"><i class="fa fa-picture-o" aria-hidden="true"></i></a>' : 'N/A';
  5464. }
  5465. },
  5466. {
  5467. data: 'process_by.name',
  5468. name: 'process_by.name',
  5469. render: function(data,type,row){
  5470. return data != null ? data : 'n/a';
  5471. }
  5472. },
  5473. {
  5474. render: function ( data, type, row ) {
  5475. if(row['partner_comment'] != null && data > 1){
  5476. return row['partner_comment'];
  5477. }
  5478. else{
  5479. switch(row['status']){
  5480. case 0:
  5481. return '<button type="button" class="btn btn-danger btn-sm decline-deposit" data-toggle="modal">Reject</button>';
  5482. default:
  5483. return '<button type="button" class="btn btn-success btn-sm" disabled>Done</button>';
  5484. }
  5485. }
  5486. }
  5487. }
  5488. ]
  5489. })
  5490.  
  5491. partner_user_cashout_table = $('#partner_user_cashout_table').DataTable({
  5492. processing: true,
  5493. serverSide:true,
  5494. responsive: true,
  5495. ajax: "{!! route('dash_partner_users_transactions',['type' => 'cashout', 'trade_type' => 'partner-user']) !!}",
  5496. order: [[ 4, "desc" ]],
  5497. columns: [
  5498. {
  5499. data: 'code',
  5500. name: 'code'
  5501. },
  5502. {
  5503. data: 'user_id',
  5504. name: 'user_id',
  5505. },
  5506. {
  5507. data: 'partner_transactions.name',
  5508. name: 'partner_transactions.name',
  5509. },
  5510. {
  5511. data: 'partner.partner_name',
  5512. name: 'partner.partner_name',
  5513. },
  5514. {
  5515. data: 'created_at',
  5516. name: 'created_at',
  5517. render: function(data,type,row){
  5518. return moment(data).format('llll')+'<br>'+moment(data).fromNow()
  5519. }
  5520. },
  5521. {
  5522. data: 'amount',
  5523. name: 'amount',
  5524. render: function(data,type,row){
  5525. var net = parseFloat(data);
  5526. return '&#8369; '+numberWithCommas( net.toFixed(2) );
  5527. }
  5528. },
  5529. {
  5530. data: 'partner_earnings',
  5531. name: 'partner_earnings',
  5532. render: function(data,type,row){
  5533. var net = (parseFloat(row['amount']) - (parseFloat(row['amount']) * 0.05)),
  5534. percentage = parseFloat(row['amount']) * 0.025;
  5535. return '&#8369; '+ (percentage.toFixed(2));
  5536. }
  5537. },
  5538. {
  5539. data: 'status',
  5540. name: 'status',
  5541. render: function ( data, type, row ) {
  5542. if(row['picture'] == null && data < 1 ){
  5543. return "Incomplete";
  5544. }
  5545. else{
  5546. switch(data){
  5547. case 1:
  5548. return "Approved"; break;
  5549. case 2:
  5550. return "Rejected"; break;
  5551. default:
  5552. return "Needs Approval";
  5553. }
  5554. }
  5555. }
  5556. },
  5557. {
  5558. render: function(data,type,row){
  5559. return '<a href="#" class="btn btn-default view-bug"><i class="fa fa-info" aria-hidden="true"></i></a>';
  5560. }
  5561. },
  5562. {
  5563. data: 'picture',
  5564. searchable:false,
  5565. render: function(data,type,row){
  5566. return data ? '<a href="#" class="btn btn-default view-receipt"><i class="fa fa-picture-o" aria-hidden="true"></i></a>' : 'N/A';
  5567. }
  5568. },
  5569. {
  5570. data: 'process_by.name',
  5571. name: 'process_by.name',
  5572. render: function(data,type,row){
  5573. return data != null ? data : 'n/a';
  5574. }
  5575. },
  5576. {
  5577. render: function ( data, type, row ) {
  5578. if(row['partner_comment'] != null && data > 1){
  5579. return row['partner_comment'];
  5580. }
  5581. else{
  5582. switch(row['status']){
  5583. case 0:
  5584. return '<button type="button" class="btn btn-danger btn-sm decline-cashout" data-toggle="modal">Reject</button>';
  5585. default:
  5586. return '<button type="button" class="btn btn-success btn-sm" disabled>Done</button>';
  5587. }
  5588. }
  5589. }
  5590. }
  5591. ]
  5592. })
  5593.  
  5594. partner_admin_transactions_table = $('#partner_admin_transactions_table').DataTable({
  5595. processing: true,
  5596. serverSide:true,
  5597. responsive: true,
  5598. ajax: "{!! route('dash_partner_admin_transactions',['trade_type' => 'partner-admin']) !!}",
  5599. order: [[ 2, "desc" ]],
  5600. createdRow: function ( row, data, index ) {
  5601. var transaction = data;
  5602. if (transaction.discrepancy.length > 0) {
  5603. $('td', row).eq(5).addClass('highlight');
  5604. }
  5605. },
  5606. columns: [
  5607. {
  5608. data: 'code',
  5609. name: 'code'
  5610. },
  5611. {
  5612. data: 'type',
  5613. name: 'type',
  5614. render: function(data,type,row){
  5615. return data == 'deposit' ? 'Buy Credits' : 'Sell Credits';
  5616. }
  5617. },
  5618. {
  5619. data: 'created_at',
  5620. name: 'created_at',
  5621. render: function(data,type,row){
  5622. return moment(data).format('llll')+'<br>'+moment(data).fromNow()
  5623. }
  5624. },
  5625. {
  5626. data: 'partner.partner_name',
  5627. name: 'partner.partner_name',
  5628. },
  5629. {
  5630. data: 'partner_transactions.name',
  5631. name: 'partner_transactions.name',
  5632. },
  5633. {
  5634. data: 'amount',
  5635. name: 'amount',
  5636. render: function(data,type,row){
  5637. return '&#8369; '+numberWithCommas(data);
  5638. }
  5639. },
  5640. {
  5641. data: 'data',
  5642. name: 'data',
  5643. render: function(data,type,row){
  5644. var type = JSON.parse(data)
  5645. return type.mop;
  5646. }
  5647. },
  5648. {
  5649. data: 'status',
  5650. name: 'status',
  5651. render: function ( data, type, row ) {
  5652. if(row['picture'] == null && data < 1 ){
  5653. return "Incomplete";
  5654. }
  5655. else{
  5656. switch(data){
  5657. case 1:
  5658. return "Approved"; break;
  5659. case 2:
  5660. return "Rejected"; break;
  5661. default:
  5662. return "Needs Approval";
  5663. }
  5664. }
  5665. }
  5666. },
  5667. {
  5668. data: 'data',
  5669. name: 'data',
  5670. render: function(data,type,row){
  5671. return '<a href="#" class="btn btn-default view-details"><i class="fa fa-info" aria-hidden="true"></i></a>';
  5672. }
  5673. },
  5674. {
  5675. data:'picture',
  5676. searchable:false,
  5677. render: function(data,type,row){
  5678. return data != null ? '<div><a href="#" class="btn btn-default view-receipt"><i class="fa fa-picture-o" aria-hidden="true"></i></a></div>' : 'N/A'
  5679. }
  5680. },
  5681. {
  5682. data: 'process_by.name',
  5683. name: 'process_by.name',
  5684. render: function(data,type,row){
  5685. return data != null ? data : 'N/A';
  5686. }
  5687. },
  5688. {
  5689. data: 'status',
  5690. render: function ( data, type, row ) {
  5691. if(row['partner_comment'] != null && data > 1){
  5692. return row['partner_comment'];
  5693. }
  5694. else{
  5695. if(row['type'] == 'deposit'){
  5696. if (row['picture'] == null && data != 1) {
  5697. return '<a href="#" data-status="rejected" class="btn btn-danger btn-sm btn-reject">Reject</a> <a href="#" data-status="discrepancy" class="btn btn-warning btn-sm btn-edit discrepancy">Approve w/ discrepancy</a>'
  5698. }else{
  5699. if (data == 1) {
  5700. return '<a href="#" data-status="discrepancy" class="btn btn-success btn-sm btn-edit discrepancy">Update w/ discrepancy</a>'
  5701. }else{
  5702. return '<a href="#" data-status="rejected" class="btn btn-danger btn-sm btn-reject">Reject</a><a href="#" data-status="deleted" class="btn btn-primary btn-sm btn-edit approve">Check and approve</a>'
  5703. }
  5704. }
  5705. }
  5706. else{
  5707. if (data == 1) {
  5708. return '<a href="#" data-status="discrepancy" class="btn btn-success btn-sm btn-edit" disabled>Process Done</a>'
  5709. }else{
  5710. return '<a href="#" data-status="rejected" class="btn btn-danger btn-sm btn-reject">Reject</a><a href="#" data-status="deleted" class="btn btn-primary btn-sm btn-edit approve">Mark as Processed</a>'
  5711. }
  5712. }
  5713. }
  5714. }
  5715. }
  5716. ],
  5717. drawCallback: function( settings ) {
  5718. var api = this.api();
  5719. var pending_tr = api.rows().data();
  5720. var number = 0;
  5721. if(pending_tr.length > 0){
  5722. for(var i = 0; i < pending_tr.length; i++){
  5723. if(pending_tr[i].status == 0){
  5724. number += 1;
  5725. if(number > 0)
  5726. $('#partner_buy').attr('data-count', number);
  5727. else
  5728. $('#partner_buy').removeAttr('data-count');
  5729. }
  5730. }
  5731. }
  5732. else{
  5733. $('#partner_buy').removeAttr('data-count');
  5734. }
  5735. }
  5736. })
  5737.  
  5738. partner_payout_table = $('#partner_payout_table').DataTable({
  5739. processing: true,
  5740. serverSide:true,
  5741. responsive: true,
  5742. ajax: "{!! route('get_partner_payouts') !!}",
  5743. order: [[ 3, "desc" ]],
  5744. columns: [
  5745. {
  5746. data: 'code',
  5747. name: 'code'
  5748. },
  5749. {
  5750. data: 'partner.partner_name',
  5751. name: 'partner.partner_name',
  5752. },
  5753. {
  5754. data: 'partner.user_owner.name',
  5755. name: 'partner.user_owner.name',
  5756. },
  5757. {
  5758. data: 'created_at',
  5759. name: 'created_at',
  5760. render: function(data,type,row){
  5761. return moment(data).format('llll')+'<br>'+moment(data).fromNow()
  5762. }
  5763. },
  5764. {
  5765. data: 'earnings',
  5766. name: 'earnings',
  5767. render: function(data,type,row){
  5768. var net = parseFloat(data);
  5769. return '&#8369; '+numberWithCommas( net.toFixed(2) );
  5770. }
  5771. },
  5772. {
  5773. render: function(data,type,row){
  5774. return '<a href="#" class="btn btn-default view-bug"><i class="fa fa-info" aria-hidden="true"></i></a>';
  5775. }
  5776. },
  5777. {
  5778. data: 'receipt',
  5779. searchable:false,
  5780. render: function(data,type,row){
  5781. return data ? '<a href="#" class="btn btn-default view-receipt"><i class="fa fa-picture-o" aria-hidden="true"></i></a>' : 'N/A';
  5782. }
  5783. },
  5784. {
  5785. data: 'message',
  5786. name: 'message',
  5787. },
  5788. {
  5789. data: 'process_by.name',
  5790. name: 'process_by.name',
  5791. }
  5792. ]
  5793. })
  5794.  
  5795. partner_approval_table = $('#partner_approval_table').DataTable({
  5796. processing: true,
  5797. serverSide:true,
  5798. responsive: true,
  5799. ajax: "{!! route('partners', ['verified' => 0]) !!}",
  5800. order: [[ 0, "desc" ]],
  5801. columns: [
  5802. {
  5803. data: 'id',
  5804. name: 'id'
  5805. },
  5806. {
  5807. data: 'partner_name',
  5808. name: 'partner_name',
  5809. },
  5810. {
  5811. data: 'user_owner.name',
  5812. name: 'user_owner.name',
  5813. },
  5814. {
  5815. data: 'mobile_number',
  5816. name: 'mobile_number',
  5817. },
  5818. {
  5819. data: 'landline_number',
  5820. name: 'landline_number',
  5821. render: function(data,type,row){
  5822. return data != null ? data : 'No Contact Number';
  5823. }
  5824. },
  5825. {
  5826. render: function(data,type,row){
  5827. var bpi = (row['bpi_account'] == null && row['bpi_account_name'] == null) ? false : true;
  5828. var bdo = (row['bdo_account'] == null && row['bdo_account_name'] == null) ? false : true;
  5829. if(row['partner_name'] == null && row['mobile_number'] == null && row['landline_number'] == null && row['contact_person'] == null &&
  5830. row['email'] == null && !bpi && !bpo && row['facebook_link'] == null && row['address'] == null && row['province_id'] == null){
  5831. return "Pending Partner Details";
  5832. }
  5833. else{
  5834. return "Pending Approval";
  5835. }
  5836. }
  5837. },
  5838. {
  5839. render: function(data,type,row){
  5840. return '<a href="#" class="btn btn-default view-payout-info"><i class="fa fa-info" aria-hidden="true"></i></a>';
  5841. }
  5842. },
  5843. {
  5844. render: function(data,type,row){
  5845. return '<a href="#" class="btn btn-default view-partner-info"><i class="fa fa-info" aria-hidden="true"></i></a>';
  5846. }
  5847. },
  5848. {
  5849. data: 'process_by.name',
  5850. name: 'process_by.name',
  5851. render: function(data,type,row){
  5852. return data != null ? data : 'n/a';
  5853. }
  5854. },
  5855. {
  5856. render: function ( data, type, row ) {
  5857. switch(row['verified']){
  5858. case 1:
  5859. return '<button type="button" class="btn btn-success btn-xs" data-toggle="modal" disabled>Done</button>';
  5860. default:
  5861. return '<button type="button" class="btn btn-success btn-xs verify-partner" >Approve</button>';
  5862. }
  5863. }
  5864. }
  5865. ]
  5866. })
  5867.  
  5868. partner_table = $('#partner_table').DataTable({
  5869. processing: true,
  5870. serverSide:true,
  5871. responsive: true,
  5872. ajax: "{!! route('partners', ['verified' => 1]) !!}",
  5873. order: [[ 0, "asc" ]],
  5874. columns: [
  5875. {
  5876. data: 'id',
  5877. name: 'id'
  5878. },
  5879. {
  5880. data: 'partner_name',
  5881. name: 'partner_name',
  5882. },
  5883. {
  5884. data: 'user_owner.name',
  5885. name: 'user_owner.name',
  5886. },
  5887. {
  5888. data: 'partner_credits',
  5889. name: 'partner_credits',
  5890. render: function(data,type,row){
  5891. var net = data ? parseFloat(data) : 0.00;
  5892. return '&#8369; '+numberWithCommas( net.toFixed(2) );
  5893. }
  5894. },
  5895. {
  5896. data: 'partner_earnings',
  5897. name: 'partner_earnings',
  5898. render: function(data,type,row){
  5899. var net = data ? parseFloat(data) : 0.00;
  5900. return '&#8369; ' + (net.toFixed(2)) + ' <button type="button" class="btn btn-primary btn-xs payout-btn" data-toggle="modal" data-target="#partner_payout_modal">Payout</button>';
  5901. }
  5902. },
  5903. {
  5904. data: 'mobile_number',
  5905. name: 'mobile_number',
  5906. },
  5907. {
  5908. data: 'landline_number',
  5909. name: 'landline_number',
  5910. render: function(data,type,row){
  5911. return data != null ? data : 'N/A';
  5912. }
  5913. },
  5914. {
  5915. data: 'bdo_account',
  5916. name: 'bdo_account',
  5917. render: function(data,type,row){
  5918. return '<a href="#" class="btn btn-default view-payout-info"><i class="fa fa-info" aria-hidden="true"></i></a>';
  5919. }
  5920. },
  5921. {
  5922. render: function(data,type,row){
  5923. return '<a href="#" class="btn btn-default view-partner-info"><i class="fa fa-info" aria-hidden="true"></i></a>';
  5924. }
  5925. },
  5926. {
  5927. data: 'process_by.name',
  5928. name: 'process_by.name',
  5929. render: function(data,type,row){
  5930. return data != null ? data : 'n/a';
  5931. }
  5932. },
  5933. {
  5934. render: function ( data, type, row ) {
  5935. switch(row['active']){
  5936. case 1:
  5937. return '<button type="button" class="btn btn-danger btn-sm deactivate-partner">Deactivate</button>';
  5938. default:
  5939. return '<button type="button" class="btn btn-success btn-sm activate-partner">Activate</button>';
  5940. }
  5941. }
  5942. }
  5943. ]
  5944. })
  5945.  
  5946. partner_discrepancy_table = $('#partner_discrepancy_table').DataTable({
  5947. paging: false,
  5948. info: false,
  5949. searching: false,
  5950. ordering: false,
  5951. destroy: true,
  5952. responsive: true,
  5953. columns :[
  5954. {
  5955. data:'created_at',
  5956. render: function(data,type,row){
  5957. return moment(data).format('llll')+'<br>'+moment(data).fromNow()
  5958. }
  5959. },
  5960. {
  5961. data:'amount',
  5962. render: function(data,type,row){
  5963. return data ? data : 'n/a'
  5964. }
  5965. },
  5966. {
  5967. data:'picture',
  5968. searchable:false,
  5969. render: function(data,type,row){
  5970. return data ? '<a href="#" class="btn btn-default view-receipt"><i class="fa fa-picture-o" aria-hidden="true"></i></a>' : 'n/a'
  5971. }
  5972. },
  5973. {data: 'mop'},
  5974. {data: 'message'},
  5975. {data: 'process_by.name'},
  5976.  
  5977. ]
  5978. });
  5979.  
  5980. $('#partner_payout_table').on('click', '.view-bug', function(event) {
  5981. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  5982. var row = partner_payout_table.row($tr).data();
  5983. });
  5984.  
  5985. $('#partner_approval_table').on('click', '.verify-partner', function(event) {
  5986. event.preventDefault();
  5987. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  5988. var row = partner_approval_table.row($tr).data();
  5989. swal({
  5990. title: "Are you sure?",
  5991. text: "The <span style='font-weight:bold;color: #820804'>"+row.partner_name+"</span> can start his/her transactions with customers after being verified.",
  5992. type: "warning",
  5993. showCancelButton: true,
  5994. confirmButtonClass: "btn-danger",
  5995. confirmButtonText: "Yes, please continue!",
  5996. showLoaderOnConfirm: true,
  5997. closeOnConfirm: false,
  5998. html:true
  5999. },
  6000. function(){
  6001.  
  6002. $.ajax({
  6003. url: '{{ route("partner_status") }}',
  6004. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  6005. type: 'POST',
  6006. data: { id: row['id'],type: 'verify' },
  6007. success: function(data) {
  6008. if (data.success) {
  6009. swal({
  6010. title: "Approved!",
  6011. text: "Partner <span style='font-weight:bold;color: #820804'>"+row.partner_name+"</span> is successfully verified",
  6012. type: "success",
  6013. html: true
  6014. });
  6015. partner_approval_table.ajax.reload( null, false );
  6016. partner_table.ajax.reload( null, false );
  6017. }else{
  6018. swal("Oops!", 'Something went wrong!', "error");
  6019. }
  6020. },
  6021. fail: function(xhr, status, error) {
  6022. console.log(error);
  6023. }
  6024. });
  6025. });
  6026. });
  6027.  
  6028. $('#partner_table').on('click', '.activate-partner', function(event) {
  6029. event.preventDefault();
  6030. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6031. var row = partner_table.row($tr).data();
  6032. swal({
  6033. title: "Are you sure?",
  6034. text: "Partner <span style='font-weight:bold;color: #820804'>"+row.partner_name+"</span> can transact with his/her customers again",
  6035. type: "warning",
  6036. showCancelButton: true,
  6037. confirmButtonClass: "btn-success",
  6038. confirmButtonText: "Yes, please continue!",
  6039. showLoaderOnConfirm: true,
  6040. closeOnConfirm: false,
  6041. html:true
  6042. },
  6043. function(){
  6044.  
  6045. $.ajax({
  6046. url: '{{ route("partner_status") }}',
  6047. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  6048. type: 'POST',
  6049. data: { id: row['id'],type: 'activate' },
  6050. success: function(data) {
  6051. if (data.success) {
  6052. swal({
  6053. title: "Activated!",
  6054. text: "Partner <span style='font-weight:bold;color: #820804'>"+row.partner_name+"</span> has been activated again",
  6055. type: "success",
  6056. html: true
  6057. });
  6058. partner_table.ajax.reload( null, false );
  6059. }else{
  6060. swal("Oops!", 'Something went wrong!', "error");
  6061. }
  6062. },
  6063. fail: function(xhr, status, error) {
  6064. console.log(error);
  6065. }
  6066. });
  6067. });
  6068. });
  6069.  
  6070. $('#partner_table').on('click', '.deactivate-partner', function(event) {
  6071. event.preventDefault();
  6072. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6073. var row = partner_table.row($tr).data();
  6074. swal({
  6075. title: "Are you sure?",
  6076. text: "Partner <span style='font-weight:bold;color: #820804'>"+row.partner_name+"</span> will temporarily lose the ability to transact with customers.",
  6077. type: "warning",
  6078. showCancelButton: true,
  6079. confirmButtonClass: "btn-danger",
  6080. confirmButtonText: "Yes, please continue!",
  6081. showLoaderOnConfirm: true,
  6082. closeOnConfirm: false,
  6083. html:true
  6084. },
  6085. function(){
  6086.  
  6087. $.ajax({
  6088. url: '{{ route("partner_status") }}',
  6089. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  6090. type: 'POST',
  6091. data: { id: row['id'],type: 'deactivate' },
  6092. success: function(data) {
  6093. if (data.success) {
  6094. swal({
  6095. title: "Deactivated!",
  6096. text: "Partner <span style='font-weight:bold;color: #820804'>"+row.partner_name+"</span> has been deactivated",
  6097. type: "success",
  6098. html: true
  6099. });
  6100. partner_table.ajax.reload( null, false );
  6101. }else{
  6102. swal("Oops!", 'Something went wrong!', "error");
  6103. }
  6104. },
  6105. fail: function(xhr, status, error) {
  6106. console.log(error);
  6107. }
  6108. });
  6109. });
  6110. });
  6111.  
  6112. $('#partner_table').on('click', '.payout-btn', function(event) {
  6113. event.preventDefault();
  6114. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6115. var row = partner_table.row($tr).data();
  6116.  
  6117. $('#partner_payout_modal').find('#partner-name-code').text( row['partner_name'] )
  6118. $('#partner_payout_modal').find('#partner-payout-amount').val( row['partner_earnings'] )
  6119. $('#partner_payout_modal').find('.partner_payout_btn').prop('disabled', row['partner_earnings'] < 1000 ? true : false).html(row['partner_earnings'] < 1000 ? '<i class="fa fa-ban" aria-hidden="true"></i>&nbsp;&nbsp;Submit' : 'Submit').data('partner_id', row['id'] )
  6120. });
  6121.  
  6122. $('#partner_payout_modal').on('click', '.partner_payout_btn', function(event){
  6123. $this = $(this);
  6124. $.ajax({
  6125. url: '{{ route("process_payout") }}',
  6126. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  6127. type: 'POST',
  6128. data: {
  6129. id: $this.data('partner_id'),
  6130. photo: $('#partner_payout_modal').find('.file-preview-image').attr('src'),
  6131. message: $('textarea#payout-message').val(),
  6132. },
  6133. beforeSend: function(){
  6134. if($('#partner_payout_modal').find('.file-preview-image').attr('src') != undefined){
  6135. $('.kv-upload-progress').removeClass('hide').css('display', 'block').find('.progress-bar').removeClass('progress-bar-success');
  6136. }
  6137. $this.prop('disabled', true).html('<i class="fa fa-spinner fa-pulse"></i> Submitting Request').siblings().prop('disabled', true).html('<i class="fa fa-ban" aria-hidden="true"></i> Close')
  6138. },
  6139. xhr: function() {
  6140. var xhr = new window.XMLHttpRequest();
  6141. xhr.upload.addEventListener("progress", function(evt){
  6142. if (evt.lengthComputable && $('#partner_payout_modal').find('.file-preview-image').attr('src') != undefined) {
  6143. var percentComplete = evt.loaded / evt.total;
  6144. $('.kv-upload-progress').removeClass('hide').css('display', 'block').find('.progress-bar').width((percentComplete * 100) + '%').text((percentComplete * 100) === 100 ? 'Upload Complete' : 'Uploading - ' + (percentComplete * 100) + '%').addClass((percentComplete * 100) === 100 ? 'progress-bar-success' : '');
  6145. $('.file-upload-indicator').css({
  6146. backgroundColor: '#dff0d8',
  6147. borderColor: '#d6e9c6'
  6148. });
  6149. $('.file-upload-indicator').find('i').addClass((percentComplete * 100) === 100 ? 'fa-check-circle text-success' : 'fa-hand-o-down text-warning').removeClass((percentComplete * 100) === 100 ? 'fa-hand-o-down text-warning' : 'fa-check-circle text-success');
  6150. }
  6151. }, false);
  6152.  
  6153. return xhr;
  6154. },
  6155. success: function(data) {
  6156. if (data.success) {
  6157. $('#partner_payout_modal').modal('hide');
  6158. swalModifier("Payout Success!", data.message, "success")
  6159. partner_table.ajax.reload( null, false );
  6160. }
  6161. else{
  6162. if(data.errors){
  6163. $.each( data.errors, function( key, value ) {
  6164. if (key == 'message') {
  6165. $('#partner_payout_modal').find('.message').addClass('has-error')
  6166. $('#partner_payout_modal').find('.message').find('.error-label').text(value);
  6167. }
  6168. if (key == 'photo') {
  6169. $('#partner_payout_modal').find('.image').addClass('has-error');
  6170. $('#partner_payout_modal').find('.image').find('.error-label').text(value);
  6171. }
  6172. });
  6173. }
  6174. else{
  6175. swalModifier("Can't process payout!", data.message, "error")
  6176. }
  6177. }
  6178. $this.prop('disabled', false).html('Submit').siblings().prop('disabled', false).html('Close');
  6179. $('.kv-upload-progress').addClass('hide').css('display', 'none').find('.progress-bar').width('0%').removeClass('progress-bar-success');
  6180. $('.file-upload-indicator').css({
  6181. backgroundColor: '#dff0d8',
  6182. borderColor: '#d6e9c6'
  6183. });
  6184. $('.file-upload-indicator').find('i').addClass('fa-hand-o-down text-warning').removeClass('fa-check-circle text-success').addClass('fa-hand-o-down text-warning');
  6185. },
  6186. fail: function(xhr, status, error) {
  6187. console.log(error);
  6188. }
  6189. });
  6190. });
  6191.  
  6192. $('#partner_admin_transactions_table').on('click', '.view-receipt', function(event) {
  6193. event.preventDefault();
  6194. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6195. var row = partner_admin_transactions_table.row($tr).data();
  6196. if (row['picture']) {
  6197. $('#viewReceipt').find('h5').html('Receipt')
  6198. $('#viewReceipt').find('.modal-body').html('<image class="form-control" style="height:100%" src="'+(url+row['picture']).replace('/uploads','')+'"/>')
  6199. $('#viewReceipt').modal('show');
  6200. }else{
  6201. swal("No Receipt!", 'No receipt has been uploaded', "warning");
  6202.  
  6203. }
  6204. });
  6205.  
  6206. $('#partner_user_deposit_table').on('click', '.view-receipt', function(event) {
  6207. event.preventDefault();
  6208. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6209. var row = partner_user_deposit_table.row($tr).data();
  6210. if (row['picture']) {
  6211. $('#viewReceipt').find('h5').html('Receipt')
  6212. $('#viewReceipt').find('.modal-body').html('<image class="form-control" style="height:100%" src="'+(url+row['picture']).replace('/uploads','')+'"/>')
  6213. $('#viewReceipt').modal('show');
  6214. }else{
  6215. swal("No Receipt!", 'No receipt has been uploaded', "warning");
  6216.  
  6217. }
  6218. });
  6219.  
  6220. $('#partner_user_cashout_table').on('click', '.view-receipt', function(event) {
  6221. event.preventDefault();
  6222. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6223. var row = partner_user_cashout_table.row($tr).data();
  6224. if (row['picture']) {
  6225. $('#viewReceipt').find('h5').html('Receipt')
  6226. $('#viewReceipt').find('.modal-body').html('<image class="form-control" style="height:100%" src="'+(url+row['picture']).replace('/uploads','')+'"/>')
  6227. $('#viewReceipt').modal('show');
  6228. }else{
  6229. swal("No Receipt!", 'No receipt has been uploaded', "warning");
  6230.  
  6231. }
  6232. });
  6233.  
  6234. $('#partner_admin_transactions_table').on('click', '.approve', function(event) {
  6235. event.preventDefault();
  6236. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6237. var row = partner_admin_transactions_table.row($tr).data();
  6238. swal({
  6239. title: "Are you sure?",
  6240. text: "Transaction <span style='font-weight:bold;color: #820804'>"+row.code+"</span> will be approved",
  6241. type: "warning",
  6242. showCancelButton: true,
  6243. confirmButtonClass: "btn-danger",
  6244. confirmButtonText: "Yes, please continue!",
  6245. showLoaderOnConfirm: true,
  6246. closeOnConfirm: false,
  6247. html:true
  6248. },
  6249. function(){
  6250. $.ajax({
  6251. url: '{{ route("partner_transactions") }}',
  6252. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  6253. type: 'POST',
  6254. data: { id: row['id'], status: 1, type: row['type'], partner_id: row['partner_id']},
  6255. success: function(data) {
  6256. if (data.success) {
  6257. swal("Approved!", data.message, "success");
  6258. partner_admin_transactions_table.ajax.reload( null, false );
  6259. }else{
  6260. swal({
  6261. title: "Oops!",
  6262. text: data.message,
  6263. type: "error",
  6264. html:true
  6265. });
  6266. }
  6267. },
  6268. fail: function(xhr, status, error) {
  6269. console.log(error);
  6270. }
  6271. });
  6272. });
  6273. });
  6274.  
  6275. $('#partner_user_deposit_table').on('click', '.decline-deposit', function(event) {
  6276. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6277. var transaction = partner_user_deposit_table.row($tr).data(), rejection = $('#partner_rejection_modal');
  6278. rejection.find('h5').html('Reject Deposit <span style="color: #820804; font-weight: 700;">'+ transaction.code +'</span>');
  6279. rejection.find('.name_span_text').text(transaction.partner_transactions.name);
  6280. rejection.find('.code_span_text').text(transaction.code);
  6281. rejection.find('#rejection_type').data('type', 'deposit');
  6282. rejection.find('#reject-partner-btn').css('display', 'none');
  6283. rejection.find('#reject-save-btn').data('transaction_id', transaction.id).attr('id', 'reject-save-btn').data('trade_type', 'partner-user');
  6284. rejection.modal('show');
  6285. });
  6286.  
  6287. $('#partner_user_cashout_table').on('click', '.decline-cashout', function(event) {
  6288. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6289. var transaction = partner_user_cashout_table.row($tr).data(), rejection = $('#partner_rejection_modal');
  6290. rejection.find('h5').html('Reject Cashout <span style="color: #820804; font-weight: 700;">'+ transaction.code +'</span>');
  6291. rejection.find('.name_span_text').text(transaction.partner_transactions.name);
  6292. rejection.find('.code_span_text').text(transaction.code);
  6293. rejection.find('.btn-primary').data('transaction_id', transaction.id).data('buyer_id', transaction.user_id).data('trade_type', 'partner-user');
  6294. rejection.modal('show');
  6295. });
  6296.  
  6297. $('#partner_admin_transactions_table').on('click', '.btn-reject', function(event) {
  6298. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6299. var transaction = partner_admin_transactions_table.row($tr).data(), rejection = $('#partner_rejection_modal');
  6300. rejection.find('h5').html('Reject <span style="color: #820804; font-weight: 700;">'+ transaction.code +'</span>');
  6301. rejection.find('.name_span_text').text(transaction.partner_transactions.name);
  6302. rejection.find('.code_span_text').text(transaction.code);
  6303. rejection.find('#rejection_type').data('type', transaction.type);
  6304. rejection.find('.btn-primary').data('transaction_id', transaction.id).data('buyer_id', transaction.user_id).data('trade_type', 'partner-admin');
  6305. rejection.modal('show');
  6306. });
  6307.  
  6308. $('#reject-save-btn').click(function(event) {
  6309. var $modal = $(this).closest('.modal');
  6310. var $this = $(this),
  6311. _url = $this.data('trade_type') == 'partner-user' ? ( $('#rejection_type').data('type') == 'deposit' ? '{{route("json_partner_user_deposit")}}' : '{{route("json_partner_user_cashout")}}' ) : '{{ route("declined_transactions") }}';
  6312. $this.prop('disabled', true);
  6313. $this.button('progress');
  6314. if( $modal.find('textarea').val() != ''){
  6315. $.ajax({
  6316. url: _url, //Server script to process data
  6317. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  6318. type: 'POST',
  6319. data: {partner_comment: $modal.find('textarea').val(),id:$this.data('transaction_id'),approved:'declined', buyer_id:$this.data('buyer_id'),status: 2, type: $('#rejection_type').data('type'), partner_id: $this.data('buyer_id')},
  6320. success: function(data){
  6321. if(data.success){
  6322. $modal.modal('hide');
  6323. swal("Success!", data.message, "success");
  6324. }
  6325. else {
  6326. swal("Error!", data.message, "error");
  6327. }
  6328. partner_user_deposit_table.ajax.reload( null, false );
  6329. partner_user_cashout_table.ajax.reload( null, false );
  6330. partner_admin_transactions_table.ajax.reload( null, false );
  6331. $this.prop('disabled', false);
  6332. $this.button('reset');
  6333. },
  6334. });
  6335. }else{
  6336. $modal.find('textarea').parent().addClass('has-error');
  6337. $modal.find('textarea').parent().find('.error-label').text('Message is needed');
  6338. $this.prop('disabled', false);
  6339. $this.button('reset');
  6340. }
  6341. });
  6342.  
  6343. $('.partner_discrepancy').click(function(event) {
  6344. var $this = $(this);
  6345. $this.prop('disabled', true);
  6346. $this.button('progress');
  6347. var form = $('#partner_discrepancy_form')[0];
  6348. $('#partner-image').on('filebatchselected');
  6349. var message = $('textarea#partner-message').val();
  6350. var amount = $('input[name="partner_amount"]').val();
  6351. var partner_id = $(this).data('partner_id');
  6352. var mop = $('[name="partner_provider"]', form).val();
  6353. var user_id = $('input[type="hidden"][name="user_id"]', form).val();
  6354. var id = $('input[type="hidden"][name="id"]', form).val();
  6355. var note_id = $('input[type="hidden"][name="note_id"]', form).val();
  6356. var discrepancy_id = $('input[type="hidden"][name="discrepancy_id"]', form).val();
  6357. var photo = $('.file-preview-image').attr('src');
  6358. var _url = $('input[type="hidden"][name="approveWDiscrepancy"]', form).val() ? '{{ route('partnerDiscrepancy') }}' : '{{ route('adminExtraActionOnPartner') }}';
  6359. $.ajax({
  6360. url: _url,
  6361. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  6362. type: 'POST',
  6363. data: {photo:photo,message:message,amount:amount,mop:mop,partner_id:partner_id,user_id:user_id,id:id,note_id:note_id,discrepancy_id:discrepancy_id},
  6364. success: function(data) {
  6365.  
  6366. if (data.errors) {
  6367. $.each( data.errors, function( key, value ) {
  6368. if (key == 'message') {
  6369. $('#partner_discrepancy_form').find('.message').addClass('has-error');
  6370. $('#partner_discrepancy_form').find('textarea#partner-message').parent().find('.error-label').text(value[0]);
  6371. }
  6372. if (key == 'photo') {
  6373. $('#partner_discrepancy_form').find('.image').addClass('has-error');
  6374. }
  6375. });
  6376. }else{
  6377. if(!data.success){
  6378. swal({
  6379. title: "Oops!",
  6380. text: data.message,
  6381. type: "error",
  6382. html: true
  6383. });
  6384. }
  6385. else{
  6386. if ($('.file-preview-image').attr('src') != null) {
  6387. $('.kv-upload-progress').removeClass('hide').css('display', 'block').find('.progress-bar').css('width', '100%').text('Done')
  6388. $('.file-upload-indicator').css({
  6389. backgroundColor: '#dff0d8',
  6390. borderColor: '#d6e9c6'
  6391. });
  6392. $('.file-upload-indicator').find('i').removeClass('fa-hand-o-down').removeClass('text-warning').addClass('fa-check-circle').addClass('text-success')
  6393. }
  6394. $('#partner_modal_discrepancy #partner-image').fileinput('clear')
  6395. swal("Added!", 'Discrepancy successfully added', "success");
  6396. partner_admin_transactions_table.ajax.reload( null, false );
  6397. partner_table.ajax.reload( null, false );
  6398. }
  6399. $('#partner_modal_discrepancy').modal('hide');
  6400. }
  6401. $this.prop('disabled', false);
  6402. $this.button('reset');
  6403. },
  6404. fail: function(xhr, status, error) {
  6405. console.log(error);
  6406. }
  6407. });
  6408.  
  6409. });
  6410.  
  6411. $('#partner_provider').trigger('change');
  6412.  
  6413. $('#partner_admin_transactions_table').on('click', '.discrepancy', function(event) {
  6414. event.preventDefault();
  6415. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6416. var transaction = partner_admin_transactions_table.row($tr).data();
  6417. var form = $('#partner_discrepancy_form')[0];
  6418. var note_id
  6419. var discrepancy_id
  6420. var samples = transaction.discrepancy
  6421. $('input[type="hidden"][name="user_id"]', form).remove();
  6422. $('input[type="hidden"][name="id"]', form).remove();
  6423. $('input[type="hidden"][name="approveWDiscrepancy"]', form).remove();
  6424. $('#partner-discrepancy-amount').val('');
  6425. $('textarea#partner-message').val('');
  6426. $("#partner_provider").select2().val(null).trigger('change');
  6427. $partner_image.fileinput('refresh');
  6428. $('#partner_discrepancy_form').find('.message').removeClass('has-error');
  6429. $partner_image.fileinput('destroy');
  6430.  
  6431. if ($partner_image.data('fileinput')) {
  6432. return;
  6433. }
  6434. partnerInitPlugin();
  6435. if ($partner_image.val()) {
  6436. $partner_image.trigger('change');
  6437. }
  6438. // if (transaction.notes.length > 0) {
  6439. // $('textarea#message').val(transaction.notes[transaction.notes.length - 1].message );
  6440. // }else{
  6441. // $('textarea#message').val('');
  6442. // }
  6443. $('#partner_modal_discrepancy').find('#partner-bc-code').text(transaction.code);
  6444. $('#partner_modal_discrepancy').find('.partner_discrepancy').data('partner_id', transaction.partner.id);
  6445. partner_discrepancy_table.clear().draw();
  6446. if (transaction.discrepancy.length > 0) {
  6447. partner_discrepancy_table.rows.add(transaction.discrepancy).draw();
  6448. partner_discrepancy_table.columns.adjust().draw();
  6449. }
  6450. $(form).append(
  6451. $('<input>')
  6452. .attr('type', 'hidden')
  6453. .attr('name', 'user_id')
  6454. .val(transaction['partner_transactions'].id)
  6455. );
  6456. $(form).append(
  6457. $('<input>')
  6458. .attr('type', 'hidden')
  6459. .attr('name', 'id')
  6460. .val(transaction['id'])
  6461. );
  6462. if (transaction.picture == null) {
  6463. $(form).append(
  6464. $('<input>')
  6465. .attr('type', 'hidden')
  6466. .attr('name', 'approveWDiscrepancy')
  6467. .val(1)
  6468. );
  6469. }
  6470.  
  6471. $('#partner_modal_discrepancy').modal('show').data('transaction_id', transaction.id);
  6472. $('#partner-discrepancy-amount').currencyFormat();
  6473. });
  6474.  
  6475. // When hiding the Discrepancy Modal (Partners)
  6476. $('#partner_modal_discrepancy').on('hidden.bs.modal', function(event){
  6477. $(this).find('#partner-image').fileinput('clear');
  6478. });
  6479.  
  6480. // When hiding the Payout Modal (Partners)
  6481. $('#partner_payout_modal').on('hidden.bs.modal', function(event){
  6482. $(this).find('#payout-image').fileinput('clear');
  6483. $(this).find('textarea#payout-message').val(null);
  6484. $(this).find('.partner_payout_btn').prop('disabled', false).html('Submit');
  6485. });
  6486.  
  6487. $('#partner_admin_transactions_table').on('click', '.view-details', function(event) {
  6488. event.preventDefault();
  6489. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6490. var transaction = partner_admin_transactions_table.row($tr).data();
  6491. var data = JSON.parse(transaction.data)
  6492. $('#view-details').find('.modal-body').find('#deposit-steps').empty();
  6493. renderStepsManual(data.mop.split('-'),transaction)
  6494. $('#view-details').modal('show');
  6495. });
  6496.  
  6497. $('#partner_user_deposit_table').on('click', '.view-details', function(event) {
  6498. event.preventDefault();
  6499. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6500. var transaction = partner_user_deposit_table.row($tr).data();
  6501. var data = JSON.parse(transaction.data);
  6502. $('#view-details').find('.modal-body').find('#deposit-steps').empty();
  6503. renderStepsManual(data.mop.split('-'),transaction)
  6504. $('#view-details').modal('show');
  6505. });
  6506.  
  6507. $('#partner_user_cashout_table').on('click', '.view-details', function(event) {
  6508. event.preventDefault();
  6509. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6510. var transaction = partner_user_cashout_table.row($tr).data();
  6511. var data = JSON.parse(transaction.data);
  6512. $('#view-details').find('.modal-body').find('#deposit-steps').empty();
  6513. renderStepsManual(data.mop.split('-'),transaction)
  6514. $('#view-details').modal('show');
  6515. });
  6516.  
  6517. $('#partner_table').on('click', '.view-partner-info', function(event) {
  6518. event.preventDefault();
  6519. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6520. var transaction = partner_table.row($tr).data();
  6521. var hex = "partner-details";
  6522. $('#view-details').find('.modal-body').find('#deposit-steps').empty();
  6523. $('#view-details').find('.modal-body').find('#update-info').data('transaction', transaction);
  6524. renderStepsManual(hex.split('-'),transaction)
  6525. $('#view-details').modal('show');
  6526. $('.open-update-info').show();
  6527. });
  6528.  
  6529. $('#partner_approval_table').on('click', '.view-partner-info', function(event) {
  6530. event.preventDefault();
  6531. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6532. var transaction = partner_approval_table.row($tr).data();
  6533. var hex = "partner-details";
  6534. $('#view-details').find('.modal-body').find('#deposit-steps').empty();
  6535. $('#view-details').find('.modal-body').find('#update-info').data('transaction', transaction);
  6536. renderStepsManual(hex.split('-'),transaction)
  6537. $('#view-details').modal('show');
  6538. $('.open-update-info').show();
  6539. });
  6540.  
  6541. $('#partner_table').on('click', '.view-payout-info', function(event) {
  6542. event.preventDefault();
  6543. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6544. var transaction = partner_table.row($tr).data(), hex = "partner-account";
  6545. $('#view-details').find('.modal-body').find('#deposit-steps').empty();
  6546. $('#view-details').find('.modal-body').find('#update-info').data('transaction', transaction);
  6547. renderStepsManual(hex.split('-'),transaction)
  6548. $('#view-details').modal('show');
  6549. $('.open-update-info').show();
  6550. });
  6551.  
  6552. $('#partner_approval_table').on('click', '.view-payout-info', function(event) {
  6553. event.preventDefault();
  6554. $tr = $(this).closest('tr').hasClass('child') ? $(this).closest('tr').prev() : $(this).closest('tr');
  6555. var transaction = partner_approval_table.row($tr).data(), hex = "partner-account";
  6556. $('#view-details').find('.modal-body').find('#deposit-steps').empty();
  6557. $('#view-details').find('.modal-body').find('#update-info').data('transaction', transaction);
  6558. renderStepsManual(hex.split('-'),transaction)
  6559. $('#view-details').modal('show');
  6560. $('.open-update-info').show();
  6561. });
  6562.  
  6563. $('#partner_payout_table').on('click', '.view-receipt', function(event) {
  6564. event.preventDefault();
  6565. $tr = $(this).closest('tr').hasClass('child') ?
  6566. $(this).closest('tr').prev() : $(this).closest('tr');
  6567. var row = partner_payout_table.row($tr).data();
  6568. if (row['receipt']) {
  6569. $('#viewReceipt').find('h5').html('Receipt')
  6570. $('#viewReceipt').find('.modal-body').html('<image class="form-control" style="height:100%" src="' + (url + row['receipt']).replace('/uploads','') + '"/>')
  6571. $('#viewReceipt').modal('show');
  6572. }else{
  6573. swal("No Receipt!", 'No receipt has been uploaded', "warning");
  6574. }
  6575. });
  6576.  
  6577. $('#view-details').on('hidden.bs.modal', function(){
  6578. $('#view-details').find('#update-info').hide();
  6579. $('#view-details').find('.details-list').show();
  6580. $('.open-update-info').hide();
  6581. $('.save-partner-info').hide();
  6582. $('#partnerForm')[0].reset();
  6583. });
  6584.  
  6585. $('.open-update-info').click(function(){
  6586. $('#view-details').find('#update-info').show();
  6587. $('#view-details').find('.details-list').hide();
  6588. $(this).hide();
  6589. $('.save-partner-info').show();
  6590. partnerInfo( $('#view-details').find('.modal-body').find('#update-info').data('transaction') );
  6591. });
  6592.  
  6593. $('.save-partner-info').click(function(){
  6594. if(setPartnerInfo()){
  6595. $.ajax({
  6596. url:'{{ route("json_update_partner_info") }}',
  6597. type:'POST',
  6598. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  6599. data: {
  6600. user_id: $(".partner-select-logo").data('user_id'),
  6601. partner_name: $('#partner_name').val(),
  6602. address: $('#partner_address').val(),
  6603. mobile_number: $('#partner_mobile').val(),
  6604. landline_number: $('#partner_telephone').val() != '' ? $('#partner_telephone').val() : null,
  6605. contact_person: $('#partner_person').val(),
  6606. email: $('#partner_email').val(),
  6607. operation_time: $('#partner_operation').val(),
  6608. payment_mode: $('#partner_mop').val(),
  6609. details: $('#partner_details').val(),
  6610. bpi_account: $('#partner_bpi').val() != '' ? $('#partner_bpi').val() : null,
  6611. bpi_account_name: $('#partner_bpi_name').val() != '' ? $('#partner_bpi_name').val() : null,
  6612. bdo_account: $('#partner_bdo').val() != '' ? $('#partner_bdo').val() : null,
  6613. bdo_account_name: $('#partner_bdo_name').val() != '' ? $('#partner_bdo_name').val() : null,
  6614. province_id: $('#partner_province').val(),
  6615. facebook_link: $('#partner_fb_link').val(),
  6616. },
  6617. success:function(data){
  6618. if(data.success){
  6619. swal("Updated Partner Info!", "Partnership information has been updated.", "success");
  6620. $('#view-details').modal('hide');
  6621. partner_approval_table.ajax.reload();
  6622. partner_table.ajax.reload();
  6623. }
  6624. }
  6625. });
  6626. }
  6627. });
  6628.  
  6629. $('#partner_discrepancy_table').on('click', '.view-receipt', function(event) {
  6630. event.preventDefault();
  6631. $tr = $(this).closest('tr').hasClass('child') ?
  6632. $(this).closest('tr').prev() : $(this).closest('tr');
  6633. var row = partner_discrepancy_table.row($tr).data();
  6634. if (row['picture']) {
  6635. $('#viewReceipt').find('h5').html('Receipt')
  6636. $('#viewReceipt').find('.modal-body').html('<image class="form-control" style="height:100%" src="'+(url+row['picture']).replace('/uploads','')+'"/>')
  6637. $('#viewReceipt').modal('show');
  6638. }else{
  6639. swal("No Receipt!", 'No receipt has been uploaded', "warning");
  6640. }
  6641. });
  6642.  
  6643. function renderStepsManual(mop,transaction)
  6644. {
  6645. switch (mop[1]) {
  6646. case 'deposit':
  6647. var data = {}, bank=mop[0], bopen, bclose, mopen, mclose, accountnumber;
  6648. var container = $("#manual-steps-template").html();
  6649. switch (mop[0]) {
  6650. case 'BDO':
  6651. bopen = '9AM'
  6652. bclose = '3PM'
  6653. mopen = '10AM'
  6654. mclose = '7PM'
  6655. accountnumber = '007610166283'
  6656. break;
  6657. case 'BPI':
  6658. bopen = '9AM'
  6659. bclose = '3PM'
  6660. mopen = '10AM'
  6661. mclose = '6PM'
  6662. accountnumber = '1019165937'
  6663. break;
  6664. case 'Metrobank':
  6665. bopen = '9AM'
  6666. bclose = '3PM'
  6667. mopen = '10AM'
  6668. mclose = '6PM'
  6669. accountnumber = '486-3-48623798-9'
  6670. break;
  6671. }
  6672. data.bank = bank;
  6673. data.bopen = bopen;
  6674. data.bclose = bclose;
  6675. data.mopen = mopen;
  6676. data.mclose = mclose;
  6677. data.accountnumber = accountnumber;
  6678. data.amount = numberWithCommas(transaction.amount);
  6679. data.code = transaction.code;
  6680. $('#view-details').find('.modal-body').find('#deposit-steps').append(Mustache.render(container, data));
  6681. break;
  6682. case 'remittance':
  6683. var data = {}
  6684. data.amount = numberWithCommas(transaction.amount);
  6685. data.code = transaction.code;
  6686. var container = $("#"+mop[0]+"-remittance").html();
  6687. $('#view-details').find('.modal-body').find('#deposit-steps').append(Mustache.render(container, data));
  6688. break;
  6689. case 'online':
  6690. var container = $("#"+mop[0]+"-desktop").html();
  6691. var data = {}
  6692. data.code = transaction.code;
  6693. $('#view-details').find('.modal-body').find('#deposit-steps').append(Mustache.render(container, data));
  6694. break;
  6695. case 'details':
  6696. var container = $("#"+mop[0]+"-details").html();
  6697. var data = {}
  6698. data.partner_name = transaction.partner_name;
  6699. data.address = transaction.address + ", " + transaction.province.province;
  6700. data.name = transaction.user_owner.name;
  6701. data.person = transaction.contact_person;
  6702. data.mobile = transaction.mobile_number;
  6703. data.landline = transaction.landline_number ? transaction.landline_number : "No provided telephone number";
  6704. data.email = transaction.email;
  6705. data.fb_link = transaction.facebook_link;
  6706. data.bpi_num = transaction.bpi_account ? transaction.bpi_account : "No BPI account";
  6707. data.bpi_name = transaction.bpi_account_name ? transaction.bpi_account_name : "No BPI account";
  6708. data.bdo_num = transaction.bdo_account ? transaction.bdo_account : "No BDO account" ;
  6709. data.bdo_name = transaction.bdo_account_name ? transaction.bdo_account_name : "No BDO account";
  6710. $('#view-details').find('.modal-body').find('#deposit-steps').append(Mustache.render(container, data));
  6711. break;
  6712. case 'account':
  6713. var container = $("#"+mop[0]+"-account").html();
  6714. var data = {}
  6715. data.name = transaction.user_owner.name;
  6716. data.bpi_num = transaction.bpi_account ? transaction.bpi_account : "N/A";
  6717. data.bpi_name = transaction.bpi_account_name ? transaction.bpi_account_name : "N/A";
  6718. data.bdo_num = transaction.bdo_account ? transaction.bdo_account : "N/A" ;
  6719. data.bdo_name = transaction.bdo_account_name ? transaction.bdo_account_name : "N/A";
  6720. $('#view-details').find('.modal-body').find('#deposit-steps').append(Mustache.render(container, data));
  6721. break;
  6722. case 'walkin':
  6723. var container = $("#"+mop[0]+"-walkin").html();
  6724. var data = {}
  6725. data.code = transaction.code;
  6726. data.partner = transaction.partner.partner_name;
  6727. data.address = transaction.partner.address + ', ' + transaction.partner.province.province;
  6728. data.schedule = transaction.partner.operation_time;
  6729. $('#view-details').find('.modal-body').find('#deposit-steps').append(Mustache.render(container, data));
  6730. break;
  6731. case 'others':
  6732. var container = $("#"+mop[0]+"-others").html();
  6733. var data = {}
  6734. $('#view-details').find('.modal-body').find('#deposit-steps').append(Mustache.render(container, data));
  6735. break;
  6736. }
  6737.  
  6738. }
  6739.  
  6740. function swalModifier(title, message, type){
  6741. type = type || 'info';
  6742. return swal({
  6743. title: title,
  6744. text: message,
  6745. type: type,
  6746. html: true,
  6747. });
  6748. }
  6749.  
  6750. function partnerInfo(partner)
  6751. {
  6752. var div = $('#view-details').find('.modal-body').find('#update-info').find('#partnerForm');
  6753. div.find('#partner_name').val(partner.partner_name);
  6754. div.find('#partner_address').val(partner.address);
  6755. // .text(partner.province.province);
  6756. div.find('#partner_province option').filter(function () { return $(this).html() == partner.province.province; }).prop('selected', true)
  6757. div.find('#partner_mobile').val(partner.mobile_number);
  6758. div.find('.partner-select-logo').data('user_id', partner.user_owner.id);
  6759. div.find('#partner_telephone').val(partner.landline_number);
  6760. div.find('#partner_person').val(partner.contact_person);
  6761. div.find('#partner_email').val(partner.email);
  6762. div.find('#partner_fb_link').val(partner.facebook_link);
  6763. div.find('#partner_operation').val(partner.operation_time);
  6764. div.find('#partner_mop').val(partner.payment_mode);
  6765. div.find('#partner_details').val(partner.details);
  6766. div.find('#partner_bpi').val(partner.bpi_account);
  6767. div.find('#partner_bpi_name').val(partner.bpi_account_name);
  6768. div.find('#partner_bdo').val(partner.bdo_account);
  6769. div.find('#partner_bdo_name').val(partner.bdo_account_name);
  6770. }
  6771.  
  6772. function isNullOrWhitespace( input )
  6773. {
  6774. if (typeof input === 'undefined' || input == null) return true;
  6775. return input.replace(/\s/g, '').length < 1;
  6776. }
  6777.  
  6778. function setPartnerInfo(){
  6779. var pass = true;
  6780. if(isNullOrWhitespace($('#partner_bpi').val()) && isNullOrWhitespace($('#partner_bdo').val()) && isNullOrWhitespace($('#partner_bpi_name').val()) && isNullOrWhitespace($('#partner_bdo_name').val())){
  6781. $('#partner_bpi').parent().parent().find('.error-label').css('display', 'block');
  6782. $('#partner_bpi').parent().parent().parent().find('.alert').css('margin-top', '0px');
  6783. pass = false;
  6784. }
  6785. else if(!isNullOrWhitespace($('#partner_bpi').val()) && isNullOrWhitespace($('#partner_bpi_name').val())){
  6786. $('#partner_bpi').parent().parent().find('.error-label').css('display', 'block');
  6787. $('#partner_bpi').parent().parent().find('.error-label').text("Please don't leave your BPI account name empty");
  6788. $('#partner_bpi').parent().parent().parent().find('.alert').css('margin-top', '0px');
  6789. pass = false;
  6790. }
  6791. else if(!isNullOrWhitespace($('#partner_bdo').val()) && isNullOrWhitespace($('#partner_bdo_name').val())){
  6792. $('#partner_bpi').parent().parent().find('.error-label').css('display', 'block');
  6793. $('#partner_bpi').parent().parent().find('.error-label').text("Please don't leave your BDO account name empty");
  6794. $('#partner_bpi').parent().parent().parent().find('.alert').css('margin-top', '0px');
  6795. pass = false;
  6796. }
  6797. else if(!isNullOrWhitespace($('#partner_bdo').val()) && isNullOrWhitespace($('#partner_bdo_name').val()) && !isNullOrWhitespace($('#partner_bpi').val()) && isNullOrWhitespace($('#partner_bpi_name').val())){
  6798. $('#partner_bpi').parent().parent().find('.error-label').css('display', 'block');
  6799. $('#partner_bpi').parent().parent().find('.error-label').text("Please don't leave your bank accounts name empty");
  6800. $('#partner_bpi').parent().parent().parent().find('.alert').css('margin-top', '0px');
  6801. pass = false;
  6802. }
  6803. if(isNullOrWhitespace($('#partner_fb_link').val())){
  6804. $('#partner_fb_link').siblings('.error-label').css('display', 'block');
  6805. pass = false;
  6806. }
  6807. if(isNullOrWhitespace($('#partner_mop').val())){
  6808. $('#partner_mop').siblings('.error-label').css('display', 'block');
  6809. pass = false;
  6810. }
  6811. if(isNullOrWhitespace($('#partner_details').val())){
  6812. $('#partner_details').parent().parent().find('.error-label').css('display', 'block');
  6813. pass = false;
  6814. }
  6815. if(isNullOrWhitespace($('#partner_name').val())){
  6816. $('#partner_name').siblings('.error-label').css('display', 'block');
  6817. pass = false;
  6818. }
  6819. if(isNullOrWhitespace($('#partner_address').val()) || !$('#partner_province').val()){
  6820. $('#partner_address').parent().parent().find('.error-label').css('display', 'block');
  6821. pass = false;
  6822. }
  6823. if(isNullOrWhitespace($('#partner_mobile').val())){
  6824. $('#partner_mobile').parent().parent().find('.error-label').css('display', 'block');
  6825. pass = false;
  6826. }
  6827. if(isNullOrWhitespace($('#partner_person').val())){
  6828. $('#partner_person').siblings('.error-label').css('display', 'block');
  6829. pass = false;
  6830. }
  6831. if(isNullOrWhitespace($('#partner_email').val())){
  6832. $('#partner_email').siblings('.error-label').css('display', 'block');
  6833. pass = false;
  6834. }
  6835. if(isNullOrWhitespace($('#partner_operation').val())){
  6836. $('#partner_operation').siblings('.error-label').css('display', 'block');
  6837. pass = false;
  6838. }
  6839. else if(
  6840. ( (!isNullOrWhitespace($('#partner_bdo').val()) && !isNullOrWhitespace($('#partner_bdo_name').val())) || (!isNullOrWhitespace($('#partner_bpi').val()) && !isNullOrWhitespace($('#partner_bpi_name').val())) ) &&
  6841. !isNullOrWhitespace($('#partner_fb_link').val()) && !isNullOrWhitespace($('#partner_mop').val()) && !isNullOrWhitespace($('#partner_details').val()) &&
  6842. !isNullOrWhitespace($('#partner_name').val()) && !isNullOrWhitespace($('#partner_address').val()) && !isNullOrWhitespace($('#partner_mobile').val()) &&
  6843. !isNullOrWhitespace($('#partner_person').val()) && !isNullOrWhitespace($('#partner_email').val()) && !isNullOrWhitespace($('#partner_operation').val()) &&
  6844. !$('#partner_province').val()
  6845. ){
  6846. $('.error-label').css('display', 'none');
  6847. $('#partner_bpi').parent().parent().parent().find('.alert').css('margin-top', '115px');
  6848. pass = true;
  6849. }
  6850. return pass;
  6851. }
  6852.  
  6853. $(".partner-select-logo").fileinput({
  6854. previewFileType: "image",
  6855. theme: "fa",
  6856. showUpload: false,
  6857. showCaption: false,
  6858. showRemove: false,
  6859. browseClass: "btn btn-primary btn-sm",
  6860. browseLabel: "Pick Image",
  6861. browseIcon: "<i class=\"fa fa-picture-o\"></i> ",
  6862. allowedFileExtensions: ["jpg", "gif", "png", "jpeg"],
  6863. }).on("filebatchselected", function(event, files) {
  6864. $('.kv-upload-progress').css('display', 'none');
  6865. $('.file-upload-indicator').css({
  6866. backgroundColor: '#fcf8e3',
  6867. borderColor: '#faebcc'
  6868. });
  6869. $('.file-upload-indicator').find('i').removeClass('fa-check-circle').removeClass('text-success').addClass('fa-hand-o-down').addClass('text-warning')
  6870. $.ajax({
  6871. url: '{{ route("set_partner_logo") }}',
  6872. headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' },
  6873. type: 'POST',
  6874. data: {photo:$('.file-preview-image').attr('src'),user_id: $(this).data('user_id'), },
  6875. success: function(data) {
  6876. if (data.success) {
  6877. $('.kv-upload-progress').removeClass('hide').css('display', 'block').find('.progress-bar').css('width', '100%').text('Done');
  6878. $('.file-upload-indicator').css({
  6879. backgroundColor: '#dff0d8',
  6880. borderColor: '#d6e9c6'
  6881. });
  6882. $('.file-upload-indicator').find('i').removeClass('fa-hand-o-down').removeClass('text-warning').addClass('fa-check-circle').addClass('text-success');
  6883. }
  6884. },
  6885. fail: function(xhr, status, error) {
  6886. console.log('error');
  6887. }
  6888. });
  6889. });
  6890.  
  6891. $("#partner_address").focusout(function(){
  6892. $(this).parent().parent().find('.error-label').css('display', 'none');
  6893. });
  6894. $("#partner_mobile").focusout(function(){
  6895. $(this).parent().parent().find('.error-label').css('display', 'none');
  6896. });
  6897. $("#partner_bpi").focusout(function(){
  6898. $(this).parent().parent().find('.error-label').css('display', 'none');
  6899. $('#partner_bpi').parent().parent().parent().find('.alert').css('margin-top', '115px');
  6900. });
  6901. $("#partner_bpi_name").focusout(function(){
  6902. $(this).parent().parent().find('.error-label').css('display', 'none');
  6903. $('#partner_bpi').parent().parent().parent().find('.alert').css('margin-top', '115px');
  6904. });
  6905. $("#partner_bdo").focusout(function(){
  6906. $(this).parent().parent().find('.error-label').css('display', 'none');
  6907. $('#partner_bpi').parent().parent().parent().find('.alert').css('margin-top', '115px');
  6908. });
  6909. $("#partner_bdo_name").focusout(function(){
  6910. $(this).parent().parent().find('.error-label').css('display', 'none');
  6911. $('#partner_bpi').parent().parent().parent().find('.alert').css('margin-top', '115px');
  6912. });
  6913. $("#partner_mobile, #partner_bpi, #partner_bdo").keydown(function (e) {
  6914. if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
  6915. (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) ||
  6916. (e.keyCode >= 35 && e.keyCode <= 40)) {
  6917. return;
  6918. }
  6919. if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
  6920. e.preventDefault();
  6921. }
  6922. });
  6923.  
  6924. $('.nav-tabs a').on('shown.bs.tab', function (e) {
  6925. switch(e.currentTarget.hash) {
  6926. case '#partner-deposit':
  6927. partner_user_deposit_table.ajax.reload();
  6928. break;
  6929. case '#partner-cashout':
  6930. partner_user_cashout_table.ajax.reload();
  6931. break;
  6932. case '#partner-earning':
  6933. partner_payout_table.ajax.reload();
  6934. break;
  6935. case '#partner-transaction':
  6936. partner_admin_transactions_table.ajax.reload();
  6937. break;
  6938. case '#partner-approval':
  6939. partner_approval_table.ajax.reload();
  6940. break;
  6941. case '#partner-manage':
  6942. partner_table.ajax.reload();
  6943. break;
  6944. }
  6945. })
  6946. });
  6947. </script>
  6948.  
  6949. @endsection
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement