๋ค์ "๋ฐฐ๊ฒฝ ์ง์"์ ์ฐธ๊ณ ํด, NCSS CP ์ ์ฐ์์คํ
์์ "NCSS๋ด ์ธ๊ธ๊ณ์ฐ์ ์กฐํ ๋ฐ ์ ํ๋ฐํ ๊ธฐ๋ฅ ์ ์" ๋ด์ญ ๊ธฐ๋ฐ ํ๋ฉด๋ค์ ์ ์ํด์ค. ์ด๋ "๊ฐ์ ํฌ์ธํธ"์ ์ธ๊ธํ ๋ด์ฉ๋ ๋ฐ์๋ ์ ์๊ฒ ํด์ค #๋ฐฐ๊ฒฝ ์ง์ SK๋ธ๋ก๋๋ฐด๋๋ CP(Contents Provider)์์ ์ํ, ๋๋ผ๋ง๋ฑ์ ์ฝํ
์ธ ๋ฅผ ์๊ธํด IPTV๋ด VoD ์๋น์ค๋ฅผ ์ ๊ณต์ค์ด๊ณ , ์ด ์๋น์ค์์ ๋งค์ ๋ฐ์ํ ๋งค์ถ ๋์ ๊ฐ CP๋ณ ๊ณ์ฝ์กฐ๊ฑด์ผ๋ก ์ ์ฐํ๋ NCSS๋ผ๋ ์์คํ
์ด ์๋ค. NCSS์๋ CP์ ๊ณ์ฝ์ ๋งบ์ ์ ์ฐ๋ด๋น์๋ค์ด ๊ณ์ฝ์กฐ๊ฑด์ ์
๋ ฅํ๊ณ , ๊ทธ ๊ณ์ฝ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ์ฐ๊ฒฐ๊ณผ๊ฐ ์ฐ์ถ๋๋ค. PoC๋ผ๋ ์ฉ์ด๋ VoD๊ฐ ํธ์ฑ๋์ด ๋งค์ถ์ด ๋ฐ์ํ๋ ๋งค์ฒด ๋จ์์ด๋ฉฐ, B tv, IP-CATV, T Play ์ธ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค. NCSS์์ ๊ณ์ฝ์ ๋์ผํ CP์ด๋๋ผ๋ ๊ฐ ์ ์ฐ๋ด๋น์๋ง๋ค ๋ค๋ฅธ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค์์ ๊ณ์ฝ์ ์
๋ ฅํ๊ณ ์ด์ ๋ฐ๋ผ ๊ฐ ๋ด๋น์์ ๊ณ์ฝ๋ณ ์ ์ฐ๊ฒฐ๊ณผ๊ฐ ์ฐ์ถ๋๋ค. ์ฆ, ์ ์ฐ๊ฒฐ๊ณผ๋ ๊ฐ ์ ์ฐ๋ด๋น์์ ๊ณ์ฝ๋ณ๋ก PoC๋จ์๋ก ๊ทธ๋ฃนํ ๋์ด ์ฐ์ถ๋๋ค. CP๊ฐ ๋ฐํํ๋ ์ธ๊ธ๊ณ์ฐ์๋ ์ฌ์
์๋ช
, ์ฌ์
์๋ฒํธ, ๊ณต๊ธ๊ฐ์ก, ์ธ์ก, ๋ฐํ์ผ ์ ๋ณด๋ง ์๊ณ , ๋์ PoC์ ๋ณด๋ SK๋ธ๋ก๋๋ฐด๋ ์ ์ฐ๋ด๋น์ ์ ๋ณด๋ ์ ๊ณต๋์ง ์๋๋ค. ์ธ๊ธ๊ณ์ฐ์๋ ์๋น์ค๊ฐ ์ ๊ณต๋๋ ๋งค์ฒด ๋จ์์ธ PoC ๋ณ๋ก ๋ฐํ๋๋ค. #NCSS๋ด ์ธ๊ธ๊ณ์ฐ์ ์กฐํ ๋ฐ ์ ํ๋ฐํ ๊ธฐ๋ฅ ์ ์ SK๋ธ๋ก๋๋ฐด๋ SAP์ ๋ฑ๋ก๋ ์ "๋ฐฐ๊ฒฝ ์ง์"์ ๊ธฐ์ ํ ์กฐ๊ฑด์ ์ธ๊ธ๊ณ์ฐ์๋ฅผ ์กฐํํด ์ ์ฐ๋ด๋น์๋ ๋ณธ์ธ์ด ๊ณ์ฝ์ ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ CP๋ก๋ถํฐ ๋ฐํ๋ ์ธ๊ธ๊ณ์ฐ์ ๋ชฉ๋ก๋ง ํํฐ๋งํด ์กฐํํ ์ ์์ด์ผ ํ๋ค. ์กฐํ๋ ์ธ๊ธ๊ณ์ฐ์ ๋ชฉ๋ก ํ๋ฉด์์ ์ธ๊ธ๊ณ์ฐ์ ์ค ํ๋๋ฅผ ์ ํํด ์ธ๋ถ ํ์
(=์์์ ํ ๋ฐํ ํ๋ฉด) ์ผ๋ก ๋ค์ด๊ฐ๋ฉด ์์ ์ด ๋ด๋นํ๋ ๊ณ์ฝ๋ณ๋ก PoC๋จ์ ๊ทธ๋ฃนํ๋์ด ์ฐ์ถ๋ ๋ณต์๊ฐ์ ์ ์ฐ๊ฒฐ๊ณผ ๊ธ์ก๋ค๊ณผ ๋์กฐ, ์ ํํด ์ธ๊ธ๊ณ์ฐ์-์ ์ฐ๊ฒฐ๊ณผ ๋งค์นญํจ์ผ๋ก SAP์ ์์์ ํ๋ฅผ ๋ฐํํ ์ ์์ด์ผ ํ๋ค. ์ธ๊ธ๊ณ์ฐ์๋ ์ฌ์
์๋ช
, ์ฌ์
์๋ฒํธ, ๊ณต๊ธ๊ฐ์ก, ์ธ์ก, ๋ฐํ์ผ ์ ๋ณด๋ง ์์ด,ย ์ธ๊ธ๊ณ์ฐ์ ๋ชฉ๋ก ํ๋ฉด ์ ๊ณต ์ ๋ณด ์ธ๊ธ๊ณ์ฐ์ ๋ฐํ์ผ์, ์ธ๊ธ๊ณ์ฐ์ ๋ฒํธ, ํํธ๋์ฌ๋ช
, ๋งค์
๊ธ์ก(์ธ๊ธ๊ณ์ฐ์ ์์ ์ธ์ก์ด ํฌํจ๋์ง ์์ ๊ณต๊ธ๊ฐ์ก), ์ ํ๋ฐํ์ํ, ๋งค์นญPoC ์ด๋ค ์ ๊ณต ํญ๋ชฉ ๋ณ๋ก ํํฐ๋งํด์ ์กฐํํ ์ ์๋๋ก ์ ๊ณต ์ ํ๋ฐํ์ํ : ์ด๋ฏธ ์ธ๊ธ๊ณ์ฐ์-์ ์ฐ๊ฒฐ๊ณผ๋ฅผ ๋งค์นญํด ์์์ ํ ๋ฐํ๋ ํญ๋ชฉ์ "๋ฐํ์๋ฃ"๋ก ์ํ ํ์๋๊ณ , ์์ง ๋งค์นญ๋์ง ์์ ๊ฑด "๋ฏธ๋ฐํ"์ผ๋ก ๊ตฌ๋ถํด ์ํ ํ๊ธฐ ๋งค์นญPoC : ์ธ๊ธ๊ณ์ฐ์-์ ์ฐ๊ฒฐ๊ณผ๋ฅผ ๋งค์นญํด ์์์ ํ ๋ฐํ์ ๋งค์นญ๋ ์ ์ฐ๊ฒฐ๊ณผ์ PoC ํ๊ธฐ ์์์ ํ ๋ฐํ ํ๋ฉด ์ ๊ณต ์ ๋ณด ํ์
ํ๋ฉด์ผ๋ก ์ ๊ณต ํ์
ํ๋ฉด ์ข์ธก์๋ "์ธ๊ธ๊ฒ์ฐ์ ์ ๋ณด" ์ ๋ชฉ ์ดํ๋ก ์ธ๊ธ๊ณ์ฐ์ ๋ฐํ์ผ์, ์ธ๊ธ๊ณ์ฐ์ ๋ฒํธ, ํํธ๋์ฌ๋ช
, ๋งค์
๊ธ์ก, ์ ํ๋ฐํ์ํ, ๋งค์นญPoC ํ์ํ๊ณ ํ์
ํ๋ฉด ์ฐ์ธก์๋ "์ ์ฐ ์ ๋ณด ๋งคํ" ์ ๋ชฉ ์ดํ๋ก ํด๋น CP์ PoC๋ณ ์ ์ฐ๊ธ์ก ๋ชฉ๋ก ์ ๊ณต, ์ด ๋ชฉ๋ก์ค์ ์ธ๊ธ๊ณ์ฐ์์ ๋งค์
๊ธ์ก๊ณผ ์ผ์นํ๋ ์ ์ฐ๊ธ์ก์ด ์์ผ๋ฉด ์๋์ผ๋ก ์ฒดํฌ๋ฐ์ค์ ๋งค์นญ ํ์ CP์ PoC๋ณ ์ ์ฐ๊ธ์ก ๋ชฉ๋ก ์ฐ์ธก์ "์์ธ๋ด์ญ" ๋ฒํผ์ ํด๋ฆญํ๋ฉด, ํด๋น ๋ชฉ๋ก์ ์ ์ฐ๊ธ์ก์ด ์ด๋ค ๊ณ์ฝ๊ณผ PoC๋ค์์ ๊ฐ๊ฐ ์ผ๋ง์ ์ ์ฐ๊ธ์ก์ด ๋ฐ์ํ๊ฑด์ง ์ธ๋ถ ๋ด์ญ ํ์ธ ํ๋ฉด ์ ๊ณต ์ ํ๋ฐฃํ์ํ๊ฐ "๋ฏธ๋ฐํ"์ํ์ผ๋๋ฌธ ํ์
ํ๋ฉด ์ฐ์ธก ํ๋จ์ "์์์ ํ ๋ฐํ" ๋ฒํผ์ด ํ์ฑํ๋จ #๊ฐ์ ํฌ์ธํธ ์ธ๊ธ๊ณ์ฐ์๋ ์ฌ์
์๋ช
, ๋ฒํธ, ๊ธ์ก ์ ๋ณด๋ง ์์ง ๋์ PoC์ SKB ์ ์ฐ๋ด๋น์ ์ ๋ณด๋ ์์ผ๋ฏ๋ก, PoC(B tv, IP-CATV, T Play) ๋ณ ์ธ๊ธ๊ณ์ฐ์๊ฐ ์ด๋ค ๊ฒ์ธ์ง ๊ธฐ๋ณธ์ ์ผ๋ก ๋งคํ์ด ๋ถ๊ฐํ๋ ์ผ์ผ์ด ์ ์ฐ๋ด๋น์๊ฐ ์ธ๊ธ๊ณ์ฐ์-์ ์ฐ๊ฒฐ๊ณผ์ ๊ธ์ก์ ๋์กฐํ์ฌ ์ ํ๋ฅผ ๋ฐํํ๋ฉด ์ฌ์ฉ์ฑ์ด ๋จ์ด์ง๋ฏ๋ก, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด๋น์์ ํด๋น CP ๋์ ๊ณ์ฝ(SVOD, TVOD)์ PoC ๋ณ๋ก ํฉ์ฐํ ์ ์ฐ๊ฒฐ๊ณผ ๊ธ์ก์ด CP์์ ๊ณ์ฝ์ ๋ํ PoC๋ณ ๋ฐํ ๋ด์ญ๊ณผ ์ผ์นํด์ผ ํ๋ฏ๋ก NCSS์์ ํ๋จ์ ์ ์ฐ๋ด๋น์๊ฐ ์์ ์ ์ธ๊ธ๊ณ์ฐ์-์ ํ ๋ฐ์ ๋์ CP๋ฅผ ์กฐํํ๋ ์ธ๊ธ๊ณ์ฐ์ ์กฐํ ํ๋ฉด์์์ ๋ฐํ๋ ์ธ๊ธ๊ณ์ฐ์์ ๊ธ์ก๊ณผ ํด๋น CP์ ์ ์ฐ๊ฒฐ๊ณผ ๊ธ์ก ์ค ์ผ์น ๊ธ์ก์ด ์์์ ์ด๋ฅผ ์๋ ๋งค์นญํ์ฌ ์ธ๊ธ๊ณ์ฐ์ ๋ชฉ๋ก ํ๋ฉด์์ ํด๋น ์ ์ฐ๋์๊ธ์ก๋ ๊ฐ์ด ๋
ธ์ถํ๊ณ ์ด ๋ฆฌ์คํธ์ ๋ฐฐ๊ฒฝ์ ํ์ด๋ผ์ดํธ๋๊ฒ ๋ค๋ฅธ์์ผ๋ก ํ๊ธฐํ์ฌ, ๋งจ์์ ์ฒดํฌ๋ฐ์ค ๋ฉํฐ๋ก ์ด๋ค ๋์ ์ ํํด ํ๋ฉด ํ๋จ์ "์์์ ํ ๋ฐํ" ๋ฒํผ์ ๋๋ฅด๋ฉด ์ ํ๋ ๋์์ ์ผ๊ด๋ก SAP ์์ ์ ํ๊ฐ ๋ฐํ๋๋๋ก ์ฌ์ฉ์ฑ ๊ฐ์ - Initial Deployment
6d53cd9
verified
<html lang="ko"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>NCSS CP ์ ์ฐ ์์คํ - ์ธ๊ธ๊ณ์ฐ์ ๊ด๋ฆฌ</title> | |
<script src="https://cdn.tailwindcss.com"></script> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"> | |
<script> | |
tailwind.config = { | |
theme: { | |
extend: { | |
colors: { | |
primary: '#3b82f6', | |
secondary: '#10b981', | |
highlight: '#fef3c7', | |
dark: '#1f2937', | |
} | |
} | |
} | |
} | |
</script> | |
<style> | |
.highlight-row { | |
background-color: #fef3c7; | |
} | |
.receipt-matched { | |
animation: pulse 1.5s infinite; | |
} | |
@keyframes pulse { | |
0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.3); } | |
70% { box-shadow: 0 0 0 10px rgba(16, 185, 129, 0); } | |
100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); } | |
} | |
.receipt-card { | |
transition: all 0.3s ease; | |
} | |
.receipt-card:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); | |
} | |
</style> | |
</head> | |
<body class="bg-gray-50 min-h-screen"> | |
<div class="container mx-auto px-4 py-8"> | |
<!-- ํค๋ ์์ญ --> | |
<header class="mb-8"> | |
<div class="flex justify-between items-center"> | |
<div> | |
<h1 class="text-3xl font-bold text-dark">NCSS CP ์ ์ฐ ์์คํ </h1> | |
<p class="text-gray-600">์ธ๊ธ๊ณ์ฐ์ ์กฐํ ๋ฐ ์ ํ๋ฐํ</p> | |
</div> | |
<div class="flex items-center space-x-4"> | |
<div class="relative"> | |
<div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"> | |
<i class="fas fa-user text-gray-400"></i> | |
</div> | |
<span class="pl-8 text-gray-700">๊น์ ์ฐ (์ ์ฐ๋ด๋น์)</span> | |
</div> | |
<button class="bg-primary text-white px-4 py-2 rounded-lg hover:bg-blue-700 transition"> | |
<i class="fas fa-sign-out-alt mr-2"></i>๋ก๊ทธ์์ | |
</button> | |
</div> | |
</div> | |
</header> | |
<!-- ํํฐ ์์ญ --> | |
<div class="bg-white rounded-lg shadow-md p-6 mb-6"> | |
<h2 class="text-xl font-semibold mb-4 text-dark">์ธ๊ธ๊ณ์ฐ์ ์กฐํ ํํฐ</h2> | |
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4"> | |
<div> | |
<label class="block text-sm font-medium text-gray-700 mb-1">๊ธฐ๊ฐ</label> | |
<div class="flex space-x-2"> | |
<input type="date" class="w-full border-gray-300 rounded-md p-2 border focus:ring-primary focus:border-primary"> | |
<span class="flex items-center">~</span> | |
<input type="date" class="w-full border-gray-300 rounded-md p-2 border focus:ring-primary focus:border-primary"> | |
</div> | |
</div> | |
<div> | |
<label class="block text-sm font-medium text-gray-700 mb-1">CP์ฌ๋ช </label> | |
<select class="w-full border-gray-300 rounded-md p-2 border focus:ring-primary focus:border-primary"> | |
<option value="">์ ์ฒด</option> | |
<option value="1">๋ทํ๋ฆญ์ค</option> | |
<option value="2">๋์ฆ๋+</option> | |
<option value="3">์จ์ด๋ธ</option> | |
<option value="4">ํฐ๋น</option> | |
</select> | |
</div> | |
<div> | |
<label class="block text-sm font-medium text-gray-700 mb-1">PoC</label> | |
<select class="w-full border-gray-300 rounded-md p-2 border focus:ring-primary focus:border-primary"> | |
<option value="">์ ์ฒด</option> | |
<option value="Btv">B tv</option> | |
<option value="IP-CATV">IP-CATV</option> | |
<option value="TPlay">T Play</option> | |
</select> | |
</div> | |
<div> | |
<label class="block text-sm font-medium text-gray-700 mb-1">์ ํ ์ํ</label> | |
<select class="w-full border-gray-300 rounded-md p-2 border focus:ring-primary focus:border-primary"> | |
<option value="">์ ์ฒด</option> | |
<option value="issued">๋ฐํ์๋ฃ</option> | |
<option value="not_issued">๋ฏธ๋ฐํ</option> | |
</select> | |
</div> | |
</div> | |
<div class="mt-4 flex justify-end"> | |
<button id="searchBtn" class="bg-primary text-white px-6 py-2 rounded-lg hover:bg-blue-700 transition"> | |
<i class="fas fa-search mr-2"></i>์กฐํ | |
</button> | |
</div> | |
</div> | |
<!-- ์๋ฆผ ์์ญ --> | |
<div id="autoMatchAlert" class="bg-green-100 border-l-4 border-green-500 text-green-700 p-4 mb-6 rounded hidden"> | |
<div class="flex items-center"> | |
<i class="fas fa-info-circle text-green-500 mr-3 text-xl"></i> | |
<div> | |
<p class="font-semibold">์๋ ๋งค์นญ ์๋ฃ</p> | |
<p class="text-sm">์ธ๊ธ๊ณ์ฐ์ ๊ธ์ก๊ณผ ์ ์ฐ๊ฒฐ๊ณผ ๊ธ์ก์ด ์ผ์นํ๋ <span id="matchedCount">3</span>๊ฑด์ด ์๋์ผ๋ก ๋งค์นญ๋์์ต๋๋ค.</p> | |
</div> | |
</div> | |
</div> | |
<!-- ๊ฒฐ๊ณผ ์์ญ --> | |
<div class="bg-white rounded-lg shadow-md overflow-hidden"> | |
<div class="flex justify-between items-center p-4 border-b"> | |
<h2 class="text-xl font-semibold text-dark">์ธ๊ธ๊ณ์ฐ์ ๋ชฉ๋ก</h2> | |
<div class="text-sm text-gray-600"> | |
<span class="font-medium">์ด <span id="totalCount">12</span>๊ฑด</span> | |
<span class="mx-2">|</span> | |
<span class="text-green-600">์๋๋งค์นญ <span id="autoMatchedCount">3</span>๊ฑด</span> | |
</div> | |
</div> | |
<!-- ํ ์ด๋ธ ์์ญ --> | |
<div class="overflow-x-auto"> | |
<table class="min-w-full divide-y divide-gray-200"> | |
<thead class="bg-gray-50"> | |
<tr> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> | |
<input type="checkbox" class="rounded text-primary focus:ring-primary"> | |
</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">๋ฐํ์ผ์</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">์ธ๊ธ๊ณ์ฐ์ ๋ฒํธ</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">ํํธ๋์ฌ๋ช </th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">๋งค์ ๊ธ์ก</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">์ ํ์ํ</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">๋งค์นญPoC</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">๋งค์นญ๊ธ์ก</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">์ก์ </th> | |
</tr> | |
</thead> | |
<tbody class="bg-white divide-y divide-gray-200"> | |
<!-- ์๋ ๋งค์นญ๋ ํ (ํ์ด๋ผ์ดํธ) --> | |
<tr class="highlight-row receipt-matched"> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<input type="checkbox" checked class="rounded text-primary focus:ring-primary"> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap">2023-10-10</td> | |
<td class="px-6 py-4 whitespace-nowrap">20231010-001</td> | |
<td class="px-6 py-4 whitespace-nowrap">๋ทํ๋ฆญ์ค</td> | |
<td class="px-6 py-4 whitespace-nowrap">12,500,000 ์</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">๋ฏธ๋ฐํ</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-blue-100 text-blue-800">B tv</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap text-green-600"> | |
<i class="fas fa-check-circle text-green-500 mr-1"></i> 12,500,000 ์ | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<button class="text-primary hover:text-blue-700" onclick="showReceiptDetail('20231010-001')"> | |
<i class="fas fa-search-plus"></i> ์์ธ๋ณด๊ธฐ | |
</button> | |
</td> | |
</tr> | |
<!-- ์ผ๋ฐ ํ --> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<input type="checkbox" class="rounded text-primary focus:ring-primary"> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap">2023-10-05</td> | |
<td class="px-6 py-4 whitespace-nowrap">20231005-001</td> | |
<td class="px-6 py-4 whitespace-nowrap">๋์ฆ๋+</td> | |
<td class="px-6 py-4 whitespace-nowrap">8,750,000 ์</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">๋ฏธ๋ฐํ</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap">-</td> | |
<td class="px-6 py-4 whitespace-nowrap">-</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<button class="text-primary hover:text-blue-700" onclick="showReceiptDetail('20231005-001')"> | |
<i class="fas fa-search-plus"></i> ์์ธ๋ณด๊ธฐ | |
</button> | |
</td> | |
</tr> | |
<!-- ๋ฐํ์๋ฃ ํ --> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<input type="checkbox" disabled class="rounded text-gray-400 focus:ring-gray-400"> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap">2023-09-28</td> | |
<td class="px-6 py-4 whitespace-nowrap">20230928-001</td> | |
<td class="px-6 py-4 whitespace-nowrap">์จ์ด๋ธ</td> | |
<td class="px-6 py-4 whitespace-nowrap">15,200,000 ์</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">๋ฐํ์๋ฃ</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-purple-100 text-purple-800">IP-CATV</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap text-gray-500"> | |
<i class="fas fa-check-circle text-gray-400 mr-1"></i> 15,200,000 ์ | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<button class="text-gray-400 cursor-not-allowed"> | |
<i class="fas fa-search-plus"></i> ์์ธ๋ณด๊ธฐ | |
</button> | |
</td> | |
</tr> | |
<!-- ์ถ๊ฐ ํ๋ค... --> | |
</tbody> | |
</table> | |
</div> | |
<!-- ํ์ด์ง๋ค์ด์ ๋ฐ ์ก์ ๋ฒํผ --> | |
<div class="bg-white px-4 py-3 flex items-center justify-between border-t border-gray-200 sm:px-6"> | |
<div class="flex-1 flex justify-between sm:hidden"> | |
<a href="#" class="relative inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50"> | |
์ด์ | |
</a> | |
<a href="#" class="ml-3 relative inline-flex items-center px-4 py-2 border border-gray-300 text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50"> | |
๋ค์ | |
</a> | |
</div> | |
<div class="hidden sm:flex-1 sm:flex sm:items-center sm:justify-between"> | |
<div> | |
<p class="text-sm text-gray-700"> | |
์ด <span class="font-medium">12</span>๊ฑด ์ค <span class="font-medium">1</span>-<span class="font-medium">10</span>๊ฑด ํ์ | |
</p> | |
</div> | |
<div> | |
<nav class="relative z-0 inline-flex rounded-md shadow-sm -space-x-px" aria-label="Pagination"> | |
<a href="#" class="relative inline-flex items-center px-2 py-2 rounded-l-md border border-gray-300 bg-white text-sm font-medium text-gray-500 hover:bg-gray-50"> | |
<span class="sr-only">์ด์ </span> | |
<i class="fas fa-chevron-left"></i> | |
</a> | |
<!-- Current: "z-10 bg-primary-50 border-primary-500 text-primary-600", Default: "bg-white border-gray-300 text-gray-500 hover:bg-gray-50" --> | |
<a href="#" aria-current="page" class="z-10 bg-primary-50 border-primary-500 text-primary-600 relative inline-flex items-center px-4 py-2 border text-sm font-medium"> | |
1 | |
</a> | |
<a href="#" class="bg-white border-gray-300 text-gray-500 hover:bg-gray-50 relative inline-flex items-center px-4 py-2 border text-sm font-medium"> | |
2 | |
</a> | |
<a href="#" class="bg-white border-gray-300 text-gray-500 hover:bg-gray-50 relative inline-flex items-center px-4 py-2 border text-sm font-medium"> | |
3 | |
</a> | |
<a href="#" class="relative inline-flex items-center px-2 py-2 rounded-r-md border border-gray-300 bg-white text-sm font-medium text-gray-500 hover:bg-gray-50"> | |
<span class="sr-only">๋ค์</span> | |
<i class="fas fa-chevron-right"></i> | |
</a> | |
</nav> | |
</div> | |
</div> | |
<div class="ml-4"> | |
<button id="issueBtn" class="bg-green-600 text-white px-6 py-2 rounded-lg hover:bg-green-700 transition disabled:bg-gray-300 disabled:cursor-not-allowed"> | |
<i class="fas fa-file-invoice-dollar mr-2"></i>์์์ ํ ๋ฐํ | |
</button> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- ์ธ๊ธ๊ณ์ฐ์ ์์ธ ํ์ (์์์ ํ ๋ฐํ ํ๋ฉด) --> | |
<div id="receiptModal" class="fixed inset-0 bg-gray-600 bg-opacity-50 overflow-y-auto h-full w-full hidden"> | |
<div class="relative top-20 mx-auto p-5 border w-4/5 shadow-lg rounded-md bg-white" style="max-width: 1200px;"> | |
<div class="flex justify-between items-center border-b pb-3"> | |
<h3 class="text-xl font-semibold text-dark">์ธ๊ธ๊ณ์ฐ์ ์์ธ ๋ฐ ์ ์ฐ ๋งค์นญ</h3> | |
<button onclick="closeModal()" class="text-gray-500 hover:text-gray-700"> | |
<i class="fas fa-times"></i> | |
</button> | |
</div> | |
<div class="grid grid-cols-1 md:grid-cols-2 gap-6 mt-6"> | |
<!-- ์ธ๊ธ๊ณ์ฐ์ ์ ๋ณด --> | |
<div class="bg-gray-50 p-4 rounded-lg"> | |
<h4 class="text-lg font-semibold mb-4 text-dark border-b pb-2">์ธ๊ธ๊ณ์ฐ์ ์ ๋ณด</h4> | |
<div class="space-y-4"> | |
<div class="grid grid-cols-2 gap-4"> | |
<div> | |
<p class="text-sm text-gray-500 mb-1">๋ฐํ์ผ์</p> | |
<p class="font-medium" id="receiptDate">2023-10-10</p> | |
</div> | |
<div> | |
<p class="text-sm text-gray-500 mb-1">์ธ๊ธ๊ณ์ฐ์ ๋ฒํธ</p> | |
<p class="font-medium" id="receiptNo">20231010-001</p> | |
</div> | |
</div> | |
<div> | |
<p class="text-sm text-gray-500 mb-1">ํํธ๋์ฌ๋ช </p> | |
<p class="font-medium" id="partnerName">๋ทํ๋ฆญ์ค</p> | |
</div> | |
<div class="grid grid-cols-2 gap-4"> | |
<div> | |
<p class="text-sm text-gray-500 mb-1">๋งค์ ๊ธ์ก</p> | |
<p class="font-medium" id="receiptAmount">12,500,000 ์</p> | |
</div> | |
<div> | |
<p class="text-sm text-gray-500 mb-1">์ ํ์ํ</p> | |
<p id="receiptStatus"> | |
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">๋ฏธ๋ฐํ</span> | |
</p> | |
</div> | |
</div> | |
<div> | |
<p class="text-sm text-gray-500 mb-1">๋งค์นญPoC</p> | |
<p id="matchedPoc"> | |
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-blue-100 text-blue-800">B tv</span> | |
</p> | |
</div> | |
</div> | |
</div> | |
<!-- ์ ์ฐ ์ ๋ณด ๋งค์นญ --> | |
<div class="bg-gray-50 p-4 rounded-lg"> | |
<h4 class="text-lg font-semibold mb-4 text-dark border-b pb-2">์ ์ฐ ์ ๋ณด ๋งค์นญ</h4> | |
<div class="overflow-x-auto"> | |
<table class="min-w-full divide-y divide-gray-200"> | |
<thead class="bg-gray-100"> | |
<tr> | |
<th scope="col" class="px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">์ ํ</th> | |
<th scope="col" class="px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">PoC</th> | |
<th scope="col" class="px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">์ ์ฐ๊ธ์ก</th> | |
<th scope="col" class="px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">์ํ</th> | |
<th scope="col" class="px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">์ก์ </th> | |
</tr> | |
</thead> | |
<tbody class="bg-white divide-y divide-gray-200"> | |
<!-- ์๋ ๋งค์นญ๋ ํญ๋ชฉ --> | |
<tr class="bg-green-50"> | |
<td class="px-3 py-4 whitespace-nowrap"> | |
<input type="checkbox" checked class="rounded text-green-600 focus:ring-green-600"> | |
</td> | |
<td class="px-3 py-4 whitespace-nowrap"> | |
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-blue-100 text-blue-800">B tv</span> | |
</td> | |
<td class="px-3 py-4 whitespace-nowrap"> | |
<span class="font-medium">12,500,000 ์</span> | |
</td> | |
<td class="px-3 py-4 whitespace-nowrap"> | |
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">๋งค์นญ ๊ฐ๋ฅ</span> | |
</td> | |
<td class="px-3 py-4 whitespace-nowrap"> | |
<button class="text-primary hover:text-blue-700" onclick="showDetail('B tv')"> | |
<i class="fas fa-info-circle"></i> ์์ธ๋ด์ญ | |
</button> | |
</td> | |
</tr> | |
<!-- ๋ค๋ฅธ ํญ๋ชฉ --> | |
<tr> | |
<td class="px-3 py-4 whitespace-nowrap"> | |
<input type="checkbox" class="rounded text-primary focus:ring-primary"> | |
</td> | |
<td class="px-3 py-4 whitespace-nowrap"> | |
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-purple-100 text-purple-800">IP-CATV</span> | |
</td> | |
<td class="px-3 py-4 whitespace-nowrap"> | |
<span class="font-medium">8,750,000 ์</span> | |
</td> | |
<td class="px-3 py-4 whitespace-nowrap"> | |
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800">๊ธ์ก ๋ถ์ผ์น</span> | |
</td> | |
<td class="px-3 py-4 whitespace-nowrap"> | |
<button class="text-primary hover:text-blue-700" onclick="showDetail('IP-CATV')"> | |
<i class="fas fa-info-circle"></i> ์์ธ๋ด์ญ | |
</button> | |
</td> | |
</tr> | |
<!-- ์ถ๊ฐ ํญ๋ชฉ๋ค... --> | |
</tbody> | |
</table> | |
</div> | |
<div class="mt-4 p-3 bg-yellow-50 rounded border border-yellow-200 text-sm"> | |
<i class="fas fa-exclamation-circle text-yellow-500 mr-2"></i> | |
๋ํ ๊ณ์ฝ: SVOD - 2023๋ ๋ทํ๋ฆญ์ค ๊ณ์ฝ (๊ณ์ฝ๋ฒํธ: NCT-2023-001) | |
</div> | |
<div class="mt-4 text-right"> | |
<button id="issueSingleBtn" class="bg-green-600 text-white px-6 py-2 rounded-lg hover:bg-green-700 transition"> | |
<i class="fas fa-file-invoice-dollar mr-2"></i>์์์ ํ ๋ฐํ | |
</button> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- ์ ์ฐ ์์ธ ๋ด์ญ ํ์ --> | |
<div id="detailModal" class="fixed inset-0 bg-gray-600 bg-opacity-50 overflow-y-auto h-full w-full hidden"> | |
<div class="relative top-20 mx-auto p-5 border w-3/4 shadow-lg rounded-md bg-white" style="max-width: 900px;"> | |
<div class="flex justify-between items-center border-b pb-3"> | |
<h3 class="text-xl font-semibold text-dark">์ ์ฐ ์์ธ ๋ด์ญ - <span id="detailPocTitle">B tv</span></h3> | |
<button onclick="closeDetailModal()" class="text-gray-500 hover:text-gray-700"> | |
<i class="fas fa-times"></i> | |
</button> | |
</div> | |
<div class="mt-4"> | |
<h4 class="text-md font-semibold mb-2 text-dark">๊ธฐ๋ณธ ์ ๋ณด</h4> | |
<div class="grid grid-cols-3 gap-4 mb-4"> | |
<div> | |
<p class="text-sm text-gray-500 mb-1">PoC</p> | |
<p class="font-medium" id="detailPoc">B tv</p> | |
</div> | |
<div> | |
<p class="text-sm text-gray-500 mb-1">์ ์ฐ ๊ธ์ก</p> | |
<p class="font-medium" id="detailAmount">12,500,000 ์</p> | |
</div> | |
<div> | |
<p class="text-sm text-gray-500 mb-1">์ ์ฐ ๊ธฐ๊ฐ</p> | |
<p class="font-medium" id="detailPeriod">2023-10-01 ~ 2023-10-31</p> | |
</div> | |
</div> | |
<h4 class="text-md font-semibold mb-2 mt-6 text-dark">๊ณ์ฝ๋ณ ์์ธ ๋ด์ญ</h4> | |
<div class="overflow-x-auto"> | |
<table class="min-w-full divide-y divide-gray-200"> | |
<thead class="bg-gray-100"> | |
<tr> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">๊ณ์ฝ์ ํ</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">๊ณ์ฝ๋ฒํธ</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">์ ์ฐ๊ธ์ก</th> | |
<th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">๋ด๋น์</th> | |
</tr> | |
</thead> | |
<tbody class="bg-white divide-y divide-gray-200"> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap">SVOD</td> | |
<td class="px-6 py-4 whitespace-nowrap">NCT-2023-001</td> | |
<td class="px-6 py-4 whitespace-nowrap">9,500,000 ์</td> | |
<td class="px-6 py-4 whitespace-nowrap">๊น์ ์ฐ</td> | |
</tr> | |
<tr class="bg-gray-50"> | |
<td class="px-6 py-4 whitespace-nowrap">TVOD</td> | |
<td class="px-6 py-4 whitespace-nowrap">NCT-2023-002</td> | |
<td class="px-6 py-4 whitespace-nowrap">3,000,000 ์</td> | |
<td class="px-6 py-4 whitespace-nowrap">๊น์ ์ฐ</td> | |
</tr> | |
<!-- ํฉ๊ณ ํ --> | |
<tr class="bg-blue-50"> | |
<td class="px-6 py-4 whitespace-nowrap font-semibold" colspan="2">์ดํฉ</td> | |
<td class="px-6 py-4 whitespace-nowrap font-semibold">12,500,000 ์</td> | |
<td class="px-6 py-4 whitespace-nowrap"></td> | |
</tr> | |
</tbody> | |
</table> | |
</div> | |
<div class="mt-6 flex justify-end"> | |
<button onclick="closeDetailModal()" class="bg-gray-200 text-gray-700 px-6 py-2 rounded-lg hover:bg-gray-300 transition"> | |
๋ซ๊ธฐ | |
</button> | |
</div> | |
</div> | |
</div> | |
</div> | |
<script> | |
// ๋ชจ๋ฌ ์ปจํธ๋กค ํจ์๋ค | |
function showReceiptDetail(receiptNo) { | |
document.getElementById('receiptModal').classList.remove('hidden'); | |
document.body.style.overflow = 'hidden'; | |
// ๋ชจ๋ฌ์ ๋ฐ์ดํฐ ์ฑ์ฐ๊ธฐ (์ค์ ๊ตฌํ์์๋ AJAX๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ผ ํจ) | |
document.getElementById('receiptNo').textContent = receiptNo; | |
// ๋ค๋ฅธ ํ๋๋ค๋ ์ฑ์ฐ๊ธฐ... | |
} | |
function closeModal() { | |
document.getElementById('receiptModal').classList.add('hidden'); | |
document.body.style.overflow = 'auto'; | |
} | |
function showDetail(poc) { | |
document.getElementById('detailModal').classList.remove('hidden'); | |
document.getElementById('detailPocTitle').textContent = poc; | |
document.getElementById('detailPoc').textContent = poc; | |
// ๋ค๋ฅธ ํ๋๋ค๋ ์ฑ์ฐ๊ธฐ... | |
} | |
function closeDetailModal() { | |
document.getElementById('detailModal').classList.add('hidden'); | |
} | |
// ํ์ด์ง ๋ก๋ ์ ์๋ ๋งค์นญ ์๋ฆผ ํ์ | |
document.addEventListener('DOMContentLoaded', function() { | |
const autoMatchAlert = document.getElementById('autoMatchAlert'); | |
setTimeout(() => { | |
autoMatchAlert.classList.remove('hidden'); | |
// 5์ด ํ ์๋ฆผ ์๋ ์จ๊ธฐ๊ธฐ | |
setTimeout(() => { | |
autoMatchAlert.classList.add('hidden'); | |
}, 5000); | |
}, 1000); | |
// ์ฒดํฌ๋ฐ์ค ์ํ์ ๋ฐ๋ผ ๋ฐํ ๋ฒํผ ํ์ฑํ/๋นํ์ฑํ | |
const checkboxes = document.querySelectorAll('tbody input[type="checkbox"]'); | |
const issueBtn = document.getElementById('issueBtn'); | |
checkboxes.forEach(checkbox => { | |
checkbox.addEventListener('change', function() { | |
const checkedBoxes = document.querySelectorAll('tbody input[type="checkbox"]:checked'); | |
issueBtn.disabled = checkedBoxes.length === 0; | |
}); | |
}); | |
// ์กฐํ ๋ฒํผ ํด๋ฆญ ์ด๋ฒคํธ (์ค์ ๊ตฌํ์์๋ AJAX ํธ์ถ) | |
document.getElementById('searchBtn').addEventListener('click', function() { | |
alert('์กฐํ ๊ธฐ๋ฅ์ด ์คํ๋์์ต๋๋ค. ์ค์ ๊ตฌํ์์๋ ํํฐ ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์์ ๊ฐ์ ธ์ต๋๋ค.'); | |
// ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ก ์ฌ์ฉ์์๊ฒ ํผ๋๋ฐฑ ์ ๊ณต | |
this.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>์กฐํ ์ค...'; | |
setTimeout(() => { | |
this.innerHTML = '<i class="fas fa-search mr-2"></i>์กฐํ'; | |
}, 1500); | |
}); | |
// ๋ฐํ ๋ฒํผ ํด๋ฆญ ์ด๋ฒคํธ | |
issueBtn.addEventListener('click', function() { | |
alert('์์์ ํ ๋ฐํ์ด ์์ฒญ๋์์ต๋๋ค. ์ค์ ๊ตฌํ์์๋ ์ ํ๋ ์ธ๊ธ๊ณ์ฐ์์ ๋ํด SAP ์ฐ๋์ ์ํํฉ๋๋ค.'); | |
}); | |
// ๋จ๊ฑด ๋ฐํ ๋ฒํผ ํด๋ฆญ ์ด๋ฒคํธ | |
document.getElementById('issueSingleBtn').addEventListener('click', function() { | |
alert('๋จ๊ฑด ์์์ ํ ๋ฐํ์ด ์์ฒญ๋์์ต๋๋ค. ์ธ๊ธ๊ณ์ฐ์ ๋ฒํธ: ' + document.getElementById('receiptNo').textContent); | |
closeModal(); | |
}); | |
}); | |
</script> | |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - ๐งฌ <a href="https://enzostvs-deepsite.hf.space?remix=r2d209/ncss2" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
</html> |