Merge remote-tracking branch 'origin/master'

This commit is contained in:
sungsu
2024-01-19 09:54:41 +09:00
25 changed files with 907 additions and 59 deletions

View File

@@ -0,0 +1,73 @@
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>새로운 입고 추가</title>
<style>
.col-centered{
margin: 0 auto;
float: none;
}
</style>
</head>
<body>
<div class="mt-5 mb-5 text-center">
<h1>입고 추가</h1>
</div>
<hr>
<div style="text-align: center">
<form id="createForm">
<div class="ulTag">
<div class="row">
<div class="col-12" style="text-align: center;">
<div class="input-group mb-3 w-40 col-centered">
<span class="input-group-text" id="basic-addon1">제품명</span>
<input type="text" name="productName" id="productName" class="form-control"
placeholder="제품명을 검색하세요" aria-label="제품명" value="${dto.productDto.name }"
aria-describedby="basic-addon1" readonly>
<button class="btn btn-outline-secondary rounded-end" id="searchProductName"
style="background-color:#FF5E5E;" type="button" onclick="showSearchModal('제품 검색','product')" >검색</button>
<input type='hidden' id="product_id" value="">
</div>
<!-- 설명만 있는 입력 -->
<div class="input-group mb-3 w-40 col-centered">
<span class="input-group-text" id="basic-addon2">가격</span>
<input type="number" name="price" id="price" class="form-control"
placeholder="가격을 입력하세요" aria-label="가격" value="${dto.price }"
aria-describedby="basic-addon1" disable><!-- 여기서부터 작업 -->
</div>
<c:set var="userData" value="${sessionScope.userData}" />
<input type='hidden' id="manager_id" value="${userData.id }">
</div>
</div>
</div>
<div class="row">
<div class="col-12 ">
<div class="w-40 col-centered" style="text-align: right">
<button type="button" class="btn btn-success" id="submitBtn">생성</button>
<button type="button" class="btn btn-secondary" id="cancelBtn">취소</button>
</div>
</div>
</div>
</form>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
</script>
</body>
</html>

View File

@@ -0,0 +1,136 @@
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div class="mt-5 mb-5 text-center">
<h1>입고 관리</h1>
</div>
<hr>
<div class="body">
<div class="container-fluid">
<div class="col-12">
<form>
<div class="input-group mb-3 w-30 col-centered">
<div class="w-25">
<select class="form-select" name="searchn" id="searchn">
<option selected="selected" value="0">제품명</option>
<option value="1">입고날짜</option>
<option value="2">담당자</option>
<option value="3">입고예정그룹번호</option>
</select>
</div>
<input type="text" id="search" name="search" class="form-control" aria-label="Text input with dropdown button" placeholder="검색어를 입력하세요">
<button class="btn btn-info" type="button" id="searchBtn">검색</button>
<!-- 페이징작업용 -->
<input type="hidden" id="searchn1" value="${searchn}">
<input type="hidden" id="search1" value="${search}">
<!-- 페이징작업용 -->
</div>
</form>
</div>
</div>
<div class="container-fluid">
<div class="row row-table">
<div class="col-12">
<table class="table">
<thead class="table-dark">
<tr>
<th>번호</th>
<th>제품명</th>
<th>가격</th>
<th>수량</th>
<th>입고예정그룹번호</th>
<th>입고날짜</th>
<th>담당자</th>
</tr>
</thead>
<tbody>
<c:forEach items="${list }" var="dto" varStatus="status">
<tr class="detailTr" data-id="${dto.id }" >
<td>${status.count }</td>
<td>${dto.productDto.name }</td>
<td>${dto.latest_price }</td>
<td>${dto.quantity }</td>
<td>${dto.planInDto.viewGroupNumber }</td>
<td><fmt:formatDate value="${dto.in_date}" pattern="yyyy-MM-dd" type="date"/></td>
<td>${dto.accountDto.name }</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row row-buttons">
<div class="col-3 text-start">
</div>
<div class="col-6 d-flex justify-content-center">
<nav>
<ul class="pagination">
<c:if test="${begin > pageNum }">
<li class="page-item">
<a href="javascript:void(0);" class="page-link" onclick="pagingFunction(this.id)" id="${begin - 1 }">&lt;</a>
</li>
</c:if>
<c:forEach begin="${begin }" end="${end }" var="i">
<li class="page-item <c:if test="${p == i}"> active </c:if>">
<a href="javascript:void(0);" class="page-link " onclick="pagingFunction(this.id); return false;" id="${i }">${i }</a>
</li>
</c:forEach>
<c:if test="${end < totalPages }">
<li class="page-item">
<a href="javascript:void(0);" class="page-link" onclick="pagingFunction(this.id)" id="${end + 1 }">&gt;</a>
</li>
</c:if>
</ul>
</nav>
</div>
<div class="col-3 text-end">
<button type="button" class="btn btn-primary" id="createButton">추가</button>
</div>
</div><!-- row row-buttons -->
</div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function(){
//POST방식으로 create폼화면 출력
$("#createButton").on("click",function(){
var form = document.createElement("form");
form.action = "/in/create";
form.method = "POST";
document.body.appendChild(form);
form.submit();
});//createButton
});//ready
</script>
</body>
</html>

