main
zeldaababil19 2024-05-03 17:49:56 +07:00
parent 8a89eb584e
commit cb67efce78
9 changed files with 521 additions and 212 deletions

View File

@ -39,66 +39,78 @@ class PengeluaranController extends Controller
DB::beginTransaction(); DB::beginTransaction();
$user = request()->user(); $user = request()->user();
$pengeluaran = Pengeluaran::create([ foreach ($request->rekening_coa_kebutuhan as $key => $value) {
'faktur' => "PG-" . date('YmdHis'), $rekening_coa_id = explode('|', $request->rekening_coa_kebutuhan[$key])[0];
'tanggal' => $request->tanggal, $kode_coa = explode('|', $request->rekening_coa_kebutuhan[$key])[1];
'jenis_transaksi' => $request->jenis_transaksi, $keterangan_coa = explode('|', $request->rekening_coa_kebutuhan[$key])[2];
'rekening_coa_transfer_id' => $request->id_rekening_coa_transfer ? $request->id_rekening_coa_transfer : null, $nominalnya = $request->nominal[$key] ?? 0;
'rekening_coa_id' => $request->id_rekening_coa, $satuan = $request->satuan[$key] ?? 0;
'master_distributors_id' => $request->distributor_id ? $request->distributor_id : null, // detail kebutuhan
'master_satuans_id' => $request->satuan_id, $harga_total = $nominalnya * $satuan;
'satuan' => $request->satuan,
'nominal' => $request->nominal,
'keterangan' => $request->keterangan,
'user_id' => $user->id
]);
if ($request->jenis_transaksi == "1") { $pengeluaran = Pengeluaran::create([
BukuBesar::create([
'faktur' => "PG-" . date('YmdHis'), 'faktur' => "PG-" . date('YmdHis'),
'tanggal' => $request->tanggal, 'tanggal' => $request->tanggal_belanja,
'rekening_coa_id' => "2", 'jenis_transaksi' => $request->jenis_transaksi,
'pengeluaran_id' => $pengeluaran->id, 'rekening_coa_transfer_id' => $request->id_rekening_coa_transfer ? $request->id_rekening_coa_transfer : null,
'kode_rekening_coa' => "1.100.01",
'keterangan_coa' => "Kas Kasir", 'rekening_coa_id' => $rekening_coa_id,
'keterangan' => $request->keterangan, 'master_distributors_id' => $request->supplier[$key] ? $request->supplier[$key] : null,
'debet' => 0, 'master_satuans_id' => $request->pilihansatuan[$key] ? $request->pilihansatuan[$key] : null,
'kredit' => $request->nominal 'satuan' => $satuan,
]); 'nominal' => $nominalnya,
BukuBesar::create([ 'total_harga' => $harga_total,
'faktur' => "PG-" . date('YmdHis'), 'keterangan' => $request->keterangan[$key] ? $request->keterangan[$key] : null,
'tanggal' => $request->tanggal, 'user_id' => $user->id
'rekening_coa_id' => $request->id_rekening_coa,
'kode_rekening_coa' => $request->kode_coa,
'pengeluaran_id' => $pengeluaran->id,
'keterangan_coa' => $request->keterangan_coa,
'keterangan' => $request->keterangan,
'debet' => $request->nominal,
'kredit' => 0,
]);
} else {
BukuBesar::create([
'faktur' => "PG-" . date('YmdHis'),
'tanggal' => $request->tanggal,
'rekening_coa_id' => $request->id_rekening_coa_transfer,
'kode_rekening_coa' => $request->kode_coa_transfer,
'pengeluaran_id' => $pengeluaran->id,
'keterangan_coa' => $request->keterangan_coa_transfer,
'keterangan' => $request->keterangan,
'debet' => 0,
'kredit' => $request->nominal
]);
BukuBesar::create([
'faktur' => "PG-" . date('YmdHis'),
'tanggal' => $request->tanggal,
'rekening_coa_id' => $request->id_rekening_coa,
'kode_rekening_coa' => $request->kode_coa,
'pengeluaran_id' => $pengeluaran->id,
'keterangan_coa' => $request->keterangan_coa,
'keterangan' => $request->keterangan,
'debet' => $request->nominal,
'kredit' => 0,
]); ]);
if ($request->jenis_transaksi == "1") {
BukuBesar::create([
'faktur' => "PG-" . date('YmdHis'),
'tanggal' => $request->tanggal_belanja,
'rekening_coa_id' => "2",
'pengeluaran_id' => $pengeluaran->id,
'kode_rekening_coa' => "1.100.01",
'keterangan_coa' => "Kas Kasir",
'keterangan' => $request->keterangan[$key] ?? '',
'debet' => 0,
'kredit' => $request->nominal[$key] ?? 0
]);
BukuBesar::create([
'faktur' => "PG-" . date('YmdHis'),
'tanggal' => $request->tanggal_belanja,
'rekening_coa_id' => $rekening_coa_id,
'kode_rekening_coa' => $kode_coa,
'pengeluaran_id' => $pengeluaran->id,
'keterangan_coa' => $keterangan_coa,
'keterangan' => $request->keterangan[$key] ?? '',
'debet' => $request->nominal[$key] ?? '',
'kredit' => 0,
]);
} else {
BukuBesar::create([
'faktur' => "PG-" . date('YmdHis'),
'tanggal' => $request->tanggal_belanja,
'rekening_coa_id' => $request->id_rekening_coa_transfer,
'kode_rekening_coa' => $request->kode_coa_transfer,
'pengeluaran_id' => $pengeluaran->id,
'keterangan_coa' => $request->keterangan_coa_transfer,
'keterangan' => $request->keterangan[$key],
'debet' => 0,
'kredit' => $request->nominal[$key]
]);
BukuBesar::create([
'faktur' => "PG-" . date('YmdHis'),
'tanggal' => $request->tanggal_belanja,
'rekening_coa_id' => $rekening_coa_id,
'kode_rekening_coa' => $kode_coa,
'pengeluaran_id' => $pengeluaran->id,
'keterangan_coa' => $keterangan_coa,
'keterangan' => $request->keterangan[$key],
'debet' => $request->nominal[$key],
'kredit' => 0,
]);
}
} }
DB::commit(); DB::commit();
@ -107,7 +119,7 @@ class PengeluaranController extends Controller
} catch (\Throwable $th) { } catch (\Throwable $th) {
DB::rollBack(); DB::rollBack();
dd($th->getMessage()); dd($th->getMessage() . ' ' . $th->getLine() . ' ' . $th->getFile());
return response()->json(['status' => false, 'message' => 'Kesalahan menyimpan data']); return response()->json(['status' => false, 'message' => 'Kesalahan menyimpan data']);
} }
} }
@ -158,6 +170,7 @@ class PengeluaranController extends Controller
}) })
->orderBy('tanggal', 'desc') ->orderBy('tanggal', 'desc')
->get(); ->get();
return datatables() return datatables()
->of($data) ->of($data)
->addColumn('suppliersnya', function ($data) { ->addColumn('suppliersnya', function ($data) {
@ -183,12 +196,42 @@ class PengeluaranController extends Controller
->addColumn('nomor', function ($data) use (&$nomor) { ->addColumn('nomor', function ($data) use (&$nomor) {
return $nomor++; return $nomor++;
}) })
->addColumn('ubah', function ($data) { ->addColumn('action', function ($data) {
return '<div class="btn-group"> return '<div class="btn-group">
<a href="javascript:void(0)" onclick="detail(\'' . $data->id . '\')"><span class="btn btn-xs btn-warning mr-1"><i class="fas fa-eye"></i></span></a> <button href="javascript:void(0)" class="btn btn-xs btn-danger mr-1 delete_pengeluaran" data-id="' . $data->id . '" data-kebutuhan="' . $data->rekeningCoa->keterangan_coa . '" data-faktur="' . $data->faktur . '"><i class="fas fa-trash"></i></button>
<a href="javascript:void(0)" onclick="print(\'' . $data->id . '\')"><span class="btn btn-xs btn-success"><i class="fas fa-print"></i></span></a></div>'; </div>';
}) })
->rawColumns(['ubah']) ->rawColumns(['action'])
->make(true); ->make(true);
} }
public function delete(Request $request)
{
try {
DB::beginTransaction();
$pengeluaran = Pengeluaran::find($request->id);
$pengeluaran->delete();
BukuBesar::where('faktur', $request->faktur)->delete();
DB::commit();
return response()->json(['status' => true, 'message' => 'Data berhasil dihapus']);
} catch (\Throwable $th) {
DB::rollBack();
return response()->json(['status' => false, 'message' => 'Kesalahan menghapus data']);
}
}
public function generateLocalStorage(Request $request)
{
$coaPengeluaran = RekeningCoa::where('kode_coa', 5)->where('sub_kode_coa', 500)->get();
$distributors = MasterDistributor::all();
$satuans = MasterSatuan::all();
$rekening_coa_kebutuhan = $request->rekening_coa_kebutuhan;
$nominal = $request->nominal;
$pilihansatuan = $request->pilihansatuan;
$satuannya = $request->satuan;
$supplier = $request->supplier;
$keterangan = $request->keterangan;
$total_harga = $request->total;
return view('pages.admin.pengeluaran.cardpengeluaran', compact('coaPengeluaran', 'distributors', 'satuans', 'rekening_coa_kebutuhan', 'nominal', 'pilihansatuan', 'satuannya', 'supplier', 'keterangan', 'total_harga'));
}
} }

