mirror of
https://github.com/suhf/No1WMS.git
synced 2026-02-04 19:54:00 +09:00
planin 작업중
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
package com.no1.wms.planin;
|
||||
|
||||
import java.util.List;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.google.gson.Gson;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.no1.wms.product.ProductDto;
|
||||
@@ -92,7 +94,7 @@ public class PlanInController {
|
||||
|
||||
// 입고예정추가
|
||||
@PostMapping("/planin_add")
|
||||
public ModelAndView insert(ModelAndView mav, ProductDto dto)
|
||||
public ModelAndView add(ModelAndView mav, ProductDto dto)
|
||||
{
|
||||
List<ProductDto> list = productservice.productList(0, "", 0, 10000);
|
||||
//list
|
||||
@@ -105,4 +107,46 @@ public class PlanInController {
|
||||
return mav;
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/planin_edit")
|
||||
public ModelAndView edit(ModelAndView mav, ProductDto dto)
|
||||
{
|
||||
List<ProductDto> list = productservice.productList(0, "", 0, 10000);
|
||||
//list
|
||||
//ProductDto (0)
|
||||
//ProductDto (1)
|
||||
//ProductDto (2)
|
||||
mav.addObject("list", list);
|
||||
|
||||
mav.setViewName("planin_edit");
|
||||
return mav;
|
||||
}
|
||||
|
||||
@PostMapping("/planin_update_process")
|
||||
@ResponseBody
|
||||
public String updateProcess(@RequestBody List<Map<String, Object>> list, Gson gson, PlanInDto dto) throws JsonProcessingException, ParseException {
|
||||
|
||||
dto.setGroupNumber((String) list.get(0).get("groupNumber"));
|
||||
|
||||
planinservice.deleteById(dto);
|
||||
|
||||
|
||||
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
|
||||
for(int i = 0; i < list.size(); ++i){
|
||||
Map<String, Object> data = list.get(i);
|
||||
PlanInDto newDto = new PlanInDto();
|
||||
newDto.setGroupNumber((String) data.get("groupNumber"));
|
||||
newDto.setDate( format.parse((String) data.get("date")));
|
||||
newDto.setQuantity((Integer) data.get("quantity"));
|
||||
newDto.setProductId((String)data.get("productId"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
return gson.toJson("s");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ public class PlanInDto {
|
||||
private Integer quantity;
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date date;
|
||||
private String vendorId;
|
||||
private String managerId;
|
||||
private String warehouseId;
|
||||
private String qrHash;
|
||||
|
||||
@@ -15,4 +15,8 @@ public interface PlanInMapper {
|
||||
int count(Map<String, Object> m);
|
||||
|
||||
List<PlanInDto> selectById(PlanInDto dto);
|
||||
|
||||
int deleteById(PlanInDto dto);
|
||||
|
||||
void insert(PlanInDto dto);
|
||||
}
|
||||
|
||||
@@ -33,4 +33,11 @@ public class PlanInService {
|
||||
List<PlanInDto> selectById(PlanInDto dto){
|
||||
return mapper.selectById(dto);
|
||||
}
|
||||
|
||||
int deleteById(PlanInDto dto){
|
||||
return mapper.deleteById(dto);
|
||||
}
|
||||
void insert(PlanInDto dto){
|
||||
mapper.insert(dto);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
<id column="product_id" property="productId" />
|
||||
<result column="quantity" property="quantity"/>
|
||||
<result column="date" property="date"/>
|
||||
<result column="vendor_id" property="vendorId"/>
|
||||
<result column="manager_id" property="managerId"/>
|
||||
<result column="warehouse_id" property="warehouseId"/>
|
||||
<result column="qr_hash" property="qrHash"/>
|
||||
@@ -37,24 +36,24 @@
|
||||
</resultMap>
|
||||
<select id="selectById" resultMap="planInResultMap" parameterType="planInDto">
|
||||
SELECT
|
||||
plan.group_number, plan.product_id, plan.quantity, plan.date, plan.vendor_id, plan.manager_id,
|
||||
plan.group_number, plan.product_id, plan.quantity, plan.date, plan.manager_id,
|
||||
plan.warehouse_id, plan.qr_hash, plan.url, plan.clear, plan.vendor_date, plan.other, plan.activation, plan.view_group_number,
|
||||
product.id p_id, product.name p_name, acc.id acc_id, acc.name acc_name, vendor.id v_id, vendor.name v_name,
|
||||
warehouse.id w_id, warehouse.name w_name, product_category.kan_code p_kan, product_category.cls_Nm_4 ca_name
|
||||
from plan_In plan join account acc join vendor join warehouse join product join product_category
|
||||
on plan.product_id = product.id and plan.vendor_id = vendor.id and plan.manager_id = acc.id
|
||||
on plan.product_id = product.id and product.vendor_id = vendor.id and plan.manager_id = acc.id
|
||||
and plan.warehouse_id = warehouse.id and product.kan_code = product_category.kan_code
|
||||
where plan.group_number = #{groupNumber}
|
||||
</select>
|
||||
<select id="selectAll" resultMap="planInResultMap" parameterType="map">
|
||||
SELECT
|
||||
plan.group_number, plan.product_id, plan.quantity, plan.date, plan.vendor_id, plan.manager_id,
|
||||
plan.warehouse_id, plan.qr_hash, plan.url, plan.clear, plan.vendor_date, plan.other, plan.activation, plan.view_group_number,
|
||||
product.id p_id, product.name p_name, acc.id acc_id, acc.name acc_name, vendor.id v_id, vendor.name v_name,
|
||||
warehouse.id w_id, warehouse.name w_name, product_category.kan_code p_kan, product_category.cls_Nm_4 ca_name
|
||||
from plan_In plan join account acc join vendor join warehouse join product join product_category
|
||||
on plan.product_id = product.id and plan.vendor_id = vendor.id and plan.manager_id = acc.id
|
||||
and plan.warehouse_id = warehouse.id and product.kan_code = product_category.kan_code
|
||||
plan.group_number, plan.product_id, plan.quantity, plan.date, plan.manager_id,
|
||||
plan.warehouse_id, plan.qr_hash, plan.url, plan.clear, plan.vendor_date, plan.other, plan.activation, plan.view_group_number,
|
||||
product.id p_id, product.name p_name, acc.id acc_id, acc.name acc_name, vendor.id v_id, vendor.name v_name,
|
||||
warehouse.id w_id, warehouse.name w_name, product_category.kan_code p_kan, product_category.cls_Nm_4 ca_name
|
||||
from plan_In plan join account acc join vendor join warehouse join product join product_category
|
||||
on plan.product_id = product.id and product.vendor_id = vendor.id and plan.manager_id = acc.id
|
||||
and plan.warehouse_id = warehouse.id and product.kan_code = product_category.kan_code
|
||||
<where>
|
||||
<choose>
|
||||
<when test="searchn == 1"> plan.activation = 1 and pn like concat('%',#{search},'%')</when>
|
||||
@@ -68,13 +67,13 @@
|
||||
insert into plan_In
|
||||
(
|
||||
group_number, product_id, quantity, date,
|
||||
vendor_id, manager_id, warehouse_id, qr_hash,
|
||||
manager_id, warehouse_id, qr_hash,
|
||||
url, clear, vendor_date, other, activation, view_group_number
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
UUID(), #{productId}, #{quantity},
|
||||
#{date}, #{vendorId},
|
||||
#{date},
|
||||
#{managerId},#{warehouseId},#{qrHash},
|
||||
#{url},#{clear}, #{vendor_date},
|
||||
#{other},#{activation}, (select MAX(c.group_number)+1 as cnt
|
||||
@@ -87,7 +86,6 @@
|
||||
update plan_In SET
|
||||
quantity = #{quantity},
|
||||
date = #{date},
|
||||
vendor_id = #{vendorId},
|
||||
manager_id = #{managerId},
|
||||
warehouse_id = #{warehouseId},
|
||||
qr_hash = #{qrHash},
|
||||
@@ -116,4 +114,7 @@
|
||||
</where>
|
||||
) t
|
||||
</select>
|
||||
<delete id="deleteById" parameterType="planInDto">
|
||||
delete from plan_In WHERE group_number = #{groupNumber}
|
||||
</delete>
|
||||
</mapper>
|
||||
@@ -3,22 +3,41 @@
|
||||
<%@ 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");
|
||||
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);
|
||||
$("#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>
|
||||
|
||||
<div class="container">
|
||||
@@ -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>
|
||||
|
||||
153
src/main/webapp/WEB-INF/views/modal/planin_edit.jsp
Normal file
153
src/main/webapp/WEB-INF/views/modal/planin_edit.jsp
Normal 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>
|
||||
@@ -3,6 +3,8 @@
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||
|
||||
<script>
|
||||
let modalData = {};
|
||||
let $selectedTr;
|
||||
|
||||
function showSearchModal(title){
|
||||
$("#searchModalLabel").text(title);
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user