View File

@@ -3,21 +3,40 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<script>
function goDown(target){
    console.log(target);
const $target = $(this);
const name= $target.data("name");
const catname = $target.data("catname");
const vendor = $target.data("vendor");
const id = $target.data("id");
$("#input_category").val(catname);
$("#input_vendor").val(vendor);
$("#input_id").val(id);
$("#input_name").val(name);
}
function goDown(target){
const $target = $(target);
const name= $target.data("name");
const catname = $target.data("catname");
const vendor = $target.data("vendor");
const id = $target.data("id");
$("#input_category").val(catname);
$("#input_vendor").val(vendor);
$("#input_id").val(id);
$("#input_name").val(name);
}
function goTable(){
const data= {};
data.name = $("#input_name").val();
data.category = $("#input_category").val();
data.id = $("#input_id").val();
data.vendor = $("#input_vendor").val();
data.date = $("#input_date").val();
data.num = $("#input_num").val();
addToTable(data);
hideSearchModal();
}
</script>
@@ -72,7 +91,7 @@ function goDown(target){
<div class="input-group mb-3 w-40 col-centered">
<span class="input-group-text" id="basic-addon2">제품명</span>
<input
id='input_name' type="text" class="form-control" placeholder="제품명""
id='input_name' type="text" class="form-control" placeholder="제품명"
aria-label="제품명" value="" readonly>
</div>
@@ -96,6 +115,7 @@ function goDown(target){
id='input_date' type="date" class="form-control" placeholder="날짜"
aria-label="날짜" value="">
</div>
<input hidden id="input_id">
</div>
</div>

View File

@@ -0,0 +1,153 @@
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<script>
function goDown(target){
const $target = $(target);
const name= $target.data("name");
const catname = $target.data("catname");
const vendor = $target.data("vendor");
const id = $target.data("id");
const vendorId = $target.data("vendorid");
$("#input_category").val(catname);
$("#input_vendor").val(vendor);
$("#input_id").val(id);
$("#input_name").val(name);
$("#id_vendor_id").val(vendorId);
}
function editData(){
$("#input_name").val(modalData.name);
$("#input_category").val(modalData.category);
$("#input_id").val(modalData.id);
$("#input_vendor").val(modalData.vendor);
$("#input_date").val(modalData.date);
$("#input_num").val(modalData.num);
}
function goTable(){
const data= {};
data.name = $("#input_name").val();
data.category = $("#input_category").val();
data.id = $("#input_id").val();
data.vendor = $("#input_vendor").val();
data.date = $("#input_date").val();
data.num = $("#input_num").val();
editToTable(data);
hideSearchModal();
}
</script>
<div class="container">
<div class="row">
<div class="col-12">
<table class="table">
<thead class="table-dark">
<tr>
<th>제품명</th>
<th>회사명</th>
<th>분류</th>
<th>거래처</th>
<th>등록날짜</th>
<th>선택</th>
</tr>
</thead>
<tbody>
<c:forEach items="${list }" var="dto">
<tr class="detailTr" data-product_id="${dto.id}" >
<td>${dto.name }</td>
<td>${dto.company_name }</td>
<td>${dto.categoryDto.cls_nm_4 }</td>
<td>${dto.vendorDto.name }</td>
<td><fmt:formatDate value="${dto.registration_date }"
dateStyle="short" /></td>
<td><button type="button" class="btn btn-warning" data-id = "${dto.id}"
data-name = "${dto.name}" data-catname = "${dto.categoryDto.cls_nm_4 }"
data-vendor = "${dto.vendorDto.name}" onclick= "goDown(this)"
>확인</button></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
<div class="row">
<div class="col-12">
<hr>
<div style="text-align: center">
<form>
<div class="ulTag">
<div class="row">
<div class="col-12" style="text-align: center;">
<div class="input-group mb-3 w-40 col-centered">
<span class="input-group-text" id="basic-addon1">제품카테고리</span>
<input
id='input_category' type="text" class="form-control" placeholder="제품카테고리"
aria-label="제품카테고리" value="" readonly>
</div>
<div class="input-group mb-3 w-40 col-centered">
<span class="input-group-text" id="basic-addon2">제품명</span>
<input
id='input_name' type="text" class="form-control" placeholder="제품명"
aria-label="제품명" value="" readonly>
</div>
<div class="input-group mb-3 w-40 col-centered">
<span class="input-group-text" id="basic-addon3">수량</span>
<input
id='input_num' type="number" min="0" class="form-control" placeholder="수량"
aria-label="수량" value="">
</div>
<div class="input-group mb-3 w-40 col-centered">
<span class="input-group-text" id="basic-addon4">공급업체</span>
<input
id='input_vendor' type="text" class="form-control" placeholder="공급업체"
aria-label="공급업체" value="" readonly>
</div>
<div class="input-group mb-3 w-40 col-centered">
<span class="input-group-text" id="basic-addon5">날짜</span>
<input
id='input_date' type="date" class="form-control" placeholder="날짜"
aria-label="날짜" value="">
</div>
<input hidden id="input_id" type="text" value="">
</div>
</div>
</div>
<div class="row">
<div class="col-12 ">
<div class="w-40 col-centered" style="text-align: right">
<button type="button" class="btn btn-primary" id="updateBtn" onclick='goTable()'>수정 완료</button>
<button type="button" class="btn btn-secondary" id="cancelBtn">취소</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<form id="form" action='/plan_in/read' method="post">
<input name="groupNumber" id="groupId" hidden>
<input name="productId" id="productId" hidden>
</form>

View File

@@ -120,6 +120,7 @@
<input type="text" class="form-control" id="position" name="position" value="${list.positionDto.name }" readonly>
</div>
</div>
<hr style="width: 700px;">
<div class="form-group row">
<div class="col-md-2"></div>

View File

@@ -3,7 +3,9 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<script>
let modalData = {};
let $selectedTr;
function showSearchModal(title){
$("#searchModalLabel").text(title);
const data = { };
@@ -21,6 +23,111 @@
}
});
}
function showSearchModalEdit(title, target){
$selectedTr = $($(target).parent('td').parent("tr"));
$("#searchModalLabel").text(title);
const data = { };
$.ajax({
type : 'post', // 타입 (get, post, put 등등)
url : '/plan_in/planin_edit', // 요청할 서버url
dataType : 'html', // 데이터 타입 (html, xml, json, text 등등)
data : data,
success : function(result) { // 결과 성공 콜백함수
$("#search_modal_body").html(result);
const tds = $selectedTr.find("td");
modalData.name = $(tds[0]).text();
modalData.category = $(tds[1]).text();
modalData.id = $selectedTr.data("productid");
modalData.vendor = $(tds[3]).text();
modalData.date = $(tds[4]).text();
modalData.num = $(tds[2]).text();
editData();
searchModalBootStrap.show();
},
error : function(request, status, error) {
alert(error)
}
});
}
function addToTable(data){
const $addTr = $("#id_add_tr");
const $newTr = $($("#id_table_body tr")[0]).clone();
//데이터 세팅 부분
$newTr.data("productid", data.id);
const tds = $newTr.find("td");
$(tds[0]).text(data.name);
$(tds[1]).text(data.category);
$(tds[2]).text(data.num);
$(tds[3]).text(data.vendor);
$(tds[4]).text(data.date);
$addTr.detach().appendTo("#form");
$("#id_table_body").append($newTr);
$addTr.detach().appendTo("#id_table_body");
}
function editToTable(data){
const $newTr = $selectedTr;
//데이터 세팅 부분
$newTr.data("productid", data.id);
const tds = $newTr.find("td");
$(tds[0]).text(data.name);
$(tds[1]).text(data.category);
$(tds[2]).text(data.num);
$(tds[3]).text(data.vendor);
$(tds[4]).text(data.date);
}
function deleteTable(target){
$($(target).parent('td').parent("tr")).remove();
}
function goSave(){
const list = [];
const $trs = $(".group_tr");
$trs.each(function(index, item){
let data = {};
const $tr = $(item);
const tds = $tr.find("td");
data.groupNumber = $tr.data("groupn");
data.productId = $tr.data("productid");
data.date = $(tds[4]).text();
data.quantity = $(tds[2]).text();
list.push(data);
});
$.ajax({
type : 'post', // 타입 (get, post, put 등등)
url : '/plan_in/planin_update_process', // 요청할 서버url
data : JSON.stringify(list),
dataType : 'json',
contentType: "application/json; charset=utf-8",
success : function(result) { // 결과 성공 콜백함수
console.log(result);
},
error : function(request, status, error) {
alert(error)
}
});
}
</script>
<div class="container">
@@ -43,7 +150,7 @@
<thead class="table-dark">
<tr><th>제품 카테고리</th><th>제품명</th><th>수량</th><th>공급업체</th><th>날짜</th><th>수정/삭제</th></tr>
</thead>
<tbody>
<tbody id="id_table_body">
<c:forEach items="${list }" var="dto" varStatus="status">
<tr class="group_tr" data-groupn="${dto.groupNumber}" data-productid="${dto.productId}">
<td>${dto.caName}</td>
@@ -51,10 +158,11 @@
<td>${dto.quantity}</td>
<td>${dto.vendorDto.name}</td>
<td><fmt:formatDate value="${dto.date}" pattern="yyyy-MM-dd" type="date"/></td>
<td><button type="submit" class="btn btn-warning" >수정</button><button type="submit" class="btn btn-danger" >삭제</button><td>
<td><button type="button" class="btn btn-warning" onclick="showSearchModalEdit('입고 예정 추가', this)">수정</button>
<button type="button" class="btn btn-danger" onclick="deleteTable(this)" >삭제</button><td>
</tr>
</c:forEach>
<tr>
<tr id="id_add_tr">
<td></td>
<td></td>
<td></td>
@@ -66,6 +174,14 @@
</table>
</div>
</div>
<div class="row">
<div class="col-12">
<button class="btn-primary btn" onclick="goSave()">저장</button>
<form method="get" class="d-inline" action="/plan_in/list">
<button class="btn-primary btn" type="submit">취소</button>
</form>
</div>
</div>
</div>
<form id="form" action='/plan_in/read' method="post">
<input name="groupNumber" id="groupId" hidden>

View File

@@ -60,7 +60,7 @@
</div>
</div>
</form>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {

View File

@@ -55,8 +55,7 @@
<td>${status.count }</td>
<td>${dto.productDto.name }</td>
<td>${dto.price }</td>
<td><fmt:formatDate value="${dto.registration_date }"
dateStyle="short" /></td>
<td><fmt:formatDate value="${dto.registration_date}" pattern="yyyy-MM-dd" type="date"/></td>
<td>${dto.accountDto.name }</td>
</tr>
</c:forEach>

View File

@@ -58,8 +58,7 @@
<td>${dto.company_name }</td>
<td>${dto.categoryDto.cls_nm_4 }</td>
<td>${dto.vendorDto.name }</td>
<td><fmt:formatDate value="${dto.registration_date }"
dateStyle="short" /></td>
<td><fmt:formatDate value="${dto.registration_date}" pattern="yyyy-MM-dd" type="date"/></td>
<td>${dto.accountDto.name }</td>
</tr>
</c:forEach>