143 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| @extends('app.app')
 | |
| @section('title')
 | |
|     Finance - Dana
 | |
| @endsection
 | |
| 
 | |
| @section('content')
 | |
|     <div class="container-fluid">
 | |
|         <div class="content">
 | |
|             <div class="row">
 | |
|                 <div class="col-sm-12 col-md-6">
 | |
|                     <div class="card">
 | |
|                         <div class="card-body">
 | |
|                             <p class="text-dark text-bold mb-2">Konfigurasi Dana</p>
 | |
|                             <p class="mb-2 border-bottom"></p>
 | |
|                             <form id="formDanaUpdt">
 | |
|                                 <div class="form-group mb-3 d-none">
 | |
|                                     <label for="dana_id" class="form-label">Saldo Dana <span class="text-danger">*</span></label>
 | |
|                                     <input type="number" id="dana_id" name="dana_id" class="form-control" value="{{ $dana->id }}" required />
 | |
|                                 </div>
 | |
|                                 <div class="form-group mb-3">
 | |
|                                     <label for="amt" class="form-label">Saldo Dana <span class="text-danger">*</span></label>
 | |
|                                     <input type="text" id="amt" name="amt" class="form-control" value="{{ $dana->amt }}" required />
 | |
|                                 </div>
 | |
|                                 <div class="form-group mb-3 text-end">
 | |
|                                     <button type="button" id="btnUpdtDana" class="btn btn-sm btn-primary">Save</button>
 | |
|                                     <div id="btnUpdtDanaSpinner" class="d-none">
 | |
|                                         <div class="spinner-border" role="status">
 | |
|                                             <span class="visually-hidden">Loading...</span>
 | |
|                                         </div>
 | |
|                                     </div>
 | |
|                                 </div>
 | |
|                             </form>
 | |
|                         </div>
 | |
|                     </div>
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
|     </div>
 | |
| @endsection
 | |
| 
 | |
| @section('customjs')
 | |
|     <script>
 | |
|         'use strict'
 | |
| 
 | |
|         const State = {
 | |
|             delay_type_number: 1000,
 | |
|             storage_lara: "{{ asset('storage') }}/",
 | |
|             file_jimp_worker: "{{ asset('assets/js/worker/jimp.js') }}",
 | |
|         };
 | |
| 
 | |
|         const Wrapper = {
 | |
|             activate: function() {
 | |
|                 DanaUpdt.activate();
 | |
|             },
 | |
|         };
 | |
| 
 | |
|         const DanaUpdt = {
 | |
|             activate: function() {
 | |
|                 DanaUpdt.event();
 | |
|             },
 | |
|             event: function() {
 | |
|                 $('#btnUpdtDana').on('click', async function(e) {
 | |
|                     e.preventDefault();
 | |
|                     const data = DanaUpdt.getData();
 | |
|                     if (!DanaUpdt.checkData(data, true)) return false;
 | |
|                     DanaUpdt.submitData(data);
 | |
|                 });
 | |
|                 // input
 | |
|                 $('#amt').on('keyup', function() {
 | |
|                     let price = $('#amt').val().split('.').join('');
 | |
|                     $('#amt').val((new Intl.NumberFormat('id-ID')).format(price));
 | |
|                 });
 | |
|             },
 | |
|             getData: function(props) {
 | |
|                 const data = Helper.objectifyForm($('#formDanaUpdt').serializeArray());
 | |
|                 data.amt = $('#amt').val().split('.').join('');
 | |
| 
 | |
|                 return data;
 | |
|             },
 | |
|             checkData: function(data, isAlert = false) {
 | |
|                 if (data.amt.length < 4) {
 | |
|                     if (isAlert) Helper.toast('Warning', 'just now', 'Saldo Dana wajib diisi');
 | |
|                     return false;
 | |
|                 }
 | |
|                 return true;
 | |
|             },
 | |
|             submitData: async function(data) {
 | |
|                 return new Promise((resolve, reject) => {
 | |
|                     if (typeof $('#btnUpdtDana').attr('disabed') != 'undefined') {
 | |
|                         resolve({
 | |
|                             type: 'fail'
 | |
|                         });
 | |
|                         return false;
 | |
|                     }
 | |
|                     $('#btnUpdtDana').attr('disabed', true);
 | |
|                     $('#btnUpdtDanaSpinner').removeClass('d-none');
 | |
|                     $.ajax({
 | |
|                         url: "{{ route('api_edit_dana', '') }}/" + data.dana_id,
 | |
|                         method: 'PUT',
 | |
|                         crossDomain: true,
 | |
|                         processData: true,
 | |
|                         headers: {
 | |
|                             'x-api-key': Helper.getCookie('_trtk'),
 | |
|                             'x-csrf-token': $('meta[name="csrf-token"]').attr('content'),
 | |
|                         },
 | |
|                         data,
 | |
|                         success: (data, textStatus, jqXHR) => {
 | |
|                             $('#btnUpdtDana').removeAttr('disabed');
 | |
|                             $('#btnUpdtDanaSpinner').addClass('d-none');
 | |
|                             if (data.meta.type != 'success') {
 | |
|                                 resolve({
 | |
|                                     type: 'fail'
 | |
|                                 });
 | |
|                                 Helper.toast('Warning', 'just now', data.meta.message);
 | |
|                                 return false;
 | |
|                             }
 | |
|                             resolve({
 | |
|                                 type: 'success'
 | |
|                             });
 | |
|                             Helper.toast('Success', 'sukses update saldo', data.meta.message);
 | |
|                         },
 | |
|                         error: (jqXHR, textStatus, error) => {
 | |
|                             $('#btnUpdtDana').removeAttr('disabed');
 | |
|                             $('#btnUpdtDanaSpinner').addClass('d-none');
 | |
|                             if (jqXHR.status >= 500) {
 | |
|                                 Helper.toast('Error', 'just now', 'Please try again');
 | |
|                             } else {
 | |
|                                 Helper.toast('Error', 'just now', jqXHR.responseJSON.meta
 | |
|                                     .message);
 | |
|                             }
 | |
|                             resolve({
 | |
|                                 type: 'error'
 | |
|                             });
 | |
|                         }
 | |
|                     })
 | |
|                 })
 | |
|             },
 | |
|         }
 | |
| 
 | |
|         Wrapper.activate();
 | |
|     </script>
 | |
| @endsection
 | 
