Perbaiki server python
This commit is contained in:
parent
e9f52bed7a
commit
7d04d0272c
@ -172,10 +172,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="media-title">{{ $user->nama_lengkap }}</div>
|
<div class="media-title">{{ $user->nama_lengkap }}</div>
|
||||||
|
<?php
|
||||||
|
$divided = floatval($user->total_transaksi_berhasil + $user->total_refund_berhasil);
|
||||||
|
?>
|
||||||
<div class="mt-1">
|
<div class="mt-1">
|
||||||
<div class="budget-price">
|
<div class="budget-price">
|
||||||
<div class="budget-price-square bg-primary"
|
<div class="budget-price-square bg-primary"
|
||||||
data-width="{{ (floatval($user->total_transaksi_berhasil) * 100) / (floatval($user->total_transaksi_berhasil) + floatval($user->total_refund_berhasil)) / 1.5 }}%">
|
data-width="{{ $divided == 0 ? '1' : ($floatval($user->total_transaksi_berhasil) * 100) / $divided }}%">
|
||||||
</div>
|
</div>
|
||||||
<div class="budget-price-label">Rp
|
<div class="budget-price-label">Rp
|
||||||
{{ number_format($user->total_transaksi_berhasil, 2, ',', '.') }}
|
{{ number_format($user->total_transaksi_berhasil, 2, ',', '.') }}
|
||||||
@ -183,7 +186,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="budget-price">
|
<div class="budget-price">
|
||||||
<div class="budget-price-square bg-danger"
|
<div class="budget-price-square bg-danger"
|
||||||
data-width="{{ (floatval($user->total_refund_berhasil) * 100) / (floatval($user->total_transaksi_berhasil) + floatval($user->total_refund_berhasil)) / 1.5 }}%">
|
data-width="{{ $divided == 0 ? '1' : ($floatval($user->total_transaksi_berhasil) * 100) / $divided }}%">
|
||||||
</div>
|
</div>
|
||||||
<div class="budget-price-label">Rp
|
<div class="budget-price-label">Rp
|
||||||
{{ number_format($user->total_refund_berhasil, 2, ',', '.') }}
|
{{ number_format($user->total_refund_berhasil, 2, ',', '.') }}
|
||||||
|
@ -69,11 +69,13 @@
|
|||||||
</div><br>
|
</div><br>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-2"><strong>Total Bayar</strong></div>
|
<div class="col-2"><strong>Total Bayar</strong></div>
|
||||||
<div class="col">{{ $refund->transaction->total_bayar }}</div>
|
<div class="col">Rp {{ number_format($refund->transaction->total_bayar, 2, ',', '.') }}
|
||||||
|
</div>
|
||||||
</div><br>
|
</div><br>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-2"><strong>Total Refund</strong></div>
|
<div class="col-2"><strong>Total Refund</strong></div>
|
||||||
<div class="col">{{ $refund->transaction->total_harga }}</div>
|
<div class="col">Rp {{ number_format($refund->transaction->total_harga, 2, ',', '.') }}
|
||||||
|
</div>
|
||||||
</div><br>
|
</div><br>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-2"><strong>Batas Pengajuan Refund</strong></div>
|
<div class="col-2"><strong>Batas Pengajuan Refund</strong></div>
|
||||||
|
@ -247,9 +247,9 @@
|
|||||||
<hr>
|
<hr>
|
||||||
@endif
|
@endif
|
||||||
<div class="text-md-right">
|
<div class="text-md-right">
|
||||||
<button class="btn btn-warning btn-icon icon-left" id="btnPDF"
|
<a class="btn btn-warning btn-icon icon-left"
|
||||||
data-id="{{ $transaction->id }}"><i
|
href="{{ route('invoice.get', $transaction->id) }}"><i
|
||||||
class="fa fa-print fa-lg m-2"></i>Print</button>
|
class="fa fa-print fa-lg m-2"></i>Invoice</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -430,11 +430,6 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#btnPDF').on('click', function() {
|
|
||||||
const id = $(this).data('id');
|
|
||||||
location.href = "{{ route('invoice.get', ':id') }}".replace(':id', id);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
|
@ -19,12 +19,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex flex-column">
|
<div class="d-flex flex-column">
|
||||||
@if ($user->foto_profil == null)
|
@if ($user->foto_profile == null)
|
||||||
<img src="{{ asset('assets/img/avatar/avatar-6.png') }}"
|
<img src="{{ asset('assets/img/avatar/avatar-6.png') }}"
|
||||||
class="rounded-circle shadow align-self-center"style="max-width: 130px;"
|
class="rounded-circle shadow align-self-center"style="max-width: 130px;"
|
||||||
alt="" srcset="">
|
alt="" srcset="">
|
||||||
@else
|
@else
|
||||||
<img src="{{ asset('storage/foto-profil/' . $user->foto_profil) }}"
|
<img src="{{ asset('storage/foto-profile/' . $user->foto_profile) }}"
|
||||||
class="rounded-circle shadow align-self-center" style="max-width: 130px;"
|
class="rounded-circle shadow align-self-center" style="max-width: 130px;"
|
||||||
alt="" srcset="">
|
alt="" srcset="">
|
||||||
@endif
|
@endif
|
||||||
|
@ -43,8 +43,22 @@
|
|||||||
</div>
|
</div>
|
||||||
</div><br>
|
</div><br>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-2"><strong>Total</strong></div>
|
<div class="col-2"><strong>Harga Satuan Barang</strong></div>
|
||||||
<div class="col">{{ $refund->total }}</div>
|
<div class="col">{{ $refund->transaction->satuan_barang }}</div>
|
||||||
|
</div><br>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-2"><strong>Jumlah Barang</strong></div>
|
||||||
|
<div class="col">{{ $refund->transaction->jumlah_barang }}</div>
|
||||||
|
</div><br>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-2"><strong>Total Bayar</strong></div>
|
||||||
|
<div class="col">Rp {{ number_format($refund->transaction->total_bayar, 2, ',', '.') }}
|
||||||
|
</div>
|
||||||
|
</div><br>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-2"><strong>Total Refund</strong></div>
|
||||||
|
<div class="col">Rp {{ number_format($refund->transaction->total_harga, 2, ',', '.') }}
|
||||||
|
</div>
|
||||||
</div><br>
|
</div><br>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-2"><strong>Batas Pengajuan Refund</strong></div>
|
<div class="col-2"><strong>Batas Pengajuan Refund</strong></div>
|
||||||
|
@ -237,6 +237,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
|
<div class="text-md-right">
|
||||||
|
<a class="btn btn-warning btn-icon icon-left"
|
||||||
|
href="{{ route('invoice.get', $transaction->id) }}"><i
|
||||||
|
class="fa fa-print fa-lg m-2"></i>Invoice</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -12,42 +12,41 @@ app = Flask(__name__)
|
|||||||
|
|
||||||
@app.route('/', methods=['GET'])
|
@app.route('/', methods=['GET'])
|
||||||
def hello():
|
def hello():
|
||||||
pesan = request.args.get('pesan')
|
return jsonify({'response': 'Hello, Flask!'})
|
||||||
return jsonify({'response': 'Hello, Flask! '+pesan})
|
|
||||||
|
|
||||||
|
|
||||||
@app.route('/test-form', methods=['POST'])
|
# @app.route('/test-form', methods=['POST'])
|
||||||
def test_form():
|
# def test_form():
|
||||||
nama = request.form['nama']
|
# nama = request.form['nama']
|
||||||
return jsonify({'response': f'Halo, {nama}!'})
|
# return jsonify({'response': f'Halo, {nama}!'})
|
||||||
|
|
||||||
|
|
||||||
@app.route('/test-form-image', methods=['POST'])
|
# @app.route('/test-form-image', methods=['POST'])
|
||||||
def test_form_image():
|
# def test_form_image():
|
||||||
# image = request.form['image']
|
# # image = request.form['image']
|
||||||
# all_data = {**request.args.to_dict(), **request.form.to_dict(),
|
# # all_data = {**request.args.to_dict(), **request.form.to_dict(),
|
||||||
# **request.files.to_dict()}
|
# # **request.files.to_dict()}
|
||||||
# return jsonify(request.files)
|
# # return jsonify(request.files)
|
||||||
if 'image' in request.files:
|
# if 'image' in request.files:
|
||||||
uploaded_file = request.files['image']
|
# uploaded_file = request.files['image']
|
||||||
# Melihat informasi tentang file
|
# # Melihat informasi tentang file
|
||||||
# print(f"File Name: {uploaded_file.filename}")
|
# # print(f"File Name: {uploaded_file.filename}")
|
||||||
# print(f"Content Type: {uploaded_file.content_type}")
|
# # print(f"Content Type: {uploaded_file.content_type}")
|
||||||
if uploaded_file.filename == '':
|
# if uploaded_file.filename == '':
|
||||||
return 'No selected file'
|
# return 'No selected file'
|
||||||
|
|
||||||
# Mendapatkan lokasi dari file Python yang sedang berjalan
|
# # Mendapatkan lokasi dari file Python yang sedang berjalan
|
||||||
current_directory = os.path.dirname(os.path.abspath(__file__))
|
# current_directory = os.path.dirname(os.path.abspath(__file__))
|
||||||
uploaded_file.save(os.path.join(
|
# uploaded_file.save(os.path.join(
|
||||||
current_directory, uploaded_file.filename))
|
# current_directory, uploaded_file.filename))
|
||||||
|
|
||||||
return 'File berhasil diunggah dan disimpan!'
|
# return 'File berhasil diunggah dan disimpan!'
|
||||||
# Anda dapat melakukan operasi lain di sini dengan file yang diunggah
|
# # Anda dapat melakukan operasi lain di sini dengan file yang diunggah
|
||||||
# Misalnya, menyimpannya ke sistem file dengan:
|
# # Misalnya, menyimpannya ke sistem file dengan:
|
||||||
# uploaded_file.save('lokasi_direktori_dan_nama_file_yang_diinginkan')
|
# # uploaded_file.save('lokasi_direktori_dan_nama_file_yang_diinginkan')
|
||||||
# return 'File berhasil diunggah!'
|
# # return 'File berhasil diunggah!'
|
||||||
else:
|
# else:
|
||||||
return 'Tidak ada file yang diunggah!'
|
# return 'Tidak ada file yang diunggah!'
|
||||||
|
|
||||||
|
|
||||||
@app.route('/process-image', methods=['POST'])
|
@app.route('/process-image', methods=['POST'])
|
||||||
@ -57,9 +56,10 @@ def process_image():
|
|||||||
if uploaded_file.filename == '':
|
if uploaded_file.filename == '':
|
||||||
return 'Tidak ada File yang dipih'
|
return 'Tidak ada File yang dipih'
|
||||||
|
|
||||||
current_directory = os.path.dirname(os.path.abspath(__file__))
|
current_directory = os.getcwd()
|
||||||
uploaded_file.save(os.path.join(
|
file_directory = os.path.join(
|
||||||
current_directory, uploaded_file.filename))
|
current_directory, uploaded_file.filename)
|
||||||
|
uploaded_file.save(file_directory)
|
||||||
else:
|
else:
|
||||||
return 'Tidak ada file yang diunggah!'
|
return 'Tidak ada file yang diunggah!'
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ def process_image():
|
|||||||
# Simpan hasil dalam variabel `result`
|
# Simpan hasil dalam variabel `result`
|
||||||
|
|
||||||
# Membaca gambar dengan OpenCV
|
# Membaca gambar dengan OpenCV
|
||||||
image = open(uploaded_file.filename, "rb")
|
image = open(file_directory, "rb")
|
||||||
image_data = image.read()
|
image_data = image.read()
|
||||||
image_array = bytearray(image_data)
|
image_array = bytearray(image_data)
|
||||||
nparr = np.frombuffer(image_array, np.uint8)
|
nparr = np.frombuffer(image_array, np.uint8)
|
||||||
@ -86,20 +86,9 @@ def process_image():
|
|||||||
|
|
||||||
hasil = result.split("\n")
|
hasil = result.split("\n")
|
||||||
|
|
||||||
# (5) Normalize
|
if os.path.exists(file_directory):
|
||||||
for word in result.split("\n"):
|
os.remove(file_directory)
|
||||||
if "”—" in word:
|
|
||||||
word = word.replace("”—", ":")
|
|
||||||
|
|
||||||
# normalize NIK
|
|
||||||
if "NIK" in word:
|
|
||||||
nik_char = word.split()
|
|
||||||
if "D" in word:
|
|
||||||
word = word.replace("D", "0")
|
|
||||||
if "?" in word:
|
|
||||||
word = word.replace("?", "7")
|
|
||||||
|
|
||||||
# print(word)
|
|
||||||
return jsonify({'status': 'Berhasil', 'result': hasil})
|
return jsonify({'status': 'Berhasil', 'result': hasil})
|
||||||
else:
|
else:
|
||||||
return jsonify({'error': 'No image uploaded'})
|
return jsonify({'error': 'No image uploaded'})
|
||||||
@ -107,38 +96,3 @@ def process_image():
|
|||||||
# return jsonify(word)
|
# return jsonify(word)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return jsonify(error=str(e))
|
return jsonify(error=str(e))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
app.run(host='localhost', port=8888, debug=False)
|
|
||||||
|
|
||||||
# image = open("R.jpeg", "rb")
|
|
||||||
|
|
||||||
# image_data = image.read()
|
|
||||||
# image_array = bytearray(image_data)
|
|
||||||
# nparr = np.frombuffer(image_array, np.uint8)
|
|
||||||
# img_cv2 = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
|
|
||||||
|
|
||||||
# # read img
|
|
||||||
# gray = cv2.cvtColor(img_cv2, cv2.COLOR_BGR2GRAY)
|
|
||||||
|
|
||||||
# # (2) Threshold
|
|
||||||
# th, threshed = cv2.threshold(gray, 127, 255, cv2.THRESH_TRUNC)
|
|
||||||
|
|
||||||
# # (3) Detect
|
|
||||||
# result = pytesseract.image_to_string((threshed), lang="ind")
|
|
||||||
# print(result)
|
|
||||||
# # (5) Normalize
|
|
||||||
# for word in result.split("\n"):
|
|
||||||
# if "”—" in word:
|
|
||||||
# word = word.replace("”—", ":")
|
|
||||||
|
|
||||||
# # normalize NIK
|
|
||||||
# if "NIK" in word:
|
|
||||||
# nik_char = word.split()
|
|
||||||
# if "D" in word:
|
|
||||||
# word = word.replace("D", "0")
|
|
||||||
# if "?" in word:
|
|
||||||
# word = word.replace("?", "7")
|
|
||||||
|
|
||||||
# print(word)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user