Manajemen import payroll CSV bulanan, mapping otomatis identitas anggota, dan sinkronisasi saldo Simpanan Wajib & Sukarela secara akurat.
{{ number_format($stats['total_imports']) }} baris
{{ $stats['periods_count'] }} Periode Payroll
{{ number_format($stats['processed']) }} Mapped
Rp {{ number_format($stats['total_amount'] / 1000000, 1) }}M
Rp {{ number_format($stats['total_amount'], 0, ',', '.') }}
{{ $stats['total_audit'] }} Member
| Periode | Nama File Origin | Total Transaksi | Nominal Ter-Extract | Waktu Import | Aksi |
|---|---|---|---|---|---|
| {{ $period->period }} | {{ $period->filename }} | {{ number_format($period->total_rows) }} baris | Rp {{ number_format($period->total_amount, 0, ',', '.') }} | {{ \Carbon\Carbon::parse($period->imported_at)->diffForHumans() }} |
Pilih identitas anggota resmi di database agar transaksi payroll dapat di-sinkronisasikan.
| # | Nama di CSV (Raw) | Pencarian / Pilih Member Resmi | Status |
|---|---|---|---|
| {{ ($unmappedNames->currentPage() - 1) * $unmappedNames->perPage() + $loop->iteration }} |
{{ $item->raw_name }}
Awal Muncul:
{{ $item->earliest_period }}
|
|
Pilih Member |
Seluruh data import payroll telah memiliki hubungan dengan anggota resmi di database. Anda siap melakukan rekonsiliasi.
Proses ini akan menyesuaikan mutasi history simpanan dan membangun ulang saldo Simpanan Wajib & Simpanan Sukarela berdasarkan data CSV Payroll yang ter-import. ⚠️ Catatan: Data Angsuran Pinjaman TIDAK diubah/dihapus.
| Member | CSV Mapped Names | Tgl Gabung | Simpanan Wajib (Payroll) | Simpanan Sukarela | Aksi | ||||
|---|---|---|---|---|---|---|---|---|---|
| Proposed | System | Gap | CSV Total | System | |||||
|
{{ $row['name'] }}
ID: {{ $row['member_id'] }}
@if($row['is_coop'])
COOP
@else
RETAIL
@endif
|
@if(!empty($row['mapped_names']))
@foreach($row['mapped_names'] as $csvName)
{{ $csvName }}
@endforeach
@else
-
@endif
|
{{ \Carbon\Carbon::parse($row['join_date'])->format('d M Y') }} | {{-- WAJIB --}}
Rp {{ number_format($row['proposed_wajib'], 0, ',', '.') }}
CSV: +{{ number_format($row['actual_payroll']) }}
|
Rp {{ number_format($row['current_wajib'], 0, ',', '.') }} | @if($row['gap'] == 0) ✓ Match @else {{ $row['gap'] > 0 ? '+' : '' }}{{ number_format($row['gap']) }} @endif | {{-- SUKARELA --}}Rp {{ number_format($row['actual_sukarela'], 0, ',', '.') }} |
Rp {{ number_format($row['current_sukarela'], 0, ',', '.') }}
Gap: {{ number_format($row['gap_sukarela']) }}
|
||
Klik "Generate / Refresh Report" untuk memulai analisis rekonsiliasi data.
Breakdown setoran Simpanan Wajib, Sukarela, dan Pokok dari anggota per bulan.
Rp {{ number_format($savingsCashFlowData['totals']['grand_total'], 0, ',', '.') }}
Akumulasi Inflow KoperasiRp {{ number_format($savingsCashFlowData['totals']['simwa'], 0, ',', '.') }}
Rp {{ number_format($savingsCashFlowData['totals']['sukarela'], 0, ',', '.') }}
Rp {{ number_format($savingsCashFlowData['totals']['simpok'], 0, ',', '.') }}
Klik pada salah satu baris bulan di bawah ini untuk membuka daftar rincian setoran per anggota.
| Bulan | Simpanan Pokok | Simpanan Wajib (Simwa) | Simpanan Sukarela | Total Setoran Bulan Ini | Akumulasi Saldo (Running Total) | Rincian Member | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ $m['month_num'] }} {{ $m['month_name'] }} {{ $selectedYear }} | Rp {{ number_format($m['simpok'], 0, ',', '.') }} | Rp {{ number_format($m['simwa'], 0, ',', '.') }} | Rp {{ number_format($m['sukarela'], 0, ',', '.') }} | Rp {{ number_format($m['total'], 0, ',', '.') }} | Rp {{ number_format($m['cumulative'], 0, ',', '.') }} | |||||||||||||||||
|
{{ $m['month_num'] }}
Rincian Transaksi Simpanan Member Bulan {{ $m['month_name'] }} {{ $selectedYear }}Total {{ count($monthlyDetailRows) }} Anggota Terdaftar | Periode {{ $m['period'] }}
Tidak ada transaksi simpanan tercatat pada bulan ini.
@endif
|
||||||||||||||||||||||
| TOTAL TAHUN {{ $selectedYear }} | Rp {{ number_format($savingsCashFlowData['totals']['simpok'], 0, ',', '.') }} | Rp {{ number_format($savingsCashFlowData['totals']['simwa'], 0, ',', '.') }} | Rp {{ number_format($savingsCashFlowData['totals']['sukarela'], 0, ',', '.') }} | Rp {{ number_format($savingsCashFlowData['totals']['grand_total'], 0, ',', '.') }} | - | 100% Complete | ||||||||||||||||
{{ $detailMember->name }} (ID: {{ $detailMember->id }} | No. Anggota: {{ $detailMember->nomorAnggota }})
| No | Periode | Nama & Uraian Original CSV | Split Category | Total Amount |
|---|---|---|---|---|
| {{ $loop->iteration }} | {{ $r->period }} |
{{ $r->raw_name }}
{{ $r->original_uraian }}
|
@if($r->simpok > 0)
SIMPOK Rp {{ number_format($r->simpok) }}
@endif
@if($r->simwa > 0)
SIMWA Rp {{ number_format($r->simwa) }}
@endif
@if($r->sukarela > 0)
SUKARELA Rp {{ number_format($r->sukarela) }}
@endif
@if($r->ignored > 0)
ANGSURAN Rp {{ number_format($r->ignored) }}
@endif
|
Rp {{ number_format($r->total_amount, 0, ',', '.') }} |
| Tidak ada data import CSV yang terhubung ke member ini. | ||||