View File

@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('pengeluaran', function (Blueprint $table) {
$table->decimal('total_harga', 15, 2)->after('keterangan')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('pengeluaran', function (Blueprint $table) {
$table->dropColumn('total_harga');
});
}
};

View File

@ -0,0 +1,59 @@
<tr>
<td>
<div id="card-form-item">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-4 mt-3"> <label>Kebutuhan</label> <select class="form-control"
id="rekening_coa_kebutuhan" name="rekening_coa_kebutuhan[]" required>
<option value="" selected>Pilih Kebutuhan </option>
@foreach ($coaPengeluaran as $biaya)
@if ($biaya->status == 0)
<optgroup label="{{ $biaya->coa }} | {{ $biaya->keterangan_coa }}">
@else
<option @if ($biaya->id == $rekening_coa_kebutuhan) selected @endif
value="{{ $biaya->id }}|{{ $biaya->coa }}|{{ $biaya->keterangan_coa }}">
{{ $biaya->coa }} |
{{ $biaya->keterangan_coa }} </option>
@endif
@endforeach
</optgroup>
</select> </div>
<div class="col-md-4 mt-3"> <label>Nominal</label> <input type="number" min="0"
class="form-control" id="nominal" name="nominal[]" onchange="calculateTotalItem(this)"
placeholder="Harga satuan atau kiloan" required value="{{ $nominal }}"> </div>
<div class="col-md-4 mt-3"> <label>Satuan</label>
<div class="row"> <input type="number" min="0" class="form-control col-md-6"
name="satuan[]" id="satuan" onchange="calculateTotalItem(this)"
placeholder="Satuan Pengeluaran" required value="{{ $satuannya }}"> <select
class="form-control col-md-6" id="satuan_bahan" name="pilihansatuan[]" required>
<option value="" selected>--Pilih Satuan-- </option>
@foreach ($satuans as $satuan)
<option value="{{ $satuan->id }}"
@if ($satuan->id == $pilihansatuan) selected @endif>
{{ $satuan->nama_satuan }}</option>
@endforeach
</select> </div>
</div>
<div class="col-md-4 mt-3"> <label>Supplier Distributor</label> <select class="form-control"
id="supplier_distributior" name="supplier[]">
<option value="" selected>Tanpa distributor </option>
@foreach ($distributors as $distributor)
<option value="{{ $distributor->id }}"
@if ($distributor->id == $supplier) selected @endif>
{{ $distributor->nama_distributor }}
{{ $distributor->alamat }} {{ $distributor->telepon }} </option>
@endforeach
</select> </div>
<div class="col-md-4 mt-3"> <label>Keterangan</label>
<textarea class="form-control" id="keterangan" placeholder="Keterangan" name="keterangan[]">{{ $keterangan }}</textarea>
</div>
<div class="col-md-4 mt-3"> <label>Total</label>
<h3 id="total-item">Rp. {{ $total_harga }}</h3>
</div>
</div>
</div>
</div>
</div>
</td>
</tr>

