Files
sam-manage/app/Http/Controllers/Barobill/BarobillController.php
pro aadd6d5e07 feat:사용량조회 화면에 테넌트 요약 카드 추가
- 바로빌 설정 화면과 동일한 스타일의 보라색 그라데이션 카드
- 테넌트 ID, 회사명, 사업자번호, 대표자, 담당자, 바로빌 ID 표시
- 파트너사(테넌트 1) 배지 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 14:25:05 +09:00

144 lines
4.4 KiB
PHP

<?php
namespace App\Http\Controllers\Barobill;
use App\Http\Controllers\Controller;
use App\Models\Barobill\BarobillMember;
use App\Models\Tenants\Tenant;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\View\View;
/**
* 바로빌 컨트롤러
*/
class BarobillController extends Controller
{
/**
* 바로빌 설정 페이지
* HTMX 요청 시 전체 페이지 리로드 (스크립트 로딩을 위해)
*/
public function config(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('barobill.config.index'));
}
// 현재 선택된 테넌트 정보
$tenantId = session('selected_tenant_id');
$currentTenant = $tenantId ? Tenant::find($tenantId) : null;
// 해당 테넌트의 바로빌 회원사 정보
$barobillMember = $tenantId
? BarobillMember::where('tenant_id', $tenantId)->first()
: null;
return view('barobill.config.index', compact('currentTenant', 'barobillMember'));
}
/**
* 회원사관리 페이지
* HTMX 요청 시 전체 페이지 리로드 (스크립트 로딩을 위해)
*/
public function members(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('barobill.members.index'));
}
// 테넌트 목록 (전체 테넌트 모드에서 선택용)
$tenants = Tenant::select('id', 'company_name')->orderBy('company_name')->get();
return view('barobill.members.index', compact('tenants'));
}
/**
* 바로빌 설정 페이지 (이메일 주소 및 기타 자료 수정/동기화)
*/
public function settings(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('barobill.settings.index'));
}
// 현재 선택된 테넌트 정보
$tenantId = session('selected_tenant_id', 1);
$currentTenant = Tenant::find($tenantId);
// 해당 테넌트의 바로빌 회원사 정보
$barobillMember = BarobillMember::where('tenant_id', $tenantId)->first();
return view('barobill.settings.index', compact('currentTenant', 'barobillMember'));
}
/**
* 전자세금계산서 페이지
*/
public function taxInvoice(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('barobill.tax-invoice.index'));
}
return view('barobill.tax-invoice.index');
}
/**
* 계좌조회 페이지
*/
public function bankAccount(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('barobill.bank-account.index'));
}
return view('barobill.bank-account.index');
}
/**
* 카드사용내역 페이지
*/
public function cardUsage(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('barobill.card-usage.index'));
}
return view('barobill.card-usage.index');
}
/**
* 홈텍스매입/매출 페이지
*/
public function hometax(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('barobill.hometax.index'));
}
return view('barobill.hometax.index');
}
/**
* 사용량조회 페이지
*/
public function usage(Request $request): View|Response
{
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('barobill.usage.index'));
}
// 현재 선택된 테넌트 정보
$tenantId = session('selected_tenant_id', 1);
$currentTenant = Tenant::find($tenantId);
// 해당 테넌트의 바로빌 회원사 정보
$barobillMember = BarobillMember::where('tenant_id', $tenantId)->first();
// 본사(테넌트 1) 여부
$isHeadquarters = $tenantId == 1;
return view('barobill.usage.index', compact('currentTenant', 'barobillMember', 'isHeadquarters'));
}
}