From 8f121484d569156027edbd454d3f631cf013c11e Mon Sep 17 00:00:00 2001 From: aweso Date: Tue, 6 Jan 2026 14:06:32 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=81=EC=97=85=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=ED=86=B5=ED=95=A9=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=AA=85?= =?UTF-8?q?=EC=B9=AD=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit πŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- .claude/settings.local.json | 8 +++ DB_SYNC_GUIDE.md | 2 +- GIT_AUTO_GUIDE.md | 81 +++++++++++++++++++++++++++ git-auto.ps1 | 52 +++++++++++++++++ sales_process_plan.md | 14 ++--- salesmanagement/api/company_info.php | 2 +- salesmanagement/api/init_db.php | 8 +-- salesmanagement/api/sales_members.php | 2 +- salesmanagement/api/sales_tenants.php | 14 ++--- salesmanagement/index.php | 4 +- 10 files changed, 164 insertions(+), 23 deletions(-) create mode 100644 .claude/settings.local.json create mode 100644 GIT_AUTO_GUIDE.md create mode 100644 git-auto.ps1 diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..122aaf4 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,8 @@ +{ + "permissions": { + "allow": [ + "Bash(echo:*)", + "Bash(cat:*)" + ] + } +} diff --git a/DB_SYNC_GUIDE.md b/DB_SYNC_GUIDE.md index 02fdc1f..1f0456a 100644 --- a/DB_SYNC_GUIDE.md +++ b/DB_SYNC_GUIDE.md @@ -193,7 +193,7 @@ mysqldump -h 127.0.0.1 -u root -p chandj > /tmp/chandj_backup.sql ### 둜컬둜 λ‹€μš΄λ‘œλ“œ (PowerShell) ```powershell -scp pro@114.203.209.83:/tmp/chandj_backup.sql .\chandj_backup.sql +scp pro@114.203.209.83:/chandj_backup.sql .\chandj_backup.sql ``` ### 둜컬 Docker에 적용 diff --git a/GIT_AUTO_GUIDE.md b/GIT_AUTO_GUIDE.md new file mode 100644 index 0000000..3dc4149 --- /dev/null +++ b/GIT_AUTO_GUIDE.md @@ -0,0 +1,81 @@ +# Git μžλ™ν™” κ°€μ΄λ“œ + +## κ°œμš” + +`g` λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ Git μž‘μ—…(`git add .`, `git commit`, `git push`)을 ν•œ λ²ˆμ— μžλ™ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. + +## μ‚¬μš© 방법 + +```powershell +g "컀밋 λ©”μ‹œμ§€" +``` + +### μ˜ˆμ‹œ + +```powershell +g "sales 둜컬파일 둜그인 μˆ˜μ •" +``` + +이 λͺ…λ Ήμ–΄λŠ” λ‹€μŒμ„ μžλ™μœΌλ‘œ μ‹€ν–‰ν•©λ‹ˆλ‹€: +1. `git add .` - λͺ¨λ“  변경사항 μŠ€ν…Œμ΄μ§• +2. `git commit -m "sales 둜컬파일 둜그인 μˆ˜μ •"` - 컀밋 생성 +3. `git push` - 원격 μ €μž₯μ†Œμ— ν‘Έμ‹œ + +## μ„€μ • μ™„λ£Œ 확인 + +μƒˆλ‘œμš΄ PowerShell 창을 μ—΄κ±°λ‚˜ λ‹€μŒ λͺ…λ Ήμ–΄λ‘œ ν•¨μˆ˜λ₯Ό λ‘œλ“œν•˜μ„Έμš”: + +```powershell +. $PROFILE +``` + +ν•¨μˆ˜κ°€ μ œλŒ€λ‘œ λ‘œλ“œλ˜μ—ˆλŠ”μ§€ 확인: + +```powershell +Get-Command g +``` + +## 문제 ν•΄κ²° + +### ν•¨μˆ˜κ°€ μΈμ‹λ˜μ§€ μ•ŠλŠ” 경우 + +1. **ν”„λ‘œν•„ 파일 λ‹€μ‹œ λ‘œλ“œ**: + ```powershell + . $PROFILE + ``` + +2. **μƒˆ PowerShell μ°½ μ—΄κΈ°**: + - ν˜„μž¬ 창을 λ‹«κ³  μƒˆ PowerShell 창을 μ—½λ‹ˆλ‹€. + +3. **ν”„λ‘œν•„ 파일 μœ„μΉ˜ 확인**: + ```powershell + $PROFILE + ``` + +4. **ν”„λ‘œν•„ 파일 λ‚΄μš© 확인**: + ```powershell + Get-Content $PROFILE + ``` + +### μ‹€ν–‰ μ •μ±… 였λ₯˜κ°€ λ°œμƒν•˜λŠ” 경우 + +```powershell +Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser +``` + +## μΆ”κ°€ κΈ°λŠ₯ + +ν˜„μž¬ ν•¨μˆ˜λŠ” λ‹€μŒμ„ ν¬ν•¨ν•©λ‹ˆλ‹€: +- βœ… 각 단계별 μ§„ν–‰ 상황 ν‘œμ‹œ +- βœ… μ—λŸ¬ λ°œμƒ μ‹œ 쀑단 및 λ©”μ‹œμ§€ ν‘œμ‹œ +- βœ… μƒ‰μƒμœΌλ‘œ κ΅¬λΆ„λœ 좜λ ₯ + +## 파일 μœ„μΉ˜ + +- **ν”„λ‘œν•„ 파일**: `$PROFILE` (일반적으둜 `C:\Users\μ‚¬μš©μžλͺ…\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1`) +- **슀크립트 파일**: `git-auto.ps1` (ν”„λ‘œμ νŠΈ 루트) + +--- + +**λ§ˆμ§€λ§‰ μ—…λ°μ΄νŠΈ**: 2025-01-06 + diff --git a/git-auto.ps1 b/git-auto.ps1 new file mode 100644 index 0000000..87c7776 --- /dev/null +++ b/git-auto.ps1 @@ -0,0 +1,52 @@ +# Git μžλ™ν™” 슀크립트 +# μ‚¬μš©λ²•: g "컀밋 λ©”μ‹œμ§€" + +function g { + param( + [Parameter(Mandatory=$true)] + [string]$message + ) + + Write-Host "========================================" -ForegroundColor Cyan + Write-Host "Git μžλ™ν™” μ‹œμž‘" -ForegroundColor Cyan + Write-Host "========================================" -ForegroundColor Cyan + Write-Host "" + + # 1. git add . + Write-Host "β–Ά git add . μ‹€ν–‰ 쀑..." -ForegroundColor Yellow + git add . + if ($LASTEXITCODE -ne 0) { + Write-Host "❌ git add μ‹€νŒ¨" -ForegroundColor Red + return + } + Write-Host "βœ… git add μ™„λ£Œ" -ForegroundColor Green + Write-Host "" + + # 2. git commit + Write-Host "β–Ά git commit μ‹€ν–‰ 쀑..." -ForegroundColor Yellow + Write-Host " λ©”μ‹œμ§€: $message" -ForegroundColor Gray + git commit -m "$message" + if ($LASTEXITCODE -ne 0) { + Write-Host "❌ git commit μ‹€νŒ¨" -ForegroundColor Red + Write-Host " (변경사항이 μ—†κ±°λ‚˜ 이미 μ»€λ°‹λœ μƒνƒœμΌ 수 μžˆμŠ΅λ‹ˆλ‹€)" -ForegroundColor Yellow + return + } + Write-Host "βœ… git commit μ™„λ£Œ" -ForegroundColor Green + Write-Host "" + + # 3. git push + Write-Host "β–Ά git push μ‹€ν–‰ 쀑..." -ForegroundColor Yellow + git push + if ($LASTEXITCODE -ne 0) { + Write-Host "❌ git push μ‹€νŒ¨" -ForegroundColor Red + Write-Host " (원격 μ €μž₯μ†Œ 섀정을 ν™•μΈν•˜μ„Έμš”)" -ForegroundColor Yellow + return + } + Write-Host "βœ… git push μ™„λ£Œ" -ForegroundColor Green + Write-Host "" + + Write-Host "========================================" -ForegroundColor Cyan + Write-Host "βœ… λͺ¨λ“  μž‘μ—… μ™„λ£Œ!" -ForegroundColor Green + Write-Host "========================================" -ForegroundColor Cyan +} + diff --git a/sales_process_plan.md b/sales_process_plan.md index a6a86ab..30f71f0 100644 --- a/sales_process_plan.md +++ b/sales_process_plan.md @@ -1,9 +1,9 @@ -# μ˜μ—…κ΄€λ¦¬μž ν”„λ‘œμ„ΈμŠ€ 및 ν…Œλ„ŒνŠΈ 등둝 관리 κ³„νš +# μ˜μ—…νŒŒνŠΈλ„ˆ ν”„λ‘œμ„ΈμŠ€ 및 ν…Œλ„ŒνŠΈ 등둝 관리 κ³„νš -λ³Έ λ¬Έμ„œλŠ” μ˜μ—…κ΄€λ¦¬μžκ°€ μžμ‹ μ΄ κ΄€λ¦¬ν•˜λŠ” ν…Œλ„ŒνŠΈλ₯Ό λ“±λ‘ν•˜κ³ , μƒν’ˆ 계약을 톡해 λ°œμƒν•˜λŠ” μˆ˜μ΅μ„ μ²΄κ³„μ μœΌλ‘œ κ΄€λ¦¬ν•˜λ©°, μ˜μ—… ν”„λ‘œμ„ΈμŠ€(μ‹œλ‚˜λ¦¬μ˜€)λ₯Ό κΈ°λ‘ν•˜κΈ° μœ„ν•œ κ΅¬ν˜„ κ³„νšμ„ λ‹΄κ³  μžˆμŠ΅λ‹ˆλ‹€. +λ³Έ λ¬Έμ„œλŠ” μ˜μ—…νŒŒνŠΈλ„ˆκ°€ μžμ‹ μ΄ κ΄€λ¦¬ν•˜λŠ” ν…Œλ„ŒνŠΈλ₯Ό λ“±λ‘ν•˜κ³ , μƒν’ˆ 계약을 톡해 λ°œμƒν•˜λŠ” μˆ˜μ΅μ„ μ²΄κ³„μ μœΌλ‘œ κ΄€λ¦¬ν•˜λ©°, μ˜μ—… ν”„λ‘œμ„ΈμŠ€(μ‹œλ‚˜λ¦¬μ˜€)λ₯Ό κΈ°λ‘ν•˜κΈ° μœ„ν•œ κ΅¬ν˜„ κ³„νšμ„ λ‹΄κ³  μžˆμŠ΅λ‹ˆλ‹€. ## 1. κ°œμš” -μ˜μ—…κ΄€λ¦¬μžλŠ” μžμ‹ μ˜ ν™œλ™ 결과인 ν…Œλ„ŒνŠΈμ™€ 계약 정보λ₯Ό μ‹œμŠ€ν…œμ— κΈ°λ‘ν•©λ‹ˆλ‹€. 이 λ°μ΄ν„°λŠ” μ˜μ—…κ΄€λ¦¬μžμ˜ **수읡(Commission)** κ·Όκ±°κ°€ 되며, **μš΄μ˜νŒ€(Operator)**은 이λ₯Ό ν™•μΈν•˜κ³  μŠΉμΈν•¨μœΌλ‘œμ¨ μ΅œμ’… 정산이 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€. +μ˜μ—…νŒŒνŠΈλ„ˆλŠ” μžμ‹ μ˜ ν™œλ™ 결과인 ν…Œλ„ŒνŠΈμ™€ 계약 정보λ₯Ό μ‹œμŠ€ν…œμ— κΈ°λ‘ν•©λ‹ˆλ‹€. 이 λ°μ΄ν„°λŠ” μ˜μ—…νŒŒνŠΈλ„ˆμ˜ **수읡(Commission)** κ·Όκ±°κ°€ 되며, **μš΄μ˜νŒ€(Operator)**은 이λ₯Ό ν™•μΈν•˜κ³  μŠΉμΈν•¨μœΌλ‘œμ¨ μ΅œμ’… 정산이 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€. --- @@ -11,7 +11,7 @@ 제곡된 SQL νŒŒμΌμ„ μ‹€ν–‰ν•˜λ©΄ λ‹€μŒκ³Ό 같은 ꡬ쑰가 μƒμ„±λ©λ‹ˆλ‹€. ### 2.1 sales_tenants (ν…Œλ„ŒνŠΈ 관리) -- μ˜μ—…κ΄€λ¦¬μžμ™€ 1:N κ΄€κ³„λ‘œ λ§€μΉ­λ˜λŠ” 고객사 정보. +- μ˜μ—…νŒŒνŠΈλ„ˆμ™€ 1:N κ΄€κ³„λ‘œ λ§€μΉ­λ˜λŠ” 고객사 정보. - μƒνƒœ(status) λ³€ν™”λ₯Ό 톡해 λ¦¬λ“œ(Lead)μ—μ„œ 계약(Active)κΉŒμ§€μ˜ 단계 관리. ### 2.2 sales_tenant_products (계약 및 수읡 관리) @@ -23,11 +23,11 @@ ## 3. μ˜μ—… ν”„λ‘œμ„ΈμŠ€ 기둝 관리 κ³„νš (C:\Users\light\sam\sales\sales_scenario) -μ˜μ—…κ΄€λ¦¬μžμ˜ ν”„λ‘œμ„ΈμŠ€λ₯Ό `C:\Users\aweso\sam\sales\sales_scenario`에 κΈ°λ‘ν•˜κ³  ν™œμš©ν•˜λŠ” 상세 κ³„νšμž…λ‹ˆλ‹€. +μ˜μ—…νŒŒνŠΈλ„ˆμ˜ ν”„λ‘œμ„ΈμŠ€λ₯Ό `C:\Users\aweso\sam\sales\sales_scenario`에 κΈ°λ‘ν•˜κ³  ν™œμš©ν•˜λŠ” 상세 κ³„νšμž…λ‹ˆλ‹€. ### 3.1 μ‹œλ‚˜λ¦¬μ˜€ 기반 체크리슀트 톡합 - μ‹ κ·œ ν…Œλ„ŒνŠΈ 등둝 μ‹œ, `sales_scenario_checklist` ν…Œμ΄λΈ”μ— ν•΄λ‹Ή ν…Œλ„ŒνŠΈμš© 체크리슀트λ₯Ό μžλ™ μƒμ„±ν•©λ‹ˆλ‹€. -- μ˜μ—…κ΄€λ¦¬μžλŠ” 7단계(λ˜λŠ” μ„€μ •λœ 단계)의 μ˜μ—… ν”„λ‘œμ„ΈμŠ€λ₯Ό μ§„ν–‰ν•˜λ©° 각 체크포인트λ₯Ό 달성할 λ•Œλ§ˆλ‹€ μ²΄ν¬ν•©λ‹ˆλ‹€. +- μ˜μ—…νŒŒνŠΈλ„ˆλŠ” 7단계(λ˜λŠ” μ„€μ •λœ 단계)의 μ˜μ—… ν”„λ‘œμ„ΈμŠ€λ₯Ό μ§„ν–‰ν•˜λ©° 각 체크포인트λ₯Ό 달성할 λ•Œλ§ˆλ‹€ μ²΄ν¬ν•©λ‹ˆλ‹€. ### 3.2 ν™œλ™ 둜그 (sales_scenario_logs) - 체크리슀트 μ΄μ™Έμ˜ ꡬ체적인 상담 λ‚΄μ—­μ΄λ‚˜ μ˜μ—… μ „λž΅μ„ ν…μŠ€νŠΈλ‘œ κΈ°λ‘ν•©λ‹ˆλ‹€. @@ -42,7 +42,7 @@ - ν…Œλ„ŒνŠΈ λͺ©λ‘μ—μ„œ 'μƒν’ˆ/계약 μΆ”κ°€' κΈ°λŠ₯ κ΅¬ν˜„. ### Step 2: 수읡 λŒ€μ‹œλ³΄λ“œ ꡬ좕 -- μ˜μ—…κ΄€λ¦¬μžκ°€ μžμ‹ μ˜ λˆ„μ  수읡(승인됨/λŒ€κΈ°μ€‘)을 ν•œλˆˆμ— λ³Ό 수 μžˆλŠ” 톡계 μΉ΄λ“œ UI κ΅¬ν˜„. +- μ˜μ—…νŒŒνŠΈλ„ˆκ°€ μžμ‹ μ˜ λˆ„μ  수읡(승인됨/λŒ€κΈ°μ€‘)을 ν•œλˆˆμ— λ³Ό 수 μžˆλŠ” 톡계 μΉ΄λ“œ UI κ΅¬ν˜„. - `sales_tenant_products` ν…Œμ΄λΈ”μ˜ κΈˆμ•‘ ν•©μ‚° 연동. ### Step 3: μš΄μ˜νŒ€ 승인 ν”„λ‘œμ„ΈμŠ€ diff --git a/salesmanagement/api/company_info.php b/salesmanagement/api/company_info.php index 340919d..d3ab414 100644 --- a/salesmanagement/api/company_info.php +++ b/salesmanagement/api/company_info.php @@ -187,7 +187,7 @@ $roleData = [ ], 'current_user' => [ "id" => "user_sales_admin", - "name" => "μ˜μ—…κ΄€λ¦¬μž", + "name" => "μ˜μ—…νŒŒνŠΈλ„ˆ", "role" => "μ˜μ—…κ΄€λ¦¬", "sub_managers" => [ [ diff --git a/salesmanagement/api/init_db.php b/salesmanagement/api/init_db.php index 07dcbe8..d43de2a 100644 --- a/salesmanagement/api/init_db.php +++ b/salesmanagement/api/init_db.php @@ -53,16 +53,16 @@ try { $stmt->execute(); } - // κΈ°λ³Έ μ˜μ—…κ΄€λ¦¬μž 계정 생성 + // κΈ°λ³Έ μ˜μ—…νŒŒνŠΈλ„ˆ 계정 생성 $check = $pdo->prepare("SELECT id FROM sales_member WHERE member_id = 'sales'"); $check->execute(); if (!$check->fetch()) { - $stmt = $pdo->prepare("INSERT INTO sales_member (member_id, password, name, role) VALUES ('sales', 'sales', 'μ˜μ—…κ΄€λ¦¬μž', 'sales_admin')"); + $stmt = $pdo->prepare("INSERT INTO sales_member (member_id, password, name, role) VALUES ('sales', 'sales', 'μ˜μ—…νŒŒνŠΈλ„ˆ', 'sales_admin')"); $stmt->execute(); } $sales_id = $pdo->lastInsertId() ?: 2; - // κΈ°λ³Έ λ§€λ‹ˆμ € 계정 생성 (μ˜μ—…κ΄€λ¦¬μž ν•˜μœ„) + // κΈ°λ³Έ λ§€λ‹ˆμ € 계정 생성 (μ˜μ—…νŒŒνŠΈλ„ˆ ν•˜μœ„) $check = $pdo->prepare("SELECT id FROM sales_member WHERE member_id = 'manager'"); $check->execute(); if (!$check->fetch()) { @@ -77,7 +77,7 @@ try { if (!$check->fetch()) { $stmt = $pdo->prepare("INSERT INTO sales_record (member_id, customer_name, contract_date, amount) VALUES (?, ?, ?, ?)"); - // μ˜μ—…κ΄€λ¦¬μž(sales) 직접 싀적 + // μ˜μ—…νŒŒνŠΈλ„ˆ(sales) 직접 싀적 $stmt->execute([$sales_id, 'μŠ€νƒ€νŠΈμ—… A', '2024-12-01', 25000000]); $stmt->execute([$sales_id, 'λ²€μ²˜κΈ°μ—… B', '2024-12-10', 30000000]); diff --git a/salesmanagement/api/sales_members.php b/salesmanagement/api/sales_members.php index f85a207..d2f08f7 100644 --- a/salesmanagement/api/sales_members.php +++ b/salesmanagement/api/sales_members.php @@ -85,7 +85,7 @@ try { return; } if ($member_id === 'sales' && $password === 'sales') { - $pdo->prepare("INSERT IGNORE INTO sales_member (member_id, password, name, role) VALUES ('sales', 'sales', 'μ˜μ—…κ΄€λ¦¬μž', 'sales_admin')")->execute(); + $pdo->prepare("INSERT IGNORE INTO sales_member (member_id, password, name, role) VALUES ('sales', 'sales', 'μ˜μ—…νŒŒνŠΈλ„ˆ', 'sales_admin')")->execute(); $stmt = $pdo->prepare("SELECT * FROM sales_member WHERE member_id = 'sales'"); $stmt->execute(); $user = $stmt->fetch(PDO::FETCH_ASSOC); diff --git a/salesmanagement/api/sales_tenants.php b/salesmanagement/api/sales_tenants.php index 3040945..a3d18da 100644 --- a/salesmanagement/api/sales_tenants.php +++ b/salesmanagement/api/sales_tenants.php @@ -33,7 +33,7 @@ function checkTenantPermission($pdo, $tenant_id, $currentUser) { return $tenant['sales_manager_id'] == $currentUser['id']; } - // μ˜μ—…κ΄€λ¦¬μžλŠ” 본인이 λ“±λ‘ν–ˆκ±°λ‚˜, 본인이 λ‹΄λ‹Ή λ§€λ‹ˆμ €μΈ 경우 κ°€λŠ₯ + // μ˜μ—…νŒŒνŠΈλ„ˆλŠ” 본인이 λ“±λ‘ν–ˆκ±°λ‚˜, 본인이 λ‹΄λ‹Ή λ§€λ‹ˆμ €μΈ 경우 κ°€λŠ₯ return ($tenant['manager_id'] == $currentUser['id'] || $tenant['sales_manager_id'] == $currentUser['id']); } @@ -41,8 +41,8 @@ function checkTenantPermission($pdo, $tenant_id, $currentUser) { $pdo->exec(" CREATE TABLE IF NOT EXISTS `sales_tenants` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `manager_id` int(11) NOT NULL COMMENT 'μ˜μ—…ν•œ μ˜μ—…κ΄€λ¦¬μž ID', - `sales_manager_id` int(11) DEFAULT NULL COMMENT '맀칭된 λ§€λ‹ˆμ € ID (μ˜μ—…κ΄€λ¦¬μž 본인 λ˜λŠ” 별도 λ§€λ‹ˆμ €)', + `manager_id` int(11) NOT NULL COMMENT 'μ˜μ—…ν•œ μ˜μ—…νŒŒνŠΈλ„ˆ ID', + `sales_manager_id` int(11) DEFAULT NULL COMMENT '맀칭된 λ§€λ‹ˆμ € ID (μ˜μ—…νŒŒνŠΈλ„ˆ 본인 λ˜λŠ” 별도 λ§€λ‹ˆμ €)', `tenant_name` varchar(200) NOT NULL, `representative` varchar(100) DEFAULT NULL, `business_no` varchar(20) DEFAULT NULL, @@ -180,7 +180,7 @@ try { switch ($method) { case 'GET': if ($action === 'list_tenants') { - // μš΄μ˜μžλŠ” λͺ¨λ“  ν…Œλ„ŒνŠΈ, μ˜μ—…κ΄€λ¦¬/λ§€λ‹ˆμ €λŠ” 본인 μ†Œμ† ν…Œλ„ŒνŠΈλ§Œ + // μš΄μ˜μžλŠ” λͺ¨λ“  ν…Œλ„ŒνŠΈ, μ˜μ—…νŒŒνŠΈλ„ˆ/λ§€λ‹ˆμ €λŠ” 본인 μ†Œμ† ν…Œλ„ŒνŠΈλ§Œ if ($currentUser['role'] === 'operator') { $stmt = $pdo->prepare(" SELECT t.*, m.name as register_name, m.role as register_role, m2.name as manager_name, m2.role as manager_role @@ -203,7 +203,7 @@ try { "); $stmt->execute([$currentUser['id']]); } else { - // μ˜μ—…κ΄€λ¦¬μžλŠ” 본인이 μ˜μ—…ν–ˆκ±°λ‚˜, 본인이 λ§€λ‹ˆμ €λ‘œ λ°°μ •λœ ν…Œλ„ŒνŠΈ 쑰회 + // μ˜μ—…νŒŒνŠΈλ„ˆλŠ” 본인이 μ˜μ—…ν–ˆκ±°λ‚˜, 본인이 λ§€λ‹ˆμ €λ‘œ λ°°μ •λœ ν…Œλ„ŒνŠΈ 쑰회 $stmt = $pdo->prepare(" SELECT t.*, m.name as register_name, m.role as register_role, m2.name as manager_name, m2.role as manager_role FROM sales_tenants t @@ -365,7 +365,7 @@ try { $manager_id = $row['manager_id']; $amount = $row['contract_amount']; - // μ˜μ—…κ΄€λ¦¬μž 계측 확인 + // μ˜μ—…νŒŒνŠΈλ„ˆ 계측 확인 // 1. λ“±λ‘μž 본인이 sales_admin인지 확인 // 2. μƒμœ„(parent)κ°€ sales_admin인지 확인 $sales_admin_count = 0; @@ -600,7 +600,7 @@ try { if (!$tenant_id) throw new Exception("ν…Œλ„ŒνŠΈ IDκ°€ λˆ„λ½λ˜μ—ˆμŠ΅λ‹ˆλ‹€."); - // κΆŒν•œ 확인: λ°°μ§€ 지정은 운영자 λ˜λŠ” ν•΄λ‹Ή ν…Œλ„ŒνŠΈλ₯Ό λ“±λ‘ν•œ μ˜μ—…κ΄€λ¦¬μžλ§Œ κ°€λŠ₯ + // κΆŒν•œ 확인: λ°°μ§€ 지정은 운영자 λ˜λŠ” ν•΄λ‹Ή ν…Œλ„ŒνŠΈλ₯Ό λ“±λ‘ν•œ μ˜μ—…νŒŒνŠΈλ„ˆλ§Œ κ°€λŠ₯ $stmt = $pdo->prepare("SELECT manager_id FROM sales_tenants WHERE id = ?"); $stmt->execute([$tenant_id]); $t = $stmt->fetch(PDO::FETCH_ASSOC); diff --git a/salesmanagement/index.php b/salesmanagement/index.php index 487c8be..4eb8070 100644 --- a/salesmanagement/index.php +++ b/salesmanagement/index.php @@ -805,7 +805,7 @@ {detailModalUser.name} ({detailModalUser.member_id}) ν•˜μœ„ 멀버 -

이 μ˜μ—…κ΄€λ¦¬μžμ—κ²Œ μ†Œμ†λœ λͺ¨λ“  λ§€λ‹ˆμ € λͺ©λ‘μž…λ‹ˆλ‹€.

+

이 μ˜μ—…νŒŒνŠΈλ„ˆμ—κ²Œ μ†Œμ†λœ λͺ¨λ“  λ§€λ‹ˆμ € λͺ©λ‘μž…λ‹ˆλ‹€.