@@ -492,6 +525,32 @@
);
};
+ const ApiInfoModal = ({ isOpen, onClose }) => {
+ if (!isOpen) return null;
+ return (
+
+ );
+ };
+
// Date Range Selector Component
const DateRangeSelector = ({ startDate, endDate, onStartChange, onEndChange, onSearch }) => (
@@ -700,6 +759,7 @@
const [error, setError] = useState(null);
const [txtExportModalOpen, setTxtExportModalOpen] = useState(false);
const [fieldExportModalOpen, setFieldExportModalOpen] = useState(false);
+ const [isApiInfoModalOpen, setIsApiInfoModalOpen] = useState(false);
// 날짜 초기화
useEffect(() => {
@@ -783,7 +843,7 @@
return (
-
+
setIsApiInfoModalOpen(true)} />
{/* 통계 카드 */}
@@ -916,6 +976,11 @@
onClose={() => setFieldExportModalOpen(false)}
logs={logs}
/>
+
+ setIsApiInfoModalOpen(false)}
+ />
);
};
diff --git a/ecard/카드사용내역조회.md b/barobill/ecard/카드사용내역조회.md
similarity index 100%
rename from ecard/카드사용내역조회.md
rename to barobill/ecard/카드사용내역조회.md
diff --git a/etax/README_DB.md b/barobill/etax/README_DB.md
similarity index 100%
rename from etax/README_DB.md
rename to barobill/etax/README_DB.md
diff --git a/etax/api/API_URL_GUIDE.md b/barobill/etax/api/API_URL_GUIDE.md
similarity index 100%
rename from etax/api/API_URL_GUIDE.md
rename to barobill/etax/api/API_URL_GUIDE.md
diff --git a/etax/api/README.md b/barobill/etax/api/README.md
similarity index 100%
rename from etax/api/README.md
rename to barobill/etax/api/README.md
diff --git a/etax/api/barobill_config.php b/barobill/etax/api/barobill_config.php
similarity index 99%
rename from etax/api/barobill_config.php
rename to barobill/etax/api/barobill_config.php
index c52547f..1d0f911 100644
--- a/etax/api/barobill_config.php
+++ b/barobill/etax/api/barobill_config.php
@@ -16,8 +16,8 @@
// load .env file
-require_once __DIR__ . '/../../lib/DotEnv.php';
-(new DotEnv(__DIR__ . '/../../.env'))->load();
+require_once __DIR__ . '/../../../lib/DotEnv.php';
+(new DotEnv(__DIR__ . '/../../../.env'))->load();
// 인증서 키(CERTKEY) 파일 경로
$documentRoot = getenv('DOCUMENT_ROOT');
diff --git a/etax/api/debug_test.php b/barobill/etax/api/debug_test.php
similarity index 69%
rename from etax/api/debug_test.php
rename to barobill/etax/api/debug_test.php
index 5c7efc3..3a9a804 100644
--- a/etax/api/debug_test.php
+++ b/barobill/etax/api/debug_test.php
@@ -5,21 +5,21 @@ error_reporting(E_ALL);
header('Content-Type: text/plain');
echo "Current Dir: " . __DIR__ . "\n";
-echo "DotEnv Path: " . __DIR__ . '/../../lib/DotEnv.php' . "\n";
-echo "Env File Path: " . __DIR__ . '/../../.env' . "\n";
+echo "DotEnv Path: " . __DIR__ . '/../../../lib/DotEnv.php' . "\n";
+echo "Env File Path: " . __DIR__ . '/../../../.env' . "\n";
-if (file_exists(__DIR__ . '/../../lib/DotEnv.php')) {
+if (file_exists(__DIR__ . '/../../../lib/DotEnv.php')) {
echo "DotEnv file exists.\n";
- require_once __DIR__ . '/../../lib/DotEnv.php';
+ require_once __DIR__ . '/../../../lib/DotEnv.php';
echo "DotEnv loaded.\n";
} else {
echo "DotEnv file NOT found.\n";
}
-if (file_exists(__DIR__ . '/../../.env')) {
+if (file_exists(__DIR__ . '/../../../.env')) {
echo ".env file exists.\n";
try {
- (new DotEnv(__DIR__ . '/../../.env'))->load();
+ (new DotEnv(__DIR__ . '/../../../.env'))->load();
echo ".env loaded.\n";
} catch (Exception $e) {
echo "Error loading .env: " . $e->getMessage() . "\n";
diff --git a/etax/api/delete.php b/barobill/etax/api/delete.php
similarity index 100%
rename from etax/api/delete.php
rename to barobill/etax/api/delete.php
diff --git a/etax/api/deleted_ids.json b/barobill/etax/api/deleted_ids.json
similarity index 100%
rename from etax/api/deleted_ids.json
rename to barobill/etax/api/deleted_ids.json
diff --git a/etax/api/invoices.php b/barobill/etax/api/invoices.php
similarity index 100%
rename from etax/api/invoices.php
rename to barobill/etax/api/invoices.php
diff --git a/etax/api/invoices_data.json b/barobill/etax/api/invoices_data.json
similarity index 91%
rename from etax/api/invoices_data.json
rename to barobill/etax/api/invoices_data.json
index a17f63c..3ec621d 100644
--- a/etax/api/invoices_data.json
+++ b/barobill/etax/api/invoices_data.json
@@ -313,6 +313,34 @@
"memo": "A\/S 납품",
"createdAt": "2026-01-14T09:13:58",
"barobillInvoiceId": "1"
+ },
+ {
+ "id": "inv_1768384628",
+ "issueKey": "MGT202601141857081230",
+ "mgtKey": "MGT202601141857081230",
+ "supplierBizno": "664-86-03713",
+ "supplierName": "(주)코드브릿지엑스",
+ "recipientBizno": "311-46-00378",
+ "recipientName": "김인태",
+ "supplyDate": "2025-12-22",
+ "items": [
+ {
+ "name": "조명기구",
+ "qty": 21,
+ "unitPrice": 173624,
+ "vatType": "vat",
+ "supplyAmt": 3646104,
+ "vat": 364610,
+ "total": 4010714
+ }
+ ],
+ "totalSupplyAmt": 3646104,
+ "totalVat": 364610,
+ "total": 4010714,
+ "status": "issued",
+ "memo": "A\/S 납품",
+ "createdAt": "2026-01-14T18:57:08",
+ "barobillInvoiceId": "1"
}
]
}
\ No newline at end of file
diff --git a/etax/api/issue.php b/barobill/etax/api/issue.php
similarity index 100%
rename from etax/api/issue.php
rename to barobill/etax/api/issue.php
diff --git a/etax/api/status.php b/barobill/etax/api/status.php
similarity index 100%
rename from etax/api/status.php
rename to barobill/etax/api/status.php
diff --git a/etax/barobill_api_info.php b/barobill/etax/barobill_api_info.php
similarity index 91%
rename from etax/barobill_api_info.php
rename to barobill/etax/barobill_api_info.php
index 762f2ad..7c625d8 100644
--- a/etax/barobill_api_info.php
+++ b/barobill/etax/barobill_api_info.php
@@ -1,6 +1,6 @@
load();
+require_once __DIR__ . '/../../lib/DotEnv.php';
+(new DotEnv(__DIR__ . '/../../.env'))->load();
require_once(getenv('DOCUMENT_ROOT') . "/session.php");
?>
@@ -20,12 +20,12 @@ require_once(getenv('DOCUMENT_ROOT') . "/session.php");
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: linear-gradient(135deg, #43cea2 0%, #185a9d 100%);
min-height: 100vh;
- padding: 20px;
+ padding: 40px 20px;
}
.container {
max-width: 1200px;
- margin: 0 auto;
+ margin: 20px auto;
background: white;
border-radius: 20px;
padding: 40px;
@@ -166,31 +166,6 @@ require_once(getenv('DOCUMENT_ROOT') . "/session.php");
color: #e83e8c;
}
- .home-btn {
- position: fixed;
- top: 30px;
- left: 30px;
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
- color: white;
- border: none;
- padding: 12px 25px;
- border-radius: 50px;
- cursor: pointer;
- font-size: 1em;
- box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
- transition: all 0.3s ease;
- z-index: 1000;
- text-decoration: none;
- display: inline-flex;
- align-items: center;
- gap: 8px;
- font-weight: 600;
- }
-
- .home-btn:hover {
- transform: translateY(-3px);
- box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
- }
@media (max-width: 768px) {
.container {
@@ -201,21 +176,10 @@ require_once(getenv('DOCUMENT_ROOT') . "/session.php");
font-size: 1.8em;
}
- .home-btn {
- top: 15px;
- left: 15px;
- padding: 10px 20px;
- font-size: 0.9em;
- }
}
-
-
- 🏠
- 홈으로
-
diff --git a/etax/dev.md b/barobill/etax/dev.md
similarity index 100%
rename from etax/dev.md
rename to barobill/etax/dev.md
diff --git a/etax/index.php b/barobill/etax/index.php
similarity index 88%
rename from etax/index.php
rename to barobill/etax/index.php
index d62e7a8..7a3dcf0 100644
--- a/etax/index.php
+++ b/barobill/etax/index.php
@@ -8,21 +8,26 @@
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/barobill_registration/api.php b/barobill/registration/api.php
similarity index 95%
rename from barobill_registration/api.php
rename to barobill/registration/api.php
index fcb23e0..5bbf526 100644
--- a/barobill_registration/api.php
+++ b/barobill/registration/api.php
@@ -3,10 +3,10 @@ header('Content-Type: application/json');
$method = $_SERVER['REQUEST_METHOD'];
try {
- if (!file_exists("../lib/mydb.php")) {
- throw new Exception("Required library file ../lib/mydb.php not found.");
+ if (!file_exists("../../lib/mydb.php")) {
+ throw new Exception("Required library file ../../lib/mydb.php not found.");
}
- require_once("../lib/mydb.php");
+ require_once("../../lib/mydb.php");
$pdo = db_connect();
diff --git a/barobill_registration/index.php b/barobill/registration/index.php
similarity index 82%
rename from barobill_registration/index.php
rename to barobill/registration/index.php
index 9c94105..2f84aa7 100644
--- a/barobill_registration/index.php
+++ b/barobill/registration/index.php
@@ -47,42 +47,48 @@
// --- Layout Components ---
- const Header = () => (
-
-
-
-
+ const Header = ({ onOpenApiInfo }) => (
+
+
+
+
-
바로빌 회원관리 솔루션
+
+
바로빌 회원관리
+
Barobill Member Management
+
-
@@ -191,21 +197,40 @@
);
};
- const Modal = ({ isOpen, onClose, title, children }) => {
+ const Modal = ({ isOpen, onClose, title, children, maxWidth = "max-w-2xl" }) => {
if (!isOpen) return null;
return (
-
-
-
{title}
-
+
+
+
+
+ {title}
+
+
-
{children}
+
{children}
);
};
+ const ApiInfoModal = ({ isOpen, onClose }) => {
+ return (
+
+
+
+
+
+ );
+ };
+
// --- Main App ---
const App = () => {
@@ -213,6 +238,7 @@
const [loading, setLoading] = useState(true);
const [activeTab, setActiveTab] = useState('list');
const [editingMember, setEditingMember] = useState(null);
+ const [isApiInfoModalOpen, setIsApiInfoModalOpen] = useState(false);
// Auto-fill feature states
const [registerKey, setRegisterKey] = useState(0);
@@ -246,7 +272,7 @@
useEffect(() => {
setTimeout(() => lucide.createIcons(), 100);
- }, [activeTab, members, editingMember]);
+ }, [activeTab, members, editingMember, isApiInfoModalOpen]);
const handleRegister = async (data) => {
try {
@@ -300,7 +326,7 @@
return (
-
+
setIsApiInfoModalOpen(true)} />
@@ -422,6 +448,11 @@
onCancel={() => setEditingMember(null)}
/>
+
+
setIsApiInfoModalOpen(false)}
+ />