λ€μ "λ°°κ²½ μ§μ"μ μ°Έκ³ ν΄, 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> |