View File

@ -47,105 +47,132 @@
</div> </div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="col-md-12"> <form action="" method="POST" enctype="multipart/form-data" id="iniformnya">
<div class="row"> @csrf
<div class="col-md-12">
<div class="col-md-4 mt-3"> <div class="col-md-4 mt-3">
<label>Tanggal</label> <label>Tanggal Belanja</label>
<input type="date" class="form-control" id="tanggal" <input type="date" class="form-control" id="tanggal" name="tanggal_belanja"
value="{{ date('Y-m-d') }}"> value="{{ date('Y-m-d') }}">
</div> </div>
<div class="col-md-4 mt-3"> <br>
<label>Jenis Transaksi</label> <h5> Inputkan Item belanja</h5>
<select class="form-control" id="jenis_transaksi"> <table id="dynamicAddRemove" width="100%">
<option value="" selected>--Pilih Jenis Transkasi--</option> <tr>
<option value="1">Tunai</option> <td>
<option value="2">Transfer</option> <div id="card-form-item">
</select> <div class="card">
</div> <div class="card-body">
<div class="col-md-4 mt-3"> <div class="row">
<label>Rekening Coa Kebutuhan</label> <div class="col-md-4 mt-3"> <label>Kebutuhan</label> <select
<select class="form-control" id="rekening_coa_kebutuhan"> class="form-control" id="rekening_coa_kebutuhan"
<option value="" selected>--Pilih Rekening Coa--</option> name="rekening_coa_kebutuhan[]" required>
@foreach ($coaPengeluaran as $biaya) <option value="" selected>Pilih Kebutuhan
@if ($biaya->status == 0) </option>
<optgroup label="{{ $biaya->coa }} | {{ $biaya->keterangan_coa }}"> @foreach ($coaPengeluaran as $biaya)
@else @if ($biaya->status == 0)
<option <optgroup
value="{{ $biaya->id }}|{{ $biaya->coa }}|{{ $biaya->keterangan_coa }}"> label="{{ $biaya->coa }} | {{ $biaya->keterangan_coa }}">
{{ $biaya->coa }} | {{ $biaya->keterangan_coa }}</option> @else
@endif <option
@endforeach value="{{ $biaya->id }}|{{ $biaya->coa }}|{{ $biaya->keterangan_coa }}">
</optgroup> {{ $biaya->coa }} |
</select> {{ $biaya->keterangan_coa }}
{{-- <small>Tampilkan semua coa biaya? </option>
<div class="form-group"> @endif
<div class="form-check"> @endforeach
<input class="form-check-input" type="radio" name="radio1" </optgroup>
value="1"> </select> </div>
<label class="form-check-label">Iya</label> <div class="col-md-4 mt-3"> <label>Nominal</label> <input
type="number" min="0" class="form-control"
id="nominal" name="nominal[]"
onchange="calculateTotalItem(this)"
placeholder="Harga satuan atau kiloan" required>
</div>
<div class="col-md-4 mt-3"> <label>Satuan</label>
<div class="row"> <input type="number"
min="0" class="form-control col-md-6"
name="satuan[]" id="satuan"
onchange="calculateTotalItem(this)"
placeholder="Satuan Pengeluaran" required>
<select class="form-control col-md-6"
id="satuan_bahan" name="pilihansatuan[]"
required>
<option value="" selected>--Pilih Satuan--
</option>
@foreach ($satuans as $satuan)
<option value="{{ $satuan->id }}">
{{ $satuan->nama_satuan }}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-4 mt-3"> <label>Supplier
Distributor</label> <select class="form-control"
id="supplier_distributior" name="supplier[]">
<option value="" selected>Tanpa distributor
</option>
@foreach ($distributors as $distributor)
<option value="{{ $distributor->id }}">
{{ $distributor->nama_distributor }}
{{ $distributor->alamat }}
{{ $distributor->telepon }} </option>
@endforeach
</select> </div>
<div class="col-md-4 mt-3"> <label>Keterangan</label>
<textarea class="form-control" id="keterangan" placeholder="Keterangan" name="keterangan[]"></textarea>
</div>
<div class="col-md-4 mt-3"> <label>Total</label>
<h3 id="total-item"></h3>
</div>
</div>
</div>
</div>
</div> </div>
<div class="form-check"> </td>
<input class="form-check-input" type="radio" name="radio1" </tr>
value="2" checked> </table>
<label class="form-check-label">Tidak</label>
</div> <button type="button" class="btn btn-warning " id="dynamic-ar">
</div> Tambah Item
</small> --}} <i class="fa fa-plus"></i>
</div> </button>
<div class="col-md-4 mt-3"> <div class="row">
<label>Supplier Distributor</label> <div class="col-md-4 mt-3">
<select class="form-control" id="supplier_distributior"> <label>Jenis Transaksi</label>
<option value="" selected>--Pilih Supplier Distributor--</option> <select class="form-control" id="jenis_transaksi" name="jenis_transaksi">
@foreach ($distributors as $distributor) <option value="1" selected>Tunai</option>
<option value="{{ $distributor->id }}"> <option value="2">Transfer</option>
{{ $distributor->nama_distributor }} </select>
{{ $distributor->alamat }} {{ $distributor->telepon }}</option> </div>
@endforeach
<option value="">Tanpa distributor</option> <div hidden class="transfer col-md-4 mt-3">
</select> <label class="form-label">Rekening Coa Jenis Transaksi</label>
</div> <select class="form-control" id="rekening_coa_transfer"
<div class="col-md-4 mt-3"> name="rekening_coa_transfer">
<label>Satuan</label> <option selected disabled>--Pilih Rekening Coa--</option>
<div class="row"> @foreach ($rekeningCoaTf as $coaTf)
<input type="number" min="0" class="form-control col-md-9" @if ($coaTf->status == 0)
id="satuan" placeholder="Satuan Pengeluaran"> <optgroup
<select class="form-control col-md-3" id="satuan_bahan"> label="{{ $coaTf->coa }} | {{ $coaTf->keterangan_coa }}">
<option value="" selected>--Pilih Satuan--</option> @else
@foreach ($satuans as $satuan) <option
<option value="{{ $satuan->id }}"> value="{{ $coaTf->id }}|{{ $coaTf->coa }}|{{ $coaTf->keterangan_coa }}">
{{ $satuan->nama_satuan }}</option> {{ $coaTf->coa }} | {{ $coaTf->keterangan_coa }}
</option>
@endif
@endforeach @endforeach
</select> </select>
</div> </div>
</div> </div>
<div class="col-md-4 mt-3"> <hr>
<label>Nominal</label> <div style="display: flex;justify-content: flex-end;">
<input type="number" min="0" class="form-control" id="nominal" <a href="javascript:void(0)" class="btn btn-warning"
placeholder="Nominal Pengeluaran"> id="simpan_pengeluaran">Simpan
</div> Pengeluaran</a>
<div class="col-md-4 mt-3">
<label>Keterangan</label>
<textarea class="form-control" id="keterangan" placeholder="Keterangan"></textarea>
</div>
<div hidden class="transfer col-md-4 mt-3">
<label class="form-label">Rekening Coa Jenis Transaksi</label>
<select class="form-control" id="rekening_coa_transfer">
<option selected disabled>--Pilih Rekening Coa--</option>
@foreach ($rekeningCoaTf as $coaTf)
@if ($coaTf->status == 0)
<optgroup label="{{ $coaTf->coa }} | {{ $coaTf->keterangan_coa }}">
@else
<option
value="{{ $coaTf->id }}|{{ $coaTf->coa }}|{{ $coaTf->keterangan_coa }}">
{{ $coaTf->coa }} | {{ $coaTf->keterangan_coa }}</option>
@endif
@endforeach
</select>
</div> </div>
</div> </div>
<hr> </form>
<a href="javascript:void(0)" class="btn btn-warning" id="simpan_pengeluaran">Simpan Data</a>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -193,23 +220,23 @@
<th class="text-center">No</th> <th class="text-center">No</th>
<th>Faktur</th> <th>Faktur</th>
<th>Tanggal Transaksi</th> <th>Tanggal Transaksi</th>
<th>User</th>
<th>Kebutuhan</th> <th>Kebutuhan</th>
<th>Jenis Transaksi</th> <th>Jenis Transaksi</th>
<th>Supplier</th> <th>Supplier</th>
<th>Satuan</th> <th>Satuan</th>
<th>Nominal</th> <th>Harga Satuan</th>
<th>Total</th>
<th class="text-center"><i class="fas fa-cog"></i></th> <th class="text-center"><i class="fas fa-cog"></i></th>
</tr> </tr>
</thead> </thead>
<tfoot> <tfoot>
<tr> <tr>
<th class="text-right"></th>
<th class="text-right"></th> <th class="text-right"></th>
<th class="text-right" colspan="4">Total</th> <th class="text-right" colspan="4">Total</th>
<th class="text-right"></th> <th class="text-right"></th>
<th class="text-right"></th> <th class="text-right"></th>
<th class="text-right"></th> <th class="text-right"></th>
<th class="text-right"></th>
<th class="text-center"><i class="fas fa-cog"></i></th> <th class="text-center"><i class="fas fa-cog"></i></th>
</tr> </tr>
</tfoot> </tfoot>

