fix:바로빌 API 메서드에 테넌트별 서버 모드 적용

- 각 API 메서드(cards, transactions, accounts, issue 등)에서
  테넌트의 server_mode 설정에 따라 SOAP 클라이언트 재초기화
- 기존에는 index()에서만 적용되어 별도 HTTP 요청인 API 호출 시
  기본 설정으로 돌아가는 버그 수정
- EcardController, EaccountController, EtaxController, HometaxController 모두 적용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-02-03 09:00:06 +09:00
parent c9581bc9b1
commit 0b2b0b20aa
4 changed files with 52 additions and 0 deletions

View File

@@ -172,6 +172,11 @@ public function accounts(Request $request): JsonResponse
$tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID);
$barobillMember = BarobillMember::where('tenant_id', $tenantId)->first();
// 테넌트별 서버 모드 적용
if ($barobillMember && $barobillMember->server_mode) {
$this->applyMemberServerMode($barobillMember);
}
// 바로빌 사용자 ID 결정
$userId = $barobillMember?->barobill_id ?? '';
@@ -253,6 +258,11 @@ public function transactions(Request $request): JsonResponse
$barobillMember = BarobillMember::where('tenant_id', $tenantId)->first();
$userId = $barobillMember?->barobill_id ?? '';
// 테넌트별 서버 모드 적용
if ($barobillMember && $barobillMember->server_mode) {
$this->applyMemberServerMode($barobillMember);
}
// DB에서 저장된 계정과목 데이터 조회
$savedData = BankTransaction::getByDateRange($tenantId, $startDate, $endDate, $bankAccountNum ?: null);

View File

@@ -167,6 +167,13 @@ private function applyMemberServerMode(BarobillMember $member): void
public function cards(Request $request): JsonResponse
{
try {
// 테넌트별 서버 모드 적용
$tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID);
$barobillMember = BarobillMember::where('tenant_id', $tenantId)->first();
if ($barobillMember && $barobillMember->server_mode) {
$this->applyMemberServerMode($barobillMember);
}
$availOnly = $request->input('availOnly', 0);
$result = $this->callSoap('GetCardEx2', [
@@ -263,6 +270,11 @@ public function transactions(Request $request): JsonResponse
$barobillMember = BarobillMember::where('tenant_id', $tenantId)->first();
$userId = $barobillMember?->barobill_id ?? '';
// 테넌트별 서버 모드 적용
if ($barobillMember && $barobillMember->server_mode) {
$this->applyMemberServerMode($barobillMember);
}
// 디버그 로그
Log::info('[ECard] 조회 요청', [
'tenantId' => $tenantId,

View File

@@ -193,6 +193,13 @@ public function getInvoices(): JsonResponse
*/
public function issue(Request $request): JsonResponse
{
// 테넌트별 서버 모드 적용
$tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID);
$barobillMember = BarobillMember::where('tenant_id', $tenantId)->first();
if ($barobillMember && $barobillMember->server_mode) {
$this->applyMemberServerMode($barobillMember);
}
$input = $request->all();
$useRealAPI = $this->soapClient !== null && ($this->isTestMode || !empty($this->certKey));
@@ -261,6 +268,13 @@ public function issue(Request $request): JsonResponse
*/
public function sendToNts(Request $request): JsonResponse
{
// 테넌트별 서버 모드 적용
$tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID);
$barobillMember = BarobillMember::where('tenant_id', $tenantId)->first();
if ($barobillMember && $barobillMember->server_mode) {
$this->applyMemberServerMode($barobillMember);
}
$invoiceId = $request->input('invoiceId');
// 인보이스 조회

View File

@@ -188,6 +188,11 @@ public function sales(Request $request): JsonResponse
]);
}
// 테넌트별 서버 모드 적용
if ($barobillMember->server_mode) {
$this->applyMemberServerMode($barobillMember);
}
$userId = $barobillMember->barobill_id ?? '';
if (empty($userId)) {
@@ -308,6 +313,11 @@ public function purchases(Request $request): JsonResponse
]);
}
// 테넌트별 서버 모드 적용
if ($barobillMember->server_mode) {
$this->applyMemberServerMode($barobillMember);
}
$userId = $barobillMember->barobill_id ?? '';
if (empty($userId)) {
@@ -533,6 +543,12 @@ public function diagnose(Request $request): JsonResponse
try {
$tenantId = session('selected_tenant_id', self::HEADQUARTERS_TENANT_ID);
$barobillMember = BarobillMember::where('tenant_id', $tenantId)->first();
// 테넌트별 서버 모드 적용
if ($barobillMember && $barobillMember->server_mode) {
$this->applyMemberServerMode($barobillMember);
}
$userId = $barobillMember?->barobill_id ?? '';
$memberCorpNum = $barobillMember?->biz_no ?? '';