- robthree/twofactorauth, Auth 설정·TotpService·2FA 뷰·라우트 - member TOTP 컬럼 DDL(login_tables, member_add_totp.sql) - 관리자 메뉴·레이아웃·필터·대시보드 등 연관 변경 - env 샘플에 auth.requireTotp 주석 Made-with: Cursor
638 lines
24 KiB
PHP
638 lines
24 KiB
PHP
<?php
|
|
helper('admin');
|
|
$siteNavTree = get_site_nav_tree();
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html lang="ko">
|
|
<head>
|
|
<meta charset="utf-8"/>
|
|
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
|
|
<title>쓰레기봉투 물류시스템</title>
|
|
<!-- Tailwind CSS v3 with Plugins -->
|
|
<script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
|
|
<!-- Font: Noto Sans KR -->
|
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap" rel="stylesheet"/>
|
|
<!-- Tailwind Configuration for Custom Colors and Fonts -->
|
|
<script>
|
|
tailwind.config = {
|
|
theme: {
|
|
extend: {
|
|
fontFamily: {
|
|
sans: ['"Malgun Gothic"', '"Noto Sans KR"', 'sans-serif'],
|
|
},
|
|
colors: {
|
|
'system-header': '#ffffff',
|
|
'title-bar': '#2c3e50',
|
|
'control-panel': '#f8f9fa',
|
|
'btn-search': '#1c4e80',
|
|
'btn-excel-border': '#28a745',
|
|
'btn-excel-text': '#28a745',
|
|
'btn-print-border': '#ced4da',
|
|
'btn-print-text': '#000000',
|
|
'btn-exit': '#d9534f',
|
|
},
|
|
fontSize: {
|
|
'xxs': '0.65rem',
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<!-- Custom CSS for Table Specifics and Scrollbars -->
|
|
<style data-purpose="table-layout">
|
|
/* High density table styles */
|
|
.data-table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
font-family: 'Malgun Gothic', 'Noto Sans KR', sans-serif;
|
|
}
|
|
.data-table th, .data-table td {
|
|
border: 1px solid #ccc;
|
|
padding: 4px 8px;
|
|
white-space: nowrap;
|
|
font-size: 13px;
|
|
}
|
|
.data-table th {
|
|
background-color: #e9ecef;
|
|
text-align: center;
|
|
vertical-align: middle;
|
|
font-weight: bold;
|
|
color: #333;
|
|
}
|
|
|
|
/* Zebra striping */
|
|
.data-table tbody tr:nth-child(even) td:not([rowspan]) {
|
|
background-color: #f9f9f9;
|
|
}
|
|
.data-table tbody tr:nth-child(even) {
|
|
background-color: #f9f9f9;
|
|
}
|
|
.data-table tbody tr:hover td {
|
|
background-color: #e6f7ff !important;
|
|
}
|
|
|
|
/* Column specific alignments handled by classes in HTML, but defaults: */
|
|
.text-left { text-align: left !important; }
|
|
.text-right { text-align: right !important; }
|
|
.text-center { text-align: center !important; }
|
|
|
|
/* Layout utilities */
|
|
body {
|
|
overflow: hidden;
|
|
}
|
|
.main-content-area {
|
|
height: calc(100vh - 170px);
|
|
overflow: auto;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body class="bg-gray-100 text-gray-800 flex flex-col h-screen select-none">
|
|
<!-- BEGIN: Top Navigation -->
|
|
<header class="bg-white border-b border-gray-300 h-12 flex items-center justify-between px-4 shrink-0 z-20">
|
|
<div class="flex items-center gap-4">
|
|
<!-- Logo: 파란색 사각형에 흰색 사각형 두 개 겹친 형태 (데스크톱 앱 아이콘 스타일) -->
|
|
<div class="flex items-center gap-2">
|
|
<div class="w-6 h-6 flex items-center justify-center shrink-0">
|
|
<svg class="h-5 w-5" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
|
<rect width="16" height="16" fill="#2563eb"/>
|
|
<rect x="2" y="2" width="7" height="7" fill="white"/>
|
|
<rect x="5" y="5" width="9" height="9" fill="white"/>
|
|
</svg>
|
|
</div>
|
|
<a href="<?= base_url() ?>" class="text-base font-semibold text-gray-800 tracking-tight hover:text-blue-600">쓰레기봉투 물류시스템</a>
|
|
</div>
|
|
</div>
|
|
<!-- Nav Links -->
|
|
<nav class="hidden md:flex gap-5 text-sm font-medium text-gray-600">
|
|
<?php if (! empty($siteNavTree)): ?>
|
|
<?php
|
|
$uriObj = service('request')->getUri();
|
|
$currentPath = trim((string) $uriObj->getPath(), '/');
|
|
if (str_starts_with($currentPath, 'index.php/')) {
|
|
$currentPath = substr($currentPath, strlen('index.php/'));
|
|
}
|
|
?>
|
|
<?php foreach ($siteNavTree as $navItem): ?>
|
|
<?php $isActive = ($currentPath === trim((string) $navItem->mm_link, '/')); ?>
|
|
<div class="relative group">
|
|
<a class="<?= $isActive ? 'text-blue-700 font-bold border-b-2 border-blue-700 pb-3 -mb-3' : 'hover:text-blue-600' ?>"
|
|
href="<?= base_url($navItem->mm_link) ?>">
|
|
<?= esc($navItem->mm_name) ?>
|
|
</a>
|
|
<?php if (! empty($navItem->children)): ?>
|
|
<div class="absolute left-0 top-full hidden group-hover:block bg-white border border-gray-200 rounded shadow-lg min-w-[10rem] z-30">
|
|
<?php foreach ($navItem->children as $child): ?>
|
|
<a href="<?= base_url($child->mm_link) ?>"
|
|
class="block px-3 py-1.5 text-sm text-gray-700 hover:bg-blue-50 whitespace-nowrap">
|
|
<?= esc($child->mm_name) ?>
|
|
</a>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
<?php endforeach; ?>
|
|
<?php else: ?>
|
|
<!-- DB 메뉴 미구현 시 기존 더미 메뉴 사용 -->
|
|
<a class="hover:text-blue-600" href="#">기본정보관리</a>
|
|
<a class="hover:text-blue-600" href="#">발주 입고 관리</a>
|
|
<a class="hover:text-blue-600" href="#">불출 관리</a>
|
|
<a class="text-blue-700 font-bold border-b-2 border-blue-700 pb-3 -mb-3" href="#">재고 관리</a>
|
|
<a class="hover:text-blue-600" href="#">판매 관리</a>
|
|
<a class="hover:text-blue-600" href="#">판매 현황</a>
|
|
<a class="hover:text-blue-600" href="#">봉투 수불 관리</a>
|
|
<a class="hover:text-blue-600" href="#">통계 분석 관리</a>
|
|
<a class="hover:text-blue-600" href="#">창</a>
|
|
<a class="hover:text-blue-600" href="#">도움말</a>
|
|
<?php endif; ?>
|
|
</nav>
|
|
<?php
|
|
$mbLevel = (int) session()->get('mb_level');
|
|
$isAdmin = (\Config\Roles::isSuperAdminEquivalent($mbLevel) || $mbLevel === \Config\Roles::LEVEL_LOCAL_ADMIN);
|
|
?>
|
|
<!-- 관리자 이동 버튼(관리자만) · 종료 -->
|
|
<div class="flex items-center gap-2">
|
|
<?php if ($isAdmin): ?>
|
|
<a href="<?= base_url('admin') ?>" class="bg-btn-search text-white px-3 py-1.5 rounded-sm flex items-center gap-1 text-sm shadow hover:opacity-90 transition border border-transparent" title="관리자">관리자</a>
|
|
<?php endif; ?>
|
|
<a href="<?= base_url('logout') ?>" class="text-gray-500 hover:text-red-600 transition-colors inline-block p-1 rounded hover:bg-red-50" title="로그아웃">
|
|
<svg class="h-5 w-5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
<path d="M6 18L18 6M6 6l12 12" stroke-linecap="round" stroke-linejoin="round"></path>
|
|
</svg>
|
|
</a>
|
|
</div>
|
|
</header>
|
|
<!-- END: Top Navigation -->
|
|
<?php if (session()->getFlashdata('success')): ?>
|
|
<div class="mx-4 mt-2 p-3 rounded-lg bg-green-50 text-green-700 text-sm" role="alert">
|
|
<?= esc(session()->getFlashdata('success')) ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
<!-- BEGIN: Title Bar -->
|
|
<div class="bg-title-bar text-white px-4 py-2 text-sm font-medium flex items-center shrink-0 w-full">
|
|
<span class="opacity-80 mr-2">[w_gm804r]</span>
|
|
<span>일일 봉투 수불 현황</span>
|
|
</div>
|
|
<!-- END: Title Bar -->
|
|
<!-- BEGIN: Control Panel -->
|
|
<section class="border-b border-gray-300 p-2 shrink-0 bg-control-panel">
|
|
<div class="flex flex-wrap items-center justify-between gap-y-2">
|
|
<!-- Filter Inputs -->
|
|
<div class="flex items-center gap-4 text-sm whitespace-nowrap overflow-x-auto pb-1 md:pb-0">
|
|
<div class="flex items-center gap-2">
|
|
<label class="font-bold text-gray-700">조회기간:</label>
|
|
<div class="flex items-center bg-white border border-gray-300 rounded px-2 py-1">
|
|
<input class="w-24 text-center border-none p-0 focus:ring-0 text-sm" type="text" value="2024.01.01"/>
|
|
<span class="mx-1">~</span>
|
|
<input class="w-24 text-center border-none p-0 focus:ring-0 text-sm" type="text" value="2025.12.12"/>
|
|
<svg class="w-4 h-4 text-gray-400 ml-1" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg>
|
|
</div>
|
|
</div>
|
|
<div class="flex items-center gap-2">
|
|
<label class="font-bold text-gray-700">봉투구분:</label>
|
|
<select class="border border-gray-300 rounded py-1 pl-2 pr-8 text-sm focus:ring-blue-500 focus:border-blue-500">
|
|
<option>전체</option>
|
|
</select>
|
|
</div>
|
|
<div class="flex items-center gap-2">
|
|
<label class="font-bold text-gray-700">봉투형식:</label>
|
|
<select class="border border-gray-300 rounded py-1 pl-2 pr-8 text-sm focus:ring-blue-500 focus:border-blue-500">
|
|
<option>전체 봉투</option>
|
|
</select>
|
|
</div>
|
|
<div class="flex items-center gap-2">
|
|
<label class="font-bold text-gray-700">대행소:</label>
|
|
<select class="border border-gray-300 rounded py-1 pl-2 pr-8 text-sm focus:ring-blue-500 focus:border-blue-500">
|
|
<option>북구</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<!-- Action Buttons -->
|
|
<div class="flex items-center gap-1.5 ml-auto">
|
|
<button class="bg-btn-search text-white px-4 py-1.5 rounded-sm flex items-center gap-1 text-sm shadow hover:opacity-90 transition border border-transparent">
|
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg>
|
|
조회
|
|
</button>
|
|
<button class="bg-white text-btn-excel-text border border-btn-excel-border px-3 py-1.5 rounded-sm flex items-center gap-1 text-sm shadow hover:bg-green-50 transition">
|
|
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6zm-1 2l5 5h-5V4zM6 20V4h5v7h7v9H6z"></path></svg>
|
|
엑셀저장
|
|
</button>
|
|
<button class="bg-white text-black border border-btn-print-border px-3 py-1.5 rounded-sm flex items-center gap-1 text-sm shadow hover:bg-gray-50 transition">
|
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path d="M17 17h2a2 2 0 002-2v-4a2 2 0 00-2-2H5a2 2 0 00-2 2v4a2 2 0 002 2h2m2 4h6a2 2 0 002-2v-4a2 2 0 00-2-2H9a2 2 0 00-2 2v4a2 2 0 002 2zm8-12V5a2 2 0 00-2-2H9a2 2 0 00-2 2v4h10z" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg>
|
|
인쇄
|
|
</button>
|
|
<a href="<?= base_url('logout') ?>" class="bg-btn-exit text-white px-3 py-1.5 rounded-sm flex items-center gap-1 text-sm shadow hover:bg-red-700 transition border border-transparent">
|
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M6 18L18 6M6 6l12 12" stroke-linecap="round" stroke-linejoin="round"></path></svg>
|
|
종료
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- END: Control Panel -->
|
|
<!-- BEGIN: Main Content Area (Table) -->
|
|
<main class="main-content-area flex-grow bg-white p-2">
|
|
<div class="border border-gray-300 h-full overflow-auto">
|
|
<table class="w-full data-table border-collapse">
|
|
<!-- BEGIN: Table Head -->
|
|
<thead><tr>
|
|
<th class="w-[100px] bg-gray-100 border border-gray-300" rowspan="2">일자</th>
|
|
<th class="min-w-[200px] bg-gray-100 border border-gray-300" rowspan="2">품 목</th>
|
|
<th class="w-[80px] bg-gray-100 border border-gray-300" rowspan="2">전일재고</th>
|
|
<th class="bg-gray-100 border border-gray-300" colspan="3">입고</th>
|
|
<th class="bg-gray-100 border border-gray-300" colspan="5">출고</th>
|
|
<th class="w-[80px] bg-gray-100 border border-gray-300" rowspan="2">잔량</th>
|
|
</tr>
|
|
<tr>
|
|
<!-- Under 입고 -->
|
|
<th class="w-[80px] bg-gray-100 border border-gray-300">입고</th>
|
|
<th class="w-[80px] bg-gray-100 border border-gray-300">반품</th>
|
|
<th class="w-[80px] bg-gray-100 border border-gray-300">입고계</th>
|
|
<!-- Under 출고 -->
|
|
<th class="w-[80px] bg-gray-100 border border-gray-300">판매</th>
|
|
<th class="w-[120px] bg-gray-100 border border-gray-300">일반불출/무료불출</th>
|
|
<th class="w-[80px] bg-gray-100 border border-gray-300">반품</th>
|
|
<th class="w-[80px] bg-gray-100 border border-gray-300">기타</th>
|
|
<th class="w-[80px] bg-gray-100 border border-gray-300">출고계</th>
|
|
</tr></thead>
|
|
<!-- END: Table Head -->
|
|
<!-- BEGIN: Table Body -->
|
|
<tbody class="text-right"><!-- Row 1 -->
|
|
<tr>
|
|
<td class="align-top text-center bg-white" rowspan="22">2024.01.01</td>
|
|
<td class="text-left pl-2">일반용 5L</td>
|
|
<td class="text-right pr-2">187,240</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">187,240</td>
|
|
</tr>
|
|
<!-- Row 2 -->
|
|
<tr>
|
|
<td class="text-left pl-2">일반용 5L</td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">0</td>
|
|
</tr>
|
|
<!-- Row 3 -->
|
|
<tr>
|
|
<td class="text-left pl-2">일반용 10L</td>
|
|
<td class="text-right pr-2">159,428</td>
|
|
<td class="text-right pr-2">252,000</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">252,800</td>
|
|
<td class="text-right pr-2">8,580</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">8,580</td>
|
|
<td class="text-right pr-2 bg-gray-50">8,990</td>
|
|
<td class="text-right pr-2">402,848</td>
|
|
</tr>
|
|
<!-- Row 4 -->
|
|
<tr>
|
|
<td class="text-left pl-2">일반용 20L</td>
|
|
<td class="text-right pr-2">212,082</td>
|
|
<td class="text-right pr-2">201,000</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">201,600</td>
|
|
<td class="text-right pr-2">11,320</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">11,320</td>
|
|
<td class="text-right pr-2 bg-gray-50">11,320</td>
|
|
<td class="text-right pr-2">402,365</td>
|
|
</tr>
|
|
<!-- Row 5 -->
|
|
<tr>
|
|
<td class="text-left pl-2">일반용 50L</td>
|
|
<td class="text-right pr-2">7,605</td>
|
|
<td class="text-right pr-2">13,000</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">13,000</td>
|
|
<td class="text-right pr-2">540</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">540</td>
|
|
<td class="text-right pr-2 bg-gray-50">540</td>
|
|
<td class="text-right pr-2">20,065</td>
|
|
</tr>
|
|
<!-- Row 6 -->
|
|
<tr>
|
|
<td class="text-left pl-2">일반용 75L</td>
|
|
<td class="text-right pr-2">31,459</td>
|
|
<td class="text-right pr-2">22,600</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">22,600</td>
|
|
<td class="text-right pr-2">2,990</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">2,090</td>
|
|
<td class="text-right pr-2 bg-gray-50">3,640</td>
|
|
<td class="text-right pr-2">86,240</td>
|
|
</tr>
|
|
<!-- Row 7 -->
|
|
<tr>
|
|
<td class="text-left pl-2">일반용 100L</td>
|
|
<td class="text-right pr-2">11</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">11</td>
|
|
</tr>
|
|
<!-- Row 8 -->
|
|
<tr>
|
|
<td class="text-left pl-2">일반용 70L</td>
|
|
<td class="text-right pr-2">77,400</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">1,000</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">1,000</td>
|
|
<td class="text-right pr-2 bg-gray-50">1,000</td>
|
|
<td class="text-right pr-2">76,400</td>
|
|
</tr>
|
|
<!-- Row 9 -->
|
|
<tr>
|
|
<td class="text-left pl-2">공동주택용 20L</td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
</tr>
|
|
<!-- Row 10 -->
|
|
<tr>
|
|
<td class="text-left pl-2">공동주택용 50L</td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
</tr>
|
|
<!-- Row 11 -->
|
|
<tr>
|
|
<td class="text-left pl-2">공동주택용 120L</td>
|
|
<td class="text-right pr-2">11</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
</tr>
|
|
<!-- Row 12 -->
|
|
<tr>
|
|
<td class="text-left pl-2">재사용 봉투</td>
|
|
<td class="text-right pr-2">58,540</td>
|
|
<td class="text-right pr-2">27,000</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">27,000</td>
|
|
<td class="text-right pr-2">560</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">560</td>
|
|
<td class="text-right pr-2 bg-gray-50">560</td>
|
|
<td class="text-right pr-2">84,990</td>
|
|
</tr>
|
|
<!-- Row 13 -->
|
|
<tr>
|
|
<td class="text-left pl-2">음식물 2L</td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
</tr>
|
|
<!-- Row 14 -->
|
|
<tr>
|
|
<td class="text-left pl-2">음식물 스티커 1L</td>
|
|
<td class="text-right pr-2">376,758</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">100</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">100</td>
|
|
<td class="text-right pr-2 bg-gray-50">180</td>
|
|
<td class="text-right pr-2">376,658</td>
|
|
</tr>
|
|
<!-- Row 15 -->
|
|
<tr>
|
|
<td class="text-left pl-2">음식물 스티커 2L</td>
|
|
<td class="text-right pr-2">231,542</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">100</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">100</td>
|
|
<td class="text-right pr-2 bg-gray-50">100</td>
|
|
<td class="text-right pr-2">231,422</td>
|
|
</tr>
|
|
<!-- Row 16 -->
|
|
<tr>
|
|
<td class="text-left pl-2">음식물 스티커 3L</td>
|
|
<td class="text-right pr-2">529,938</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">1,200</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">1,200</td>
|
|
<td class="text-right pr-2 bg-gray-50">1,200</td>
|
|
<td class="text-right pr-2">529,738</td>
|
|
</tr>
|
|
<!-- Row 17 -->
|
|
<tr>
|
|
<td class="text-left pl-2">음식물 스티커 70L</td>
|
|
<td class="text-right pr-2">751,036</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">1,400</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">1,400</td>
|
|
<td class="text-right pr-2 bg-gray-50">1,400</td>
|
|
<td class="text-right pr-2">750,030</td>
|
|
</tr>
|
|
<!-- Row 18 -->
|
|
<tr>
|
|
<td class="text-left pl-2">음식물 스티커 60L</td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">6</td>
|
|
</tr>
|
|
<!-- Row 19 -->
|
|
<tr>
|
|
<td class="text-left pl-2">음식물 스티커 120L</td>
|
|
<td class="text-right pr-2">209,743</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">80</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">80</td>
|
|
<td class="text-right pr-2 bg-gray-50">80</td>
|
|
<td class="text-right pr-2">209,663</td>
|
|
</tr>
|
|
<!-- Row 20 -->
|
|
<tr>
|
|
<td class="text-left pl-2">폐기물 스티커 1,000원</td>
|
|
<td class="text-right pr-2">161,676</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">300</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">300</td>
|
|
<td class="text-right pr-2 bg-gray-50">300</td>
|
|
<td class="text-right pr-2">161,376</td>
|
|
</tr>
|
|
<!-- Row 21 -->
|
|
<tr>
|
|
<td class="text-left pl-2">폐기물 스티커 3,000원</td>
|
|
<td class="text-right pr-2">98,018</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">120</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">120</td>
|
|
<td class="text-right pr-2 bg-gray-50">120</td>
|
|
<td class="text-right pr-2">97,999</td>
|
|
</tr>
|
|
<!-- Row 22 -->
|
|
<tr>
|
|
<td class="text-left pl-2">폐기물 스티커 5,000원</td>
|
|
<td class="text-right pr-2">61,631</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">40</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">40</td>
|
|
<td class="text-right pr-2 bg-gray-50">40</td>
|
|
<td class="text-right pr-2">61,591</td>
|
|
</tr>
|
|
<!-- Next Date Group Placeholder for later expansion or testing -->
|
|
<tr>
|
|
<td class="align-top text-center bg-white border-t-2 border-gray-400" rowspan="4">2024.01.03</td>
|
|
<td class="text-left pl-2 border-t-2 border-gray-400">폐기물 스티커 10,000원</td>
|
|
<td class="text-right pr-2 border-t-2 border-gray-400">44,860</td>
|
|
<td class="text-right pr-2 border-t-2 border-gray-400"></td>
|
|
<td class="text-right pr-2 border-t-2 border-gray-400"></td>
|
|
<td class="text-right pr-2 bg-gray-50 border-t-2 border-gray-400">0</td>
|
|
<td class="text-right pr-2 border-t-2 border-gray-400"></td>
|
|
<td class="text-right pr-2 border-t-2 border-gray-400"></td>
|
|
<td class="text-right pr-2 border-t-2 border-gray-400"></td>
|
|
<td class="text-right pr-2 border-t-2 border-gray-400">0</td>
|
|
<td class="text-right pr-2 bg-gray-50 border-t-2 border-gray-400">0</td>
|
|
<td class="text-right pr-2 border-t-2 border-gray-400">44,860</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="text-left pl-2">일반용 5L</td>
|
|
<td class="text-right pr-2">187,240</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">187,240</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="text-left pl-2">일반용 10L</td>
|
|
<td class="text-right pr-2">402,848</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">402,848</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="text-left pl-2">일반용 10L</td>
|
|
<td class="text-right pr-2">402,365</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2"></td>
|
|
<td class="text-right pr-2">0</td>
|
|
<td class="text-right pr-2 bg-gray-50">0</td>
|
|
<td class="text-right pr-2">402,365</td>
|
|
</tr></tbody>
|
|
<!-- END: Table Body -->
|
|
</table>
|
|
</div>
|
|
</main>
|
|
<!-- END: Main Content Area -->
|
|
<!-- BEGIN: Footer -->
|
|
<footer class="bg-gray-200 border-t border-gray-300 px-4 py-1 text-xs text-gray-600 flex items-center justify-between shrink-0">
|
|
<div>Ready.....</div>
|
|
<div class="flex gap-4">
|
|
<span>북구</span>
|
|
<span>Ver..</span>
|
|
<span>2025.12.12 (금) 3:00:32PM</span>
|
|
</div>
|
|
</footer>
|
|
<!-- END: Footer -->
|
|
</body>
|
|
</html>
|