View File

@ -32,10 +32,6 @@
data: 'tanggal', data: 'tanggal',
name: 'tanggal' name: 'tanggal'
}, },
{
data: 'user.name',
name: 'user.name'
},
{ {
data: 'rekening_coa', data: 'rekening_coa',
name: 'rekening_coa' name: 'rekening_coa'
@ -63,8 +59,17 @@
} }
}, },
{ {
data: 'ubah', data: 'total_harga',
name: 'ubah', name: 'total_harga',
className: 'text-right',
render: function(data) {
// change to IDR
return 'Rp. ' + data.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
}
},
{
data: 'action',
name: 'action',
className: 'text-center' className: 'text-center'
}, },
], ],
@ -90,6 +95,38 @@
'Rp. ' + totalAll.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.'); 'Rp. ' + totalAll.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
} }
}) })
$('body').on('click', '.delete_pengeluaran', function(e) {
let id = $(this).data('id');
let faktur = $(this).data('faktur');
let kebutuhan = $(this).data('kebutuhan');
let url = "{{ route('pengeluaran.delete') }}";
if (confirm('Apakah anda yakin ingin menghapus data dengan faktur ' + faktur +
' pengeluaran ' +
kebutuhan + ' ?')) {
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
type: "DELETE",
data: {
id: id,
faktur: faktur
},
url: url,
success: function(result) {
if (result) {
alert(result.message)
dataTable.ajax.reload()
}
},
error: function(result) {
alert(result.message)
dataTable.ajax.reload()
}
})
}
})
$('#btn_filter').on('click', function() { $('#btn_filter').on('click', function() {
if ($("#filter_tanggal_1").val() == "" || $("#filter_tanggal_2").val() == "") { if ($("#filter_tanggal_1").val() == "" || $("#filter_tanggal_2").val() == "") {
alert("Input pencarian tidak boleh kosong") alert("Input pencarian tidak boleh kosong")
@ -115,29 +152,20 @@
<script> <script>
$(document).ready(function() { $(document).ready(function() {
$('#simpan_pengeluaran').on('click', function() { $('#simpan_pengeluaran').on('click', function() {
if (!validationform()) {
return false;
}
theInterval = false;
document.getElementById('simpan_pengeluaran').disabled = true; document.getElementById('simpan_pengeluaran').disabled = true;
document.getElementById('simpan_pengeluaran').innerText = "Proses..."; document.getElementById(
'simpan_pengeluaran').innerText = "Proses...";
// Jika jenis transaksi tunai // Jika jenis transaksi tunai
if ($("#jenis_transaksi").val() == "1") { if ($("#jenis_transaksi").val() == "1") {
let rekening_coa_kebutuhan = $("#rekening_coa_kebutuhan").val() let dataTunai = $('#iniformnya').serialize();
let split_rekening_coa_kebutuhan = rekening_coa_kebutuhan.split("|")
let id_rekening_coa = split_rekening_coa_kebutuhan[0]
let kode_coa = split_rekening_coa_kebutuhan[1]
let keterangan_coa = split_rekening_coa_kebutuhan[2]
let dataTunai = {
tanggal: $("#tanggal").val(),
jenis_transaksi: $("#jenis_transaksi").val(),
distributor_id: $("#supplier_distributior").val(),
satuan_id: $("#satuan_bahan").val(),
satuan: $("#satuan").val(),
nominal: $("#nominal").val(),
keterangan: $("#keterangan").val(),
id_rekening_coa: id_rekening_coa,
kode_coa: kode_coa,
keterangan_coa: keterangan_coa,
}
// return console.log(dataTunai);
$.ajax({ $.ajax({
headers: { headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
@ -153,32 +181,7 @@
} }
}) })
} else { } else {
let rekening_coa_kebutuhan = $("#rekening_coa_kebutuhan").val() let dataTranfer = $('#iniformnya').serialize();
let split_rekening_coa_kebutuhan = rekening_coa_kebutuhan.split("|")
let id_rekening_coa = split_rekening_coa_kebutuhan[0]
let kode_coa = split_rekening_coa_kebutuhan[1]
let keterangan_coa = split_rekening_coa_kebutuhan[2]
let rekening_coa_transfer = $("#rekening_coa_transfer").val()
let split_rekening_coa_transfer = rekening_coa_transfer.split("|")
let id_rekening_coa_transfer = split_rekening_coa_transfer[0]
let kode_coa_transfer = split_rekening_coa_transfer[1]
let keterangan_coa_transfer = split_rekening_coa_transfer[2]
let dataTranfer = {
tanggal: $("#tanggal").val(),
jenis_transaksi: $("#jenis_transaksi").val(),
nominal: $("#nominal").val(),
keterangan: $("#keterangan").val(),
distributor_id: $("#supplier_distributior").val(),
satuan_id: $("#satuan_bahan").val(),
satuan: $("#satuan").val(),
id_rekening_coa: id_rekening_coa,
kode_coa: kode_coa,
keterangan_coa: keterangan_coa,
id_rekening_coa_transfer: id_rekening_coa_transfer,
kode_coa_transfer: kode_coa_transfer,
keterangan_coa_transfer: keterangan_coa_transfer,
}
// return console.log(dataTranfer);
$.ajax({ $.ajax({
headers: { headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
@ -194,10 +197,152 @@
} }
}) })
} }
}) });
function validationform() {
if ($("#tanggal_belanja").val() == "") {
alert("Tanggal tidak boleh kosong")
return false;
}
if ($("#rekening_coa_kebutuhan").val() == "") {
alert("Item kebutuhan tidak boleh kosong")
return false;
}
if ($("#nominal").val() == "") {
alert("Nominal tidak boleh kosong")
return false;
}
if ($("#satuan").val() == "") {
alert("Satuan tidak boleh kosong")
return false;
}
if ($("#satuan_bahan").val() == "") {
alert("Satuan belum terpilih")
return false;
}
if ($("#jenis_transaksi").val() == "2") {
if ($("#rekening_coa_transfer").val() == "") {
alert("Rekening COA Transfer tidak boleh kosong")
return false;
}
}
return true;
}
}) })
</script> </script>
<script type="text/javascript">
$("#dynamic-ar").click(function() {
$("#dynamicAddRemove").append(
` <tr> <td> <div id="card-form-item"> <div class="card"> <div class="card-body"> <button type="button" class="btn btn-danger remove-input-field"
style="display: flex;position: absolute;left: -20px;top: 5px;"
id="add-form-item">
<i class="fa fa-trash"></i>
</button> <div class="row"> <div class="col-md-4 mt-3"> <label>Kebutuhan</label> <select class="form-control" id="rekening_coa_kebutuhan" name="rekening_coa_kebutuhan[]" required> <option value="" selected>Pilih Kebutuhan </option> @foreach ($coaPengeluaran as $biaya) @if ($biaya->status == 0) <optgroup label="{{ $biaya->coa }} | {{ $biaya->keterangan_coa }}"> @else <option value="{{ $biaya->id }}|{{ $biaya->coa }}|{{ $biaya->keterangan_coa }}"> {{ $biaya->coa }} | {{ $biaya->keterangan_coa }} </option> @endif @endforeach </optgroup> </select> </div> <div class="col-md-4 mt-3"> <label>Nominal</label> <input type="number" min="0" class="form-control" id="nominal" name="nominal[]" onchange="calculateTotalItem(this)" placeholder="Harga satuan atau kiloan" required> </div> <div class="col-md-4 mt-3"> <label>Satuan</label> <div class="row"> <input type="number" min="0" class="form-control col-md-6" name="satuan[]" id="satuan" onchange="calculateTotalItem(this)" placeholder="Satuan Pengeluaran" required> <select class="form-control col-md-6" id="satuan_bahan" name="pilihansatuan[]" required> <option value="" selected>--Pilih Satuan-- </option> @foreach ($satuans as $satuan) <option value="{{ $satuan->id }}"> {{ $satuan->nama_satuan }}</option> @endforeach </select> </div> </div> <div class="col-md-4 mt-3"> <label>Supplier Distributor</label> <select class="form-control" id="supplier_distributior" name="supplier[]"> <option value="" selected>Tanpa distributor </option> @foreach ($distributors as $distributor) <option value="{{ $distributor->id }}"> {{ $distributor->nama_distributor }} {{ $distributor->alamat }} {{ $distributor->telepon }} </option> @endforeach </select> </div> <div class="col-md-4 mt-3"> <label>Keterangan</label> <textarea class="form-control" id="keterangan" placeholder="Keterangan" name="keterangan[]"></textarea> </div> <div class="col-md-4 mt-3"> <label>Total</label> <h3 id="total-item"></h3> </div> </div> </div> </div> </div> </td> </tr>`
);
});
$(document).on('click', '.remove-input-field', function() {
$(this).parents('tr').remove();
});
function calculateTotalItem(params) {
let nominal = $(params).parents('#card-form-item').find('input[name="nominal[]"]').val();
let satuan = $(params).parents('#card-form-item').find('input[name="satuan[]"]').val();
let total = nominal * satuan;
$(params).parents('#card-form-item').find('h3#total-item').text('Rp. ' + total.toString().replace(
/\B(?=(\d{3})+(?!\d))/g, '.'));
}
</script>
<script>
var theInterval = true;
function saveToLocalStorage(params) {
var dataItems = [];
var items = document.querySelectorAll('[id="card-form-item"]');
for (let index = 0; index < items.length; index++) {
const element = items[index];
let nominal = element.querySelector('input[name="nominal[]"]').value;
let satuan = element.querySelector('input[name="satuan[]"]').value;
let pilihansatuan = element.querySelector('select[name="pilihansatuan[]"]').value;
let rekening_coa_kebutuhan = element.querySelector(
'select[name="rekening_coa_kebutuhan[]"]').value;
let supplier = element.querySelector('select[name="supplier[]"]').value;
let keterangan = element.querySelector('textarea[name="keterangan[]"]').value;
let total = nominal * satuan;
if (rekening_coa_kebutuhan == "" || nominal == "" || satuan == "") {
continue;
} else {
rekening_coa_kebutuhan = rekening_coa_kebutuhan.split('|')[0];
}
dataItems.push({
rekening_coa_kebutuhan: rekening_coa_kebutuhan,
nominal: nominal,
satuan: satuan,
pilihansatuan: pilihansatuan,
supplier: supplier,
keterangan: keterangan,
total: total
});
}
let json = JSON.stringify({
tanggal: $("#tanggal").val(),
jenis_transaksi: $("#jenis_transaksi").val(),
dataItems
});
localStorage.setItem('pengeluaranItemStorage', json);
}
// Save to local storage each 1 second
setInterval(function() {
saveToLocalStorage();
}, 2000);
function showPengeluaranItemStorage() {
if (localStorage.pengeluaranItemStorage === undefined || localStorage.pengeluaranItemStorage === null) {
return false;
}
let data = JSON.parse(localStorage.pengeluaranItemStorage);
document.getElementsByName('tanggal_belanja').value = data.tanggal ?? '';
document.getElementsByName('jenis_transaksi').value = data.jenis_transaksi;
if (data.dataItems.length > 0) {
$('#dynamicAddRemove').html('');
data.dataItems.forEach((i, key) => {
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
type: "GET",
url: "{{ route('pengelauran.generateLocalStorage') }}",
data: data.dataItems[key],
success: function(result) {
$('#dynamicAddRemove').append(result);
},
error: function(result) {
console.log(result);
}
})
});
}
}
showPengeluaranItemStorage();
setInterval(doTheInterval, 1000);
function doTheInterval() {
if (theInterval === true) {
// show time every second
saveToLocalStorage();
} else {
localStorage.removeItem('pengeluaranItemStorage');
}
}
</script>
<script> <script>
@if (session()->has('success')) @if (session()->has('success'))
toastr.success('{{ session('success') }}', 'BERHASIL'); toastr.success('{{ session('success') }}', 'BERHASIL');

View File

@ -255,7 +255,7 @@
$('#modal-default-add-distributor').modal('hide') $('#modal-default-add-distributor').modal('hide')
$('#form-tambah-distributor')[0].reset() $('#form-tambah-distributor')[0].reset()
$('#tabeldistributor').DataTable().ajax.reload() $('#tabeldistributor').DataTable().ajax.reload()
// location.reload() location.reload()
}, },
error: function(response) { error: function(response) {
toastr.error(response.responseJSON.meta.message) toastr.error(response.responseJSON.meta.message)
@ -298,6 +298,7 @@
$('#form-edit-distributor')[0].reset() $('#form-edit-distributor')[0].reset()
idEdit = null idEdit = null
$('#tabeldistributor').DataTable().ajax.reload() $('#tabeldistributor').DataTable().ajax.reload()
location.reload()
}, },
error: function(response) { error: function(response) {
// enable button submit on interval 1 detik // enable button submit on interval 1 detik
@ -344,6 +345,7 @@
toastr.success(response.meta.message) toastr.success(response.meta.message)
$('#modal-default-hapus-distributor').modal('hide') $('#modal-default-hapus-distributor').modal('hide')
$('#tabeldistributor').DataTable().ajax.reload() $('#tabeldistributor').DataTable().ajax.reload()
location.reload()
}, },
error: function(response) { error: function(response) {
toastr.error(response.responseJSON.meta.message) toastr.error(response.responseJSON.meta.message)

View File

@ -94,8 +94,8 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label for="simbol-edit" class="col-form-label">Simbol:</label> <label for="simbol-edit" class="col-form-label">Simbol:</label>
<input type="text" class="form-control" id="simbol-edit" name="simbol_edit" <input type="text" class="form-control" id="nama-simbol-edit"
required> name="simbol_edit" required>
</div> </div>
</div> </div>
<div class="modal-footer justify-content-between"> <div class="modal-footer justify-content-between">
@ -233,7 +233,7 @@
$('#modal-default-add-satuan').modal('hide') $('#modal-default-add-satuan').modal('hide')
$('#form-tambah-satuan')[0].reset() $('#form-tambah-satuan')[0].reset()
$('#tabelsatuan').DataTable().ajax.reload() $('#tabelsatuan').DataTable().ajax.reload()
// location.reload() location.reload()
}, },
error: function(response) { error: function(response) {
toastr.error(response.responseJSON.meta.message) toastr.error(response.responseJSON.meta.message)
@ -249,9 +249,10 @@
type: "GET", type: "GET",
success: function(response) { success: function(response) {
data = response.data.satuan data = response.data.satuan
console.log(data);
$('#id-edit-satuan').val(data.id) $('#id-edit-satuan').val(data.id)
$('#nama-satuan-edit').val(data.nama_satuan) $('#nama-satuan-edit').val(data.nama_satuan)
$('#simbol-edit').val(data.simbol) $('#nama-simbol-edit').val(data.simbol)
$('#modal-default-edit-satuan').modal('show') $('#modal-default-edit-satuan').modal('show')
}, },
error: function(response) { error: function(response) {
@ -276,6 +277,7 @@
$('#form-edit-satuan')[0].reset() $('#form-edit-satuan')[0].reset()
idEdit = null idEdit = null
$('#tabelsatuan').DataTable().ajax.reload() $('#tabelsatuan').DataTable().ajax.reload()
location.reload()
}, },
error: function(response) { error: function(response) {
// enable button submit on interval 1 detik // enable button submit on interval 1 detik
@ -322,6 +324,7 @@
toastr.success(response.meta.message) toastr.success(response.meta.message)
$('#modal-default-hapus-satuan').modal('hide') $('#modal-default-hapus-satuan').modal('hide')
$('#tabelsatuan').DataTable().ajax.reload() $('#tabelsatuan').DataTable().ajax.reload()
location.reload()
}, },
error: function(response) { error: function(response) {
toastr.error(response.responseJSON.meta.message) toastr.error(response.responseJSON.meta.message)

View File

@ -157,6 +157,7 @@ Route::group(['middleware' => ['auth', 'permission']], function () {
Route::get('/', [PengeluaranController::class, 'index'])->name('pengeluaran.index')->comment('Halaman Pengeluaran'); Route::get('/', [PengeluaranController::class, 'index'])->name('pengeluaran.index')->comment('Halaman Pengeluaran');
Route::post('/simpan', [PengeluaranController::class, 'simpan'])->name('pengeluaran.simpan')->comment('Halaman Simpan Pengeluaran'); Route::post('/simpan', [PengeluaranController::class, 'simpan'])->name('pengeluaran.simpan')->comment('Halaman Simpan Pengeluaran');
Route::post('/laporan', [PengeluaranController::class, 'laporan'])->name('pengeluaran.laporan')->comment('Halaman Laporan'); Route::post('/laporan', [PengeluaranController::class, 'laporan'])->name('pengeluaran.laporan')->comment('Halaman Laporan');
Route::delete('/delete', [PengeluaranController::class, 'delete'])->name('pengeluaran.delete')->comment('Menghapus Pengeluaran');
Route::get('/getDatapengeluaran', [PengeluaranController::class, 'getDatapengeluaran'])->name('pengeluaran.getDataPengeluaran')->comment("Ambil data Riwayat Transaksi"); Route::get('/getDatapengeluaran', [PengeluaranController::class, 'getDatapengeluaran'])->name('pengeluaran.getDataPengeluaran')->comment("Ambil data Riwayat Transaksi");
}); });
@ -178,4 +179,5 @@ Route::group(['middleware' => ['auth', 'permission']], function () {
Route::post('/simpan', [RekeningCoaController::class, 'simpan'])->name('coa.simpan')->comment('Halaman Simpan Rekening Coa'); Route::post('/simpan', [RekeningCoaController::class, 'simpan'])->name('coa.simpan')->comment('Halaman Simpan Rekening Coa');
Route::post('/ubah/{id}', [RekeningCoaController::class, 'ubah'])->name('coa.ubah')->comment('Halaman Ubah Rekening Coa'); Route::post('/ubah/{id}', [RekeningCoaController::class, 'ubah'])->name('coa.ubah')->comment('Halaman Ubah Rekening Coa');
}); });
Route::get('/generateLocalStorage', [PengeluaranController::class, 'generateLocalStorage'])->name('pengelauran.generateLocalStorage')->comment('generateLocalStorage');
}); });