- Replace Stripe automatic payouts with manual admin-processed bank transfers - Add banking information fields (IBAN, bank name, account holder) to User model - Implement manual payout workflow: pending → approved → processing → completed - Add comprehensive admin interface for payout review and processing - Update Payout model with manual processing fields and workflow methods - Add transfer reference tracking and rejection/failure handling - Consolidate all migration fragments into clean "create" migrations - Add comprehensive documentation for manual payout workflow - Fix Event payout_status enum definition and database column issues This addresses France's lack of Stripe Global Payouts support by implementing a complete manual bank transfer workflow while maintaining audit trails and proper admin controls. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
51 lines
2.2 KiB
Plaintext
51 lines
2.2 KiB
Plaintext
<div class="container mx-auto px-4 py-8">
|
|
<div class="flex justify-between items-center mb-6">
|
|
<h1 class="text-3xl font-bold text-gray-900">Manual Payout Administration</h1>
|
|
</div>
|
|
|
|
<!-- Pending Payouts - Require Review -->
|
|
<% if @pending_payouts.any? %>
|
|
<div class="mb-8">
|
|
<h2 class="text-xl font-semibold text-gray-900 mb-4">📋 Pending Review (<%= @pending_payouts.count %>)</h2>
|
|
<div class="bg-white rounded-lg shadow overflow-hidden">
|
|
<%= render partial: 'payout_table', locals: { payouts: @pending_payouts, show_actions: true, section: 'pending' } %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
|
|
<!-- Approved Payouts - Ready for Transfer -->
|
|
<% if @approved_payouts.any? %>
|
|
<div class="mb-8">
|
|
<h2 class="text-xl font-semibold text-gray-900 mb-4">✅ Approved - Ready for Transfer (<%= @approved_payouts.count %>)</h2>
|
|
<div class="bg-white rounded-lg shadow overflow-hidden">
|
|
<%= render partial: 'payout_table', locals: { payouts: @approved_payouts, show_actions: true, section: 'approved' } %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
|
|
<!-- Processing Payouts - Transfer Initiated -->
|
|
<% if @processing_payouts.any? %>
|
|
<div class="mb-8">
|
|
<h2 class="text-xl font-semibold text-gray-900 mb-4">🔄 Processing - Transfer in Progress (<%= @processing_payouts.count %>)</h2>
|
|
<div class="bg-white rounded-lg shadow overflow-hidden">
|
|
<%= render partial: 'payout_table', locals: { payouts: @processing_payouts, show_actions: true, section: 'processing' } %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
|
|
<!-- Recent Completed Payouts -->
|
|
<% if @completed_payouts.any? %>
|
|
<div class="mb-8">
|
|
<h2 class="text-xl font-semibold text-gray-900 mb-4">✨ Recently Completed</h2>
|
|
<div class="bg-white rounded-lg shadow overflow-hidden">
|
|
<%= render partial: 'payout_table', locals: { payouts: @completed_payouts, show_actions: false, section: 'completed' } %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if @pending_payouts.empty? && @approved_payouts.empty? && @processing_payouts.empty? && @completed_payouts.empty? %>
|
|
<div class="bg-white rounded-lg shadow p-6 text-center">
|
|
<p class="text-gray-500">No payouts found.</p>
|
|
</div>
|
|
<% end %>
|
|
</div> |