Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 51.74 KB | None | 0 0
  1. @extends('master', compact($data))
  2.  
  3. @section('slide-nav')
  4. @include('ahonordoctor::menu-list-hd')
  5. @endsection
  6.  
  7. @section('content')
  8. <div class="page-header">
  9. <div class="page-header-content">
  10. <div class="page-title pull-left">
  11. <h4>Voucher Piutang</h4>
  12. </div>
  13. {!! Breadcrumbs::render('home.direct.bypagetitle','Voucher Piutang','Honor Doctor',url('ahonordoctor/import-honor-igd')) !!}
  14. <div class="clearfix"></div>
  15. </div>
  16. </div>
  17. <div class="main-content">
  18. <!-- BEGIN CONTENT-->
  19. <div class="row">
  20. <div class="col-md-12 nopadding">
  21. <div class="panel-body">
  22. <form class="form-horizontal forms">
  23. <div class="col-sm-6 left">
  24. <div class="form-group">
  25. <div class="col-md-12">
  26. <label class="control-label col-sm-3">Transaction No</label>
  27. <div class="col-md-7">
  28. <input type="text" class="form-control" name="trans_no" value="{{ $action == 'CREATE' ? $seriesID : $headerData->trans_id }}" readonly>
  29. </div>
  30. </div>
  31. </div>
  32. <div class="form-group">
  33. <div class="col-md-12">
  34. <label class="control-label col-sm-3">Doctor</label>
  35. <div class="col-md-7">
  36. <select class="form-control select-supplier" name="supplier" style="width:100%;" @if($action == 'EDIT') disabled @endif>
  37. @if($action == 'EDIT')
  38. <option value="{{ $headerData->partner_id }}"> {{ $headerData->partner_name }} </option>
  39. @endif
  40. </select>
  41. </div>
  42. </div>
  43. </div>
  44. <div class="panel-collapse collapse headerAccordion" role="tabpanel">
  45. <!-- <div class="form-group">
  46. <div class="col-md-12">
  47. <label class="col-md-2 control-label">Petty Cash/Bank</label>
  48. <div class="col-md-2">
  49. <input class="cash-checked" type="checkbox" name="cash-checked" value="1" />
  50. </div>
  51. <div class="col-md-7 checked" style="margin-left: -40px">
  52. <select class="form-control select2-cash-bank-checked" name="nm_cash_bank" style="width: 100%">
  53. </select>
  54. </div>
  55. <div class="col-md-7 nochecked" style="margin-left: -40px">
  56. <select class="form-control select2-cash-bank-no-checked" name="nm_cash_bank" style="width: 100%">
  57. </select>
  58. </div>
  59. </div>
  60. </div> -->
  61. <div class="form-group">
  62. <div class="col-md-12">
  63. <label class="control-label col-md-2">Cash Code/Bank</label>
  64. <div class="col-md-2">
  65. <input type="checkbox" name="ref_checkbox" style="margin-left:10px" @if($action == 'EDIT') {{ strlen($headerData->bank_refno) > 0 ? 'checked' : '' }} @endif>
  66. </div>
  67. <div class="col-md-7" style="margin-left: -40px">
  68. <select class="form-control select-bank" name="code_bank" disabled="" style="width:100%;">
  69. @if($action == 'EDIT')
  70. <option value="{{ $headerData->bank_id }}">{{ $headerData->bank_name }}</option>
  71. @endif
  72. </select>
  73. </div>
  74. </div>
  75. </div>
  76. <div class="form-group">
  77. <div class="col-md-12">
  78. <label class="control-label col-sm-3">Bank Account Code</label>
  79. <div class="col-md-7">
  80. <input type="text" name="account_code" class="form-control" @if($action == 'EDIT') value="{{ $headerData->bank_acc_no }}" @endif readonly />
  81. </div>
  82. </div>
  83. </div>
  84. <input type="hidden" name="account_bank_name" @if($action == 'EDIT') value="{{ $headerData->gl_name }}" @endif class="form-control" readonly />
  85. <div class="form-group">
  86. <div class="col-md-12">
  87. <label class="control-label col-sm-3">Balance</label>
  88. <div class="col-md-7">
  89. <input type="text" class="form-control text-right" name="balance_bank" value="{{ $action == 'EDIT' ? $balanceValue['bank'] : '0.00' }}" readonly="">
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. <div class="col-sm-6">
  96. <div class="form-group">
  97. <label class="control-label col-sm-3">Transaction Date</label>
  98. <div class="col-md-7">
  99. <div class="input-group">
  100. <input type="text" class="form-control jqui-datepicker" name="trans_date" value="{{ $action == 'CREATE' ? Carbon\Carbon::now()->format('m/d/Y') : \Carbon\Carbon::parse($headerData->date_trans)->format('m/d/Y') }}" @if($action == 'EDIT') disabled @endif >
  101. <div class="input-group-addon"><i class="fa fa-calendar"></i></div>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="form-group">
  106. <label class="control-label col-sm-3">Cheque No</label>
  107. <div class="col-md-7">
  108. <select class="form-control select-cheque-no" name="cheque_no" disabled="" style="width:100%">
  109. @if($action == 'EDIT')
  110. <option value="{{ $headerData->no_cheque }}"> {{ $headerData->no_cheque }} </option>
  111. @endif
  112. </select>
  113. </div>
  114. </div>
  115. <div class="panel-collapse collapse headerAccordion" role="tabpanel">
  116.  
  117. <!-- <div class="form-group">
  118. <div class="col-sm-3">
  119. <label class="control-label">No. Reference</label>
  120. </div>
  121. <div class="col-sm-9">
  122. <input type="text" class="form-control" name="no_referensi" value="{{ $action == 'EDIT' ? $headerData->bank_refno : '' }}" checked="false" readonly>
  123. </div>
  124. </div> -->
  125. <div class="form-group">
  126. <label class="control-label col-sm-3">Cheque Due Date</label>
  127. <div class="col-md-7">
  128. <div class="input-group">
  129. <input type="text" class="form-control jqui-datepicker" name="cheque_due" value="{{ Carbon\Carbon::now()->format('m/d/Y') }}" disabled="">
  130. <div class="input-group-addon"><i class="fa fa-calendar"></i></div>
  131. </div>
  132. </div>
  133. </div>
  134. </div>
  135. <input type="hidden" name="account_gl" class="form-control" @if($action == 'EDIT') value="{{ $headerData->gl_code }}" @endif readonly />
  136. <input type="hidden" name="account_gl_name" @if($action == 'EDIT') value="{{ $headerData->gl_name }}" @endif class="form-control" readonly />
  137. <input type="hidden" name="gl_balance" class="form-control text-right" @if($action == 'EDIT') value="{{ $headerData->gl_code }}" @endif readonly />
  138. </div>
  139. </form>
  140. </div>
  141. <div class="pull-right" style="margin-top: 10px;margin-right: 30px">
  142. <div class="col-sm-12">
  143. <div class="form-group">
  144. <button type="button" class="btn btn-default btn-show-hide" data-toggle="collapse" href=".headerAccordion"> Show >>> </button>
  145. @if($action == 'EDIT')
  146. <a href="#" class="btn btn-danger btn-raised btn-delete"><i class="fa fa-trash-o"></i> Delete</a>
  147. @endif
  148. <button type="button" class="btn btn-danger btn-cancel">Cancel</button>
  149. <button type="button" class="btn btn-success btn-process-equality" @if($action == 'EDIT') disabled @endif >Auto Payment</button>
  150. @if($action == 'CREATE')
  151. <a href="#" class="btn btn-success btn-raised btn-simpan"></i>Save</a>
  152. @elseif($action == 'EDIT')
  153. <a href="#" class="btn btn-success btn-raised btn-edit-simpan"></i>Save Change</a>
  154. @endif
  155.  
  156. <!-- <a href="#" class="btn btn-danger btn-raised" data-toggle="swal" data-title="" data-text="Are You Sure?" data-model="confirm" data-type="warning"><i class="fa fa-trash-o"></i> Delete</a> -->
  157. </div>
  158. </div>
  159. </div>
  160. <div class="col-md-12">
  161. <ul class="nav nav-tabs">
  162. <li class="active"><a href="#tab-transaction" data-toggle="tab">Transaction</a></li>
  163. </ul>
  164. </div>
  165. <br/>
  166. <br/>
  167. <br/>
  168. <br/>
  169. <br/>
  170. <div class="tab-content nopadding">
  171. <div class="panel-body">
  172. <div class="col-md-12">
  173. <table class="table datatable-basic table-striped datatable-payment-voucher">
  174. <thead>
  175. <tr>
  176. <th>AR No.</th>
  177. <th>Date</th>
  178. <th>Note</th>
  179. <th>Total Debit</th>
  180. <th>Total Payment</th>
  181. <th>Docref</th>
  182. <th data-sortable="false"><input type="checkbox" id="dt-header-cb"></th>
  183. <th width="10"></th>
  184. </tr>
  185. </thead>
  186. <tbody>
  187. </tbody>
  188. </table>
  189. </div>
  190. </div>
  191. <div id="tab-invoice-detail" class="tab-pane">
  192. <div class="panel panel-transparent">
  193. <div class="panel-heading">
  194. </div>
  195. <div class="panel-body">
  196. <table class="table datatable-basic table-striped">
  197. <thead>
  198. <tr>
  199. <th>PO No.</th>
  200. <th>Item Code</th>
  201. <th>Item Name</th>
  202. <th>Unit</th>
  203. <th>Qty</th>
  204. <th>Price</th>
  205. <th>Diskon</th>
  206. <th width="10"></th>
  207. </tr>
  208. </thead>
  209. </table>
  210. </div>
  211. </div>
  212. </div>
  213. </div>
  214. <br/>
  215. <div class="form">
  216. <div class="row">
  217. <div class="col-sm-3"></div>
  218. <div class="col-sm-3">
  219. <div class="form-group">
  220. <label>Total Debit</label>
  221. <input type="text" class="form-control text-right" name="total_debt" value="0" readonly="">
  222. </div>
  223. </div>
  224. <div class="col-sm-3">
  225. <div class="form-group">
  226. <label>Total Payment</label>
  227. <input type="text" class="form-control text-right" name="total_payment" value="0" readonly="">
  228. </div>
  229. </div>
  230. <div class="col-sm-3">
  231. <div class="form-group">
  232. <label>Remaining Debit</label>
  233. <input type="text" class="form-control text-right" name="remaining_debt" value="0" readonly="">
  234. </div>
  235. </div>
  236. <input type="hidden" name="rid">
  237. </div>
  238. </div>
  239. </div>
  240. </div>
  241. <!-- END -->
  242. </div>
  243.  
  244. <div class="modal fade" id="transaction-modal">
  245. <div class="modal-dialog">
  246. <div class="modal-content">
  247. <div class="modal-header">
  248. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  249. <h4 class="modal-title">Transaction Form</h4>
  250. </div>
  251. <div class="modal-body">
  252. <form class="form-horizontal detail-modal">
  253. <div class="form-group">
  254. <label class="control-label col-sm-3">Invoices No</label>
  255. <div class="col-sm-6">
  256. <input type="text" class="form-control" name="no_faktur" readonly="">
  257. </div>
  258. </div>
  259. <div class="form-group">
  260. <label class="control-label col-sm-3">Date</label>
  261. <div class="col-sm-9">
  262. <div class="input-group">
  263. <input type="text" class="form-control jqui-datepicker" name="tanggal_bukti" disabled="">
  264. <div class="input-group-addon"><i class="fa fa-calendar"></i></div>
  265. </div>
  266. </div>
  267. </div>
  268. <div class="form-group">
  269. <label class="control-label col-sm-3">Note</label>
  270. <div class="col-sm-9">
  271. <textarea class="form-control" rows="3" name="detail_descriptions" readonly="" value="0.00"></textarea>
  272. </div>
  273. </div>
  274. <div class="form-group">
  275. <label class="control-label col-sm-3">Total Debit</label>
  276. <div class="col-sm-6">
  277. <input type="text" class="form-control text-right" name="detail_total_debt" value="0.00" readonly="">
  278. </div>
  279. </div>
  280. <div class="form-group">
  281. <label class="control-label col-sm-3">Total Payment</label>
  282. <div class="col-sm-6">
  283. <input type="text" class="form-control text-right" name="detail_total_payment" value="0.00">
  284. </div>
  285. </div>
  286. </form>
  287. </div>
  288. <div class="modal-footer">
  289. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  290. <button type="button" class="btn btn-primary btn-save-detail">Save changes</button>
  291. </div>
  292. </div>
  293. </div>
  294. </div>
  295.  
  296. <div class="modal fade" id="invoice-detail-modal">
  297. <div class="modal-dialog">
  298. <div class="modal-content">
  299. <div class="modal-header">
  300. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  301. <h4 class="modal-title">Invoice Detail Form</h4>
  302. </div>
  303. <div class="modal-body">
  304. <form class="form-horizontal">
  305. <div class="form-group">
  306. <label class="control-label col-sm-3">PO No.</label>
  307. <div class="col-sm-6">
  308. <input type="text" class="form-control">
  309. </div>
  310. </div>
  311. <div class="form-group">
  312. <label class="control-label col-sm-3">Item Code</label>
  313. <div class="col-sm-6">
  314. <input type="text" class="form-control">
  315. </div>
  316. </div>
  317. <div class="form-group">
  318. <label class="control-label col-sm-3">Item Name</label>
  319. <div class="col-sm-9">
  320. <input type="text" class="form-control">
  321. </div>
  322. </div>
  323. <div class="form-group">
  324. <label class="control-label col-sm-3">Unit</label>
  325. <div class="col-sm-4">
  326. <input type="text" class="form-control">
  327. </div>
  328. </div>
  329. <div class="form-group">
  330. <label class="control-label col-sm-3">Qty</label>
  331. <div class="col-sm-4">
  332. <input type="text" class="form-control">
  333. </div>
  334. </div>
  335. <div class="form-group">
  336. <label class="control-label col-sm-3">Price</label>
  337. <div class="col-sm-6">
  338. <input type="text" class="form-control text-right">
  339. </div>
  340. </div>
  341. <div class="form-group">
  342. <label class="control-label col-sm-3">Diskon</label>
  343. <div class="col-sm-4">
  344. <input type="text" class="form-control">
  345. </div>
  346. </div>
  347. </form>
  348. </div>
  349. <div class="modal-footer">
  350. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
  351. <button type="button" class="btn btn-primary">Save changes</button>
  352. </div>
  353. </div>
  354. </div>
  355. </div>
  356. @endsection
  357.  
  358. @push('scripts')
  359. <style>
  360. .text-right{
  361. text-align : right;
  362. }
  363. .no-gutters > [class*="col-"] {
  364. padding-right: 0;
  365. padding-left: 0;
  366. }
  367. </style>
  368. <script type="text/javascript">
  369. // show hide check box
  370. $(".checked").hide();
  371. $(".cash-checked").click(function() {
  372. if($(this).is(":checked")) {
  373. $(".checked").show();
  374. } if($(this).is(":checked")){
  375. $(".nochecked").hide();
  376. } else {
  377. $(".checked").hide();
  378. $(".nochecked").show();
  379. }
  380. });
  381.  
  382. $(document).ready(function(){
  383. let refCheck = $('input[name=ref_checkbox]'),
  384. inputRef = $('input[name=no_referensi]')
  385. @if($action == 'EDIT')
  386. var data = [@foreach($detailData as $item)
  387. {
  388. "no_faktur" : '{{ $item['trans_id'] }}',
  389. "tanggal_bukti" : '{{ \Carbon\Carbon::parse($item['date_trans'])->format('d-m-Y') }}',
  390. "description" : '{{ $item['ref_notes'] }}',
  391. "receive_val" : formatNumber({{ $item['credit'] }}),
  392. "payment_val" : formatNumber({{ $item['debet'] }}),
  393. "doc_ref" : '{{ $item['doc_ref'] }}',
  394. "tc_checkbox" : "<input type='checkbox' checked='false'/>",
  395. "action" : "<div class='dropdown dropdown-right'>\
  396. <a href='#' data-toggle='dropdown' class='' aria-expanded='false'><i class='fa fa-gear'></i></a>\
  397. <ul class='dropdown-menu'>\
  398. <li><a href='#' class='btn-edit-detail'><i class='fa fa-edit fa-fw'></i>Edit</a></li>\
  399. <li><a href='#' class='btn-remove-dynamic'><i class='fa fa-trash-o fa-fw'></i>Delete</a></li>\
  400. </ul>\
  401. </div>",
  402. },
  403. @endforeach]
  404. @endif
  405. /*
  406. * DATATABLE
  407. */
  408. var table = $('.datatable-payment-voucher').DataTable({
  409. autoWidth: false,
  410. drawCallback: function () {
  411. $(this).find('tbody tr').slice(-3).find('.dropdown, .btn-group').addClass('dropup');
  412. },
  413. preDrawCallback: function() {
  414. $(this).find('tbody tr').slice(-3).find('.dropdown, .btn-group').removeClass('dropup');
  415. },
  416. @if($action == 'EDIT')
  417. data: data,
  418. @endif
  419. sDom : '<"top"f>rt<"bottom"lp><"clear">',
  420. "sPaginationType": "extStyle",
  421. "columnDefs": [
  422. { "visible": false, "targets": 5 },
  423. { "sClass": 'text-right', "targets": [3,4] },
  424. ],
  425. columns: [
  426. {data: "no_faktur", defaultColumn: "-"},
  427. {data: "tanggal_bukti", defaultColumn: "-"},
  428. {data: "description", defaultColumn: "-"},
  429. {data: "receive_val", defaultColumn: "-"},
  430. {data: "payment_val",defaultColumn: "-"},
  431. {data: "doc_ref", defaultColumn: "-", },
  432. {data: "tc_checkbox", defaultColumn: "-", orderable: false, searchable: false},
  433. {data: "action", defaultColumn: "-", orderable: false, searchable: false},
  434. ]
  435. });
  436.  
  437. @if($action == 'EDIT')
  438. processTotalValueBelowTable();
  439. @endif
  440.  
  441. /*
  442. * SELECT2
  443. */
  444. $('.select-supplier').select2({
  445. placeholder: 'Select Doctor',
  446. ajax: {
  447. // url: "{{ route('ap.payment-voucher.data-supplier') }}",
  448. url: "{{ route('select.ahd-select-doctor') }}",
  449. data: function(params){
  450. return {
  451. term: params.term
  452. }
  453. },
  454. processResults: function (data) {
  455. return {
  456. results: data
  457. };
  458. },
  459. success: function(response){
  460. }
  461. }
  462. });
  463.  
  464. function formatSelection (state) {
  465. var id_proc = state.account_no;
  466. if(id_proc === undefined)
  467. id_proc = '';
  468. return ((id_proc!='')?(id_proc + ' - ' + state.text):state.text);
  469. }
  470.  
  471. function formatState (state) {
  472. if (!state.id) {
  473. return state.id;
  474. }
  475. var id_proc = state.account_no;
  476. if(id_proc === undefined)
  477. id_proc = '';
  478. var str_state = $(
  479. '<div>' +
  480. id_proc + ' - ' + state.text +
  481. '</div>'
  482. );
  483. return str_state;
  484. }
  485.  
  486. $('.select-bank').select2({
  487. placeholder: 'Select Bank Name',
  488. ajax: {
  489. url: "{{ route('acashbank.data.bank-receipt.get-bankName-data') }}",
  490. data: function(params){
  491. return {
  492. term: params.term
  493. }
  494. },
  495. processResults: function (data) {
  496. return {
  497. results: data
  498. };
  499. },
  500. success: function(response){
  501. $('.select-bank').on('select2:select', function (evt) {
  502. $('select[name=cheque_no]').empty();
  503. var item = evt.params.data;
  504. $('input[name=account_code]').val(item.account_no+' - '+item.bankaccname);
  505. $('input[name=account_bank_name]').val(item.bankaccname);
  506. $('input[name=account_gl_name]').val(item.glaccountname);
  507. $('input[name=account_gl]').val(item.glaccountno);
  508. getDataMainFormBankReceive($(this).val());
  509. });
  510. }
  511. },
  512. templateResult: formatState,
  513. templateSelection: formatSelection
  514. });
  515.  
  516. $('.select-cheque-no').select2({
  517. placeholder: "Select Cheque No",
  518. ajax: {
  519. url: "{{ route('ap.payment-voucher.data.get-cheque-data') }}",
  520. data: function(){
  521. return {
  522. gl_account: $('input[name=account_gl]').val(),
  523. bank_acc_no: $('input[name=account_code]').val().split('-')[0].replace(' ',''),
  524. bank_id: $('.select-bank').val()
  525. };
  526. },
  527. processResults: function (data) {
  528. return {
  529. results: data
  530. };
  531. },
  532. success: function(response){
  533.  
  534. }
  535. }
  536. });
  537.  
  538. // Event
  539. $('.select-supplier').on('select2:select', function(evt){
  540. var item = evt.params.data;
  541. table.clear();
  542. if(refCheck.prop('checked') === false) {
  543. $('textarea[name=city]').val(item.kota);
  544. $('.select-bank').prop('disabled', false);
  545. $('.select-cheque-no').prop('disabled', false);
  546. $('input[name=cheque_due]').prop('disabled', false);
  547. getDetailData(item.id);
  548. } else {
  549.  
  550. inputRef.prop('disabled', false);
  551. $('.select-bank').prop('disabled', false);
  552. getDetailData(item.id);
  553. }
  554. })
  555.  
  556. /*
  557. * DATEPICKER
  558. */
  559. $('.jqui-datepicker').datepicker();
  560.  
  561. /*
  562. * FUNCTION
  563. */
  564.  
  565. function processTotalValueBelowTable(){
  566. generateTotal();
  567. generateRemainingDebt();
  568.  
  569. }
  570.  
  571. function generateTotal(){
  572. if(!!table.rows().data()){
  573. var paymentArray = [];
  574. var receiveArray = [];
  575. for(let i = 0; i < table.rows().data().length; i++){
  576. var payment = paymentArray.push(table.rows().data()[i].payment_val);
  577. var receive = receiveArray.push(table.rows().data()[i].receive_val) ;
  578. }
  579.  
  580. console.log('payment :',payment);
  581. console.log('receive :',receive);
  582.  
  583. var resultPayment = 0;
  584. if(paymentArray.length != 0){
  585. var resultPayment = paymentArray.reduce(function(x,y){
  586. return x + y;
  587. });
  588. }
  589.  
  590. var resultReceive = 0;
  591. if(receiveArray.length != 0){
  592. var resultReceive = receiveArray.reduce(function(x,y){
  593. return x + y;
  594. });
  595. }
  596.  
  597. var a = $('input[name=total_payment]').val(resultPayment);
  598. console.log('ttl payment :',a);
  599. var b = $('input[name=total_debt]').val(resultReceive);
  600. console.log('ttl debt :',b);
  601. }
  602. }
  603.  
  604. function generateRemainingDebt(){
  605. var payment = $('input[name=total_payment]').val();
  606. var receive = $('input[name=total_debt]').val();
  607. var total = receive-payment;
  608. $('input[name=remaining_debt]').val(total);
  609.  
  610. console.log('payment new :',payment);
  611. console.log('receive new:',receive);
  612. console.log('total:',total);
  613.  
  614. }
  615.  
  616. function getDataMainFormBankReceive(no_acc){
  617. $.get({
  618. url: "{{ url('acashbank/bank-receipt/get-balance-account-data') }}" + '?bank_id=' + String(no_acc),
  619. success: function (response) {
  620. var response_output = JSON.parse(response);
  621. var data = response_output.data;
  622. var balance = response_output.balance;
  623. $('input[name=balance_bank]').val(formatNumber(balance.bank));
  624. $('input[name=gl_balance]').val(formatNumber(balance.gl));
  625. }
  626. });
  627.  
  628. }
  629.  
  630. function getDetailData(code){
  631. $.post({
  632. url: "{{ route('ahd.voucher-piutang.doctor-detail') }}",
  633. data: {
  634. code: code,
  635. date_from : $('#filter-table-date-from').val(),
  636. date_to : $('#filter-table-date-to').val()
  637. },
  638. success: function(response){
  639. for(let i = 0; i < table.rows().data().length; i++){
  640. var o = table.rows().data()[i].no_faktur;
  641.  
  642. if(o == response.trans_id){
  643. swal('','Data already added','error');
  644. return false;
  645. }
  646.  
  647. }
  648.  
  649. function formatDate(date){
  650. var o = new Date(date).toJSON();
  651. return o.slice(0,-14);
  652. }
  653.  
  654. for(let i = 0; i < response.length ; i++){
  655. var checkbox = 'checkbox';
  656. table.row.add({
  657. 'no_faktur' : response[i].trans_id,
  658. 'tanggal_bukti': formatDate(response[i].date_trans),
  659. 'pasien_name': response[i].notes,
  660. 'description': 'Piutang Usaha'+ ' ' + response[i].notes,
  661. 'receive_val': response[i].debet,
  662. 'payment_val': response[i].credit,
  663. 'doc_ref': response[i].notes,
  664. 'tc_checkbox': '<input type="'+checkbox+'" class="dt-checkbox'+table.rows().data().length+'"></input>',
  665. 'action': "<div class='dropdown dropdown-right'>\
  666. <a href='#' data-toggle='dropdown' class='' aria-expanded='false'><i class='fa fa-gear'></i></a>\
  667. <ul class='dropdown-menu'>\
  668. <li><a href='#' class='btn-edit-detail'><i class='fa fa-edit fa-fw'></i>Edit</a></li>\
  669. <li><a href='#' class='btn-remove-dynamic'><i class='fa fa-trash-o fa-fw'></i>Delete</a></li>\
  670. </ul>\
  671. </div>",
  672. }).draw();
  673.  
  674. }
  675. processTotalValueBelowTable();
  676. console.log(processTotalValueBelowTable());
  677.  
  678. }
  679. });
  680.  
  681. }
  682.  
  683. $('#filter-table-date-from').on('change',function(evn){
  684. var data_proc = $('.select-supplier').select2('data')[0];
  685. table.clear().draw();
  686. if(data_proc != undefined)
  687. getDetailData(data_proc.partner_id);
  688. });
  689. $('#filter-table-date-to').on('change',function(evn){
  690. var data_proc = $('.select-supplier').select2('data')[0];
  691. table.clear().draw();
  692. if(data_proc != undefined)
  693. getDetailData(data_proc.partner_id);
  694. });
  695.  
  696. function processEquality(){
  697. var o = table.rows();
  698. if(o.length !== 0){
  699. function switchCallback(index){
  700. let indexValue = this.data()
  701. var allClass = indexValue.tc_checkbox.split('"');
  702. var checked = $('.'+allClass[3]).prop('checked');
  703. if(checked){
  704. this.data({
  705. 'no_faktur' : indexValue.no_faktur,
  706. 'tanggal_bukti': indexValue.tanggal_bukti,
  707. 'pasien_name': indexValue.pasien_name,
  708. 'description': indexValue.description,
  709. 'receive_val': indexValue.payment_val,
  710. 'payment_val': indexValue.payment_val,
  711. 'doc_ref': indexValue.doc_ref,
  712. 'tc_checkbox': '<input type="checkbox" class="'+allClass[3]+'" checked="true"></input>',
  713. 'action': indexValue.action,
  714. }).draw();
  715. }
  716.  
  717. }
  718.  
  719. o.every(switchCallback);
  720. $('.datatable-payment-voucher').find('#dt-header-cb').prop('checked', false);
  721. processTotalValueBelowTable();
  722. }
  723.  
  724. }
  725.  
  726. function checkSave(){
  727.  
  728. if(refCheck.prop('checked') === false)
  729. {
  730. if($('.select-bank').select2('data')[0] == null)
  731. {
  732. $('.select-bank').focus();
  733. sweetAlert('Erorr','Cash code/bank can not be empty!','error');
  734. return false;
  735. }
  736. } else {
  737.  
  738. if($('.select-bank').select2('data')[0] == null)
  739. {
  740. $('.select-bank').focus();
  741. sweetAlert('Erorr','Cash code/bank can not be empty!','error');
  742. return false;
  743. }
  744. }
  745.  
  746. if($('.select-supplier').select2('data')[0] == null){
  747. $('.select-supplier').focus();
  748. sweetAlert('Erorr','Supplier can not be empty!','error');
  749. return false;
  750. }
  751.  
  752. if(refCheck.prop('checked') === false) {
  753. var checkedElement = [
  754. {
  755. name: 'Supplier',
  756. value : $('.select-supplier').select2('data'),
  757. },
  758. {
  759. name: 'Bank',
  760. value: $('.select-bank').select2('data'),
  761. },
  762. {
  763. name: 'Cheque No',
  764. value: $('.select-cheque-no').select2('data'),
  765. }
  766. ];
  767.  
  768. function switchCallback(indexValue, index, array){
  769. var results = false;
  770. switch (indexValue.value.length) {
  771. case 0 :
  772. swal('', indexValue.name+' cannot be empty', 'error');
  773. results = false;
  774. break;
  775. default :
  776. results = true;
  777. }
  778.  
  779. return results;
  780.  
  781. };
  782.  
  783. var o = checkedElement.every(switchCallback);
  784. if(formatMoneyToNumber($('input[name=balance_bank]').val()) <= 0){
  785. // $('input[name=balance_bank]').focus()
  786. // $('input[name=b]').focus()
  787. // swal('Error','Bank balance can not be empty or minus!', 'error');
  788. // return false;
  789. }
  790.  
  791. return o;
  792. } else {
  793.  
  794. if(inputRef.val() === '' ){
  795.  
  796. swal('Error', 'No. Reference cannot be empty', 'error')
  797. return false
  798. } else if($('.select-bank').select2('data').length == 0) {
  799.  
  800. swal('Error', 'Select Bank cannot be empty', 'error')
  801. return false
  802. } else {
  803.  
  804. return true;
  805. }
  806. }
  807. }
  808.  
  809. function fetchDatatableData(){
  810. var o = table.rows();
  811. var formdata = $('.forms').serializeArray();
  812. if(refCheck.prop('checked') === true) {
  813.  
  814. formdata.push(
  815. {
  816. name: 'cheque_no',
  817. value: '',
  818. },
  819. {
  820. name: 'book_no',
  821. value: ''
  822. },
  823. {
  824. name: 'supplier_name',
  825. value: $('.select-supplier').select2('data')[0].text
  826. },
  827. {
  828. name: 'gl_partner',
  829. value: $('.select-supplier').select2('data')[0].id
  830. }
  831. )
  832. } else {
  833. formdata.push(
  834. {
  835. name: 'supplier_name',
  836. value: $('.select-supplier').select2('data')[0].text
  837. },
  838. {
  839. name: 'book_no',
  840. value: $('select[name=cheque_no]').select2('data')[0] === undefined ? '' : $('select[name=cheque_no]').select2('data')[0].book_no
  841. },
  842. {
  843. name: 'gl_partner',
  844. value: $('.select-supplier').select2('data')[0].id
  845. }
  846. );
  847. }
  848. var detaildata = [];
  849. function switchCallback(index){
  850. let indexValue = this.data()
  851. var allClass = indexValue.tc_checkbox.split('"');
  852. let status = 0;
  853. var checked = $('.'+allClass[3]).prop('checked');
  854. if(checked){
  855. var rData = this.data();
  856.  
  857. detaildata.push([
  858. {
  859. no_faktur : rData.no_faktur,
  860. },
  861. {
  862. description : rData.description,
  863. },
  864. {
  865. tanggal_bukti : rData.tanggal_bukti,
  866. },
  867. {
  868. payment: rData.payment_val
  869. },
  870. {
  871. receive: rData.receive_val
  872. },
  873. {
  874. doc_ref: rData.doc_ref
  875. }
  876. ]);
  877. status += 1;
  878. }
  879. }
  880. o.every(switchCallback);
  881.  
  882. if(detaildata.length == 0){
  883. swal('Error','No data selected', 'error');return false;
  884. }
  885. var data = { _token : '{{ csrf_token() }}', formdata, detaildata };
  886.  
  887. return data;
  888.  
  889. }
  890.  
  891. function btnEditModal(data){
  892. function setModalForm(data){
  893. var modal = $('.detail-modal');
  894. modal.find('input[name=no_faktur]').val(data.no_faktur);
  895. modal.find('input[name=tanggal_bukti]').val(data.tanggal_bukti);
  896. modal.find('textarea[name=detail_descriptions]').val(data.description);
  897. modal.find('input[name=detail_total_debt]').val(data.receive_val);
  898. modal.find('input[name=detail_total_payment]').val(data.payment_val);
  899. }
  900.  
  901. setModalForm(data);
  902. }
  903.  
  904. function setDatatable(selector){
  905. var receipt = formatMoneyToNumber($('input[name=detail_total_debt]').val());
  906. var payment = formatMoneyToNumber($('input[name=detail_total_payment]').val());
  907. var substraction = new BigNumber(receipt).toNumber() - new BigNumber(payment).toNumber();
  908. if(substraction < 0){
  909. swal('Error', 'Total payment more than total payment', 'error');
  910. return false;
  911. } else if(payment == 0) {
  912.  
  913. swal('Error', 'Total Payment cannot be zero', 'error');
  914. return false;
  915. } else {
  916. var data =selector.data();
  917. var allClass = data.tc_checkbox.split('"');
  918. console.log(allClass);
  919. selector.data({
  920. 'no_faktur' : data.no_faktur,
  921. 'tanggal_bukti': data.tanggal_bukti,
  922. 'pasien_name': data.pasien_name,
  923. 'description': data.description,
  924. 'receive_val': data.receive_val,
  925. 'payment_val': payment,
  926. 'doc_ref': data.doc_ref,
  927. 'tc_checkbox': '<input type="checkbox" class="'+ allClass[1] +'" checked="">',
  928. 'action': data.action,
  929. });
  930.  
  931. $('#transaction-modal').modal('hide');
  932. processTotalValueBelowTable();
  933. }
  934. }
  935.  
  936. function btnSaveOnClick(stat){
  937. var data = fetchDatatableData();
  938. if(stat){
  939. $.ajax({
  940. url: "{{ route('ahd.vouche-piutang.store') }}",
  941. data: data,
  942. method:"POST",
  943. success: function(response){
  944. swal('Success','Successfully save data', 'success');
  945. // var trx_id = $('input[name=trans_no]').val();
  946. console.log(trx_id);
  947. swal("Success!", "successfully saved data", "success");
  948. // window.open("{{route('ap.payment-voucher.print')}}"+'?'+'journal_id'+'='+trx_id,'mywindows','width=1000,height=600');
  949. console.log(response);
  950. setTimeout(function(){
  951. location.href = "{{ route('ahd.vouche-piutang.index') }}";
  952. }, 2000);
  953. }
  954. });
  955.  
  956. }
  957.  
  958. }
  959.  
  960. function btnUpdateOnClick(stat){
  961. var data = fetchDatatableData();
  962. if(stat){
  963. $.ajax({
  964. url: "{{ route('ahd.vouche-piutang.update') }}",
  965. data: data,
  966. method:"POST",
  967. success: function(response){
  968. swal('Success','Successfully save data', 'success');
  969. // var trx_id = $('input[name=trans_no]').val();
  970. console.log(trx_id);
  971. swal("Success!", "successfully saved data", "success");
  972. // window.open("{{route('ap.payment-voucher.print')}}"+'?'+'journal_id'+'='+trx_id,'mywindows','width=1000,height=600');
  973. console.log(response);
  974. // setTimeout(function(){
  975. // location.href = "{{ route('ahd.vouche-piutang.index') }}";
  976. // }, 2000);
  977. }
  978. });
  979.  
  980. }
  981.  
  982. }
  983.  
  984. /*
  985. * Event
  986. */
  987. $(document).on('click', '.btn-simpan', function(e){
  988. if($(this).attr('disabled') === "disabled" ){
  989.  
  990. console.log('aw')
  991. return false;
  992. } else if ($('input[name=total_payment]').val() == '0.00') {
  993.  
  994. swal('Error', 'Total Payment cannot be zero', 'error')
  995. return false;
  996. }
  997.  
  998. if(checkSave()){
  999. swal({
  1000. 'title': 'Save Data',
  1001. 'text': 'Are you sure to save this data?',
  1002. 'type': 'warning',
  1003. 'showCancelButton': true,
  1004. 'closeOnConfirm': false,
  1005. }, function(isConfirm){
  1006. if(isConfirm){
  1007. btnSaveOnClick(true);
  1008. }
  1009. else{
  1010. swal.close();
  1011. }
  1012. })
  1013. } else {
  1014. e.preventDefault();
  1015. }
  1016.  
  1017. });
  1018.  
  1019. $(document).on('click', '.btn-edit-simpan', function(e){
  1020. if($(this).attr('disabled') === "disabled" ){
  1021.  
  1022. console.log('aw')
  1023. return false;
  1024. } else if ($('input[name=total_payment]').val() == '0.00') {
  1025.  
  1026. swal('Error', 'Total Payment cannot be zero', 'error')
  1027. return false;
  1028. }
  1029.  
  1030. if(checkSave()){
  1031. swal({
  1032. 'title': 'Update Data',
  1033. 'text': 'Are you sure to update this data?',
  1034. 'type': 'warning',
  1035. 'showCancelButton': true,
  1036. 'closeOnConfirm': false,
  1037. }, function(isConfirm){
  1038. if(isConfirm){
  1039. btnUpdateOnClick(true);
  1040. }
  1041. else{
  1042. swal.close();
  1043. }
  1044. })
  1045. } else {
  1046. e.preventDefault();
  1047. }
  1048.  
  1049. });
  1050. $(document).on('click', '.btn-edit-detail', function(e){
  1051. var o = table.row($(this).parents('tr'));
  1052. var rid = table.row($(this).parents('tr')).index();
  1053. $('input[name=rid]').val(rid);
  1054. $('#transaction-modal').modal('show');
  1055. btnEditModal(o.data());
  1056.  
  1057. });
  1058.  
  1059. $('.btn-save-detail').on('click', function(e){
  1060. var rid = $('input[name=rid]').val();
  1061. var o = table.row(rid);
  1062. setDatatable(o);
  1063. });
  1064.  
  1065. refCheck.on('change', function(e){
  1066.  
  1067. if($(this).prop('checked') === false) {
  1068.  
  1069. inputRef.attr('readonly', true)
  1070. $('.select-bank').attr('disabled', false)
  1071. $('.select-cheque-no').attr('disabled', false)
  1072. inputRef.val('').prop('readonly', true)
  1073. } else {
  1074.  
  1075. inputRef.attr('readonly', false)
  1076. $('.select-bank').empty()
  1077. $('input[name=account_code]').val('')
  1078. $('input[name=balance_bank]').val('0.00')
  1079. $('.select-cheque-no').attr('disabled', true)
  1080. $('.select-cheque-no').empty()
  1081. }
  1082. })
  1083.  
  1084. $('.btn-cancel').on('click', function(e){
  1085. swal({
  1086. title: "Cancel",
  1087. text: "Are you sure to cancel this transaction?",
  1088. type: "warning",
  1089. showCancelButton: true,
  1090. confirmButtonColor: "#DD6B55",
  1091. confirmButtonText: "Yes",
  1092. closeOnConfirm: false,
  1093. }, function(isConfirm){
  1094. if(isConfirm)
  1095. location.href = "{{ url('aaccountpay/payment-voucher') }}";
  1096. else
  1097. swal.close();
  1098. });
  1099. });
  1100. $(document).on('click', '.btn-process-equality', processEquality);
  1101. $('input[name=detail_total_debt]').autoNumeric('init', {vMin: '-9999999999999999.99', vMax: '9999999999999999999999999999999999999999.99'});
  1102. $('input[name=detail_total_payment]').autoNumeric('init', {vMin: '-9999999999999999999999.99', vMax: '999999999999999999999999999999999.99'});
  1103. });
  1104.  
  1105. function btnDelete(){
  1106. var id = $('input[name=trans_no]').val();
  1107. $.ajax({
  1108. url: "{{ route('ahd.vouche-piutang.delete') }}",
  1109. method: "post",
  1110. data: { code : id},
  1111. success: function(response){
  1112. swal('Data successfully delete!','','success');
  1113. setTimeout(function(){
  1114. location.href = "{{ route('ahd.vouche-piutang.index') }}";
  1115. }, 2300);
  1116. }
  1117. });
  1118. }
  1119.  
  1120. $(document).on('click', '.btn-delete', function(){
  1121. swal({
  1122. title: "Delete Data",
  1123. text: "Are you sure to delete this data?",
  1124. type: 'warning',
  1125. showCancelButton: true,
  1126. closeOnConfirm: false,
  1127. }, function(isConfirm){
  1128. if(isConfirm){
  1129. btnDelete();
  1130. } else {
  1131. swal.close();
  1132. }
  1133. })
  1134. });
  1135.  
  1136. $(document).on('click', '.btn-show-hide', function(){
  1137. let value = $(this).text() == " <<< Hide " ? " Show >>> " : " <<< Hide ";
  1138. $(this).text(value);
  1139. })
  1140.  
  1141. //select2 cash bank CFalse
  1142. $('.select2-cash-bank-no-checked').select2({
  1143. placeholder: 'Select Bank Name',
  1144. ajax: {
  1145. url: "{{ route('select.ahd-cash-bank-cfalse') }}",
  1146. processResults: function (data) {
  1147. return {
  1148. results: data
  1149. };
  1150. },
  1151. success: function(response){
  1152. $('.select2-cash-bank-no-checked').on('select2:select', function (evt) {
  1153. var data = evt.params.data;
  1154. $('input[name=bank_accaunt]').val(data.text3);
  1155. getDataMainFormBankReceive($(this).val());
  1156. });
  1157. }
  1158. }
  1159. });
  1160.  
  1161.  
  1162. //select2 cash bank CTrue
  1163. $('.select2-cash-bank-checked').select2({
  1164. placeholder: 'Select Bank Name',
  1165. ajax: {
  1166. url: "{{ route('select.ahd-cash-bank-ctrue') }}",
  1167. processResults: function (data) {
  1168. return {
  1169. results: data
  1170. };
  1171. },
  1172. success: function(response){
  1173. $('.select2-cash-bank-checked').on('select2:select', function (evt) {
  1174. var data = evt.params.data;
  1175. $('input[name=balance]').val(data.text2);
  1176. $('input[name=bank_accaunt]').val(data.id);
  1177. });
  1178. }
  1179. }
  1180.  
  1181. });
  1182. </script>
  1183. @endpush
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement