- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경 - DB 연결 하드코딩 → .env 기반으로 변경 - MySQL strict mode DATE 오류 수정
487 lines
15 KiB
PHP
487 lines
15 KiB
PHP
<?php
|
|
|
|
session_start();
|
|
|
|
$level= $_SESSION["level"];
|
|
if(!isset($_SESSION["level"]) || $level>5) {
|
|
/* alert("관리자 승인이 필요합니다."); */
|
|
sleep(2);
|
|
header ("Location:/login/logout.php");
|
|
exit;
|
|
}
|
|
|
|
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
|
|
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
|
|
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
|
|
header ("Pragma: no-cache"); // HTTP/1.0
|
|
header("Expires: 0"); // rfc2616 - Section 14.21
|
|
//header("Refresh:0"); // reload refresh
|
|
|
|
$callname=$_REQUEST["callname"];
|
|
$cutwidth=$_REQUEST["cutwidth"];
|
|
$cutheight=$_REQUEST["cutheight"];
|
|
|
|
if(!isset($_REQUEST["cutwidth"]) || $cutwidth=="" )
|
|
$cutwidth="5000";
|
|
else
|
|
$cutwidth=$_REQUEST["cutwidth"];
|
|
|
|
if(!isset($_REQUEST["cutheight"]) || $cutheight=="" )
|
|
$cutheight="3000";
|
|
else
|
|
$cutheight=$_REQUEST["cutheight"];
|
|
|
|
if(!isset($_REQUEST["exititem"]) || $exititem=="" )
|
|
$exititem="0";
|
|
else
|
|
$exititem=$_REQUEST["exititem"];
|
|
|
|
require_once("../lib/mydb.php");
|
|
$pdo = db_connect();
|
|
|
|
$page=1;
|
|
|
|
|
|
$scale = 30; // 한 페이지에 보여질 게시글 수
|
|
$page_scale = 10; // 한 페이지당 표시될 페이지 수 10페이지
|
|
$first_num = ($page-1) * $scale; // 리스트에 표시되는 게시글의 첫 순번.
|
|
|
|
|
|
$sql="select * from chandj.screencut order by num asc" ;
|
|
|
|
|
|
$nowday=date("Y-m-d"); // 현재일자 변수지정
|
|
|
|
try{
|
|
$stmh = $pdo->query($sql); // 검색조건에 맞는글 stmh
|
|
$temp=$stmh->rowCount();
|
|
|
|
$total_row = $temp; // 전체 글수
|
|
|
|
$total_page = ceil($total_row / $scale); // 검색 전체 페이지 블록 수
|
|
$current_page = ceil($page/$page_scale); //현재 페이지 블록 위치계산
|
|
|
|
if ($page<=1)
|
|
$start_num=$total_row; // 페이지당 표시되는 첫번째 글순번
|
|
else
|
|
$start_num=$total_row-($page-1) * $scale;
|
|
|
|
if($callname=="") $callname="FSS";
|
|
?>
|
|
|
|
|
|
|
|
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<link rel="stylesheet" type="text/css" href="../css/screen.css">
|
|
|
|
<title> 주일기업 통합정보시스템 </title>
|
|
</head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
|
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
|
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
|
|
<script src="/order/order.js"></script>
|
|
<script src="../js/html2canvas.js"></script> <!-- 스크린샷을 위한 자바스크립트 함수 불러오기 -->
|
|
|
|
<style media="screen">
|
|
*{
|
|
margin: 0; padding: 0;
|
|
}
|
|
.slide{
|
|
width: 400px;
|
|
height: 400px;
|
|
overflow: hidden;
|
|
position: relative;
|
|
margin: 0 auto;
|
|
}
|
|
.slide ul{
|
|
width: 11600px;
|
|
position: absolute;
|
|
top:0;
|
|
left:0;
|
|
font-size: 0;
|
|
}
|
|
.slide ul li{
|
|
display: inline-block;
|
|
}
|
|
#back{
|
|
position: absolute;
|
|
top: 0;
|
|
left:0 ;
|
|
cursor: pointer;
|
|
z-index: 1;
|
|
}
|
|
#next{
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
cursor: pointer;
|
|
z-index: 1;
|
|
}
|
|
</style>
|
|
|
|
|
|
<body>
|
|
<div id="wrap">
|
|
<div id="header">
|
|
<?php include "../lib/top_login2.php"; ?>
|
|
</div>
|
|
<div id="menu">
|
|
<?php include "../lib/top_menu2.php"; ?>
|
|
</div>
|
|
<div id="content">
|
|
<div id="work_col2">
|
|
스크린원단 절단치수 산출 프로그램
|
|
<br><br>
|
|
<form name="board_form" id="board_form" method="post" action="insert.php?mode=modify&text1=<?=$callname?>&text2=<?=$text2?>&cutwidth=<?=$cutwidth?>&cutheight=<?=$cutheight?>">
|
|
<div id="exitall">
|
|
<div id="exitcontent">
|
|
<div id="r5"> 부호 </div>
|
|
<div id="r6"> <input id="callname" name="callname" type="text" size="14" placeholder="부호" value="<?=$callname?>" > </div>
|
|
|
|
<div id="r0"> 제작size </div>
|
|
|
|
<div id="r1"> 가로폭 : </div>
|
|
<div id="r2"> <input id="cutwidth" name="cutwidth" type="text" size="3" placeholder="width" value="<?=$cutwidth?>" required > </div>
|
|
<div id="r3"> 세로폭 : </div>
|
|
<div id="r4"> <input id="cutheight" name="cutheight" type="text" size="3" value="<?=$cutheight?>" required placeholder="height"> </div>
|
|
|
|
<div id="exitpos"> 비상문 위치 : </div>
|
|
<div id="exitpos1">
|
|
<?php
|
|
if($exititem=='0') {
|
|
print "
|
|
<select id='exititem' name='exititem'>
|
|
<option value='0' selected >없음 </option>
|
|
<option value='1' >중앙 </option>
|
|
<option value='2' >좌측 </option>
|
|
<option value='3' >우측 </option>
|
|
</select> ";
|
|
}
|
|
if($exititem=='1') {
|
|
print "
|
|
<select id='exititem' name='exititem'>
|
|
<option value='0' >없음 </option>
|
|
<option value='1' selected >중앙 </option>
|
|
<option value='2' >좌측 </option>
|
|
<option value='3' >우측 </option>
|
|
</select> ";
|
|
}
|
|
if($exititem=='2') {
|
|
print "
|
|
<select id='exititem' name='exititem'>
|
|
<option value='0' >없음 </option>
|
|
<option value='1' >중앙 </option>
|
|
<option value='2' selected >좌측 </option>
|
|
<option value='3' >우측 </option>
|
|
</select> ";
|
|
}
|
|
if($exititem=='3') {
|
|
print "
|
|
<select id='exititem' name='exititem'>
|
|
<option value='0' >없음 </option>
|
|
<option value='1' >중앙 </option>
|
|
<option value='2' >좌측 </option>
|
|
<option value='3' selected >우측 </option>
|
|
</select> ";
|
|
}
|
|
?>
|
|
|
|
|
|
</div>
|
|
<div id="r3"> 수량 : </div>
|
|
|
|
<div id="r8"> <input id="number" name="number" type="text" size="2" placeholder="수량" value="1" required > </div>
|
|
<div id="r7"> 틀, </div>
|
|
|
|
<div id="exityesno">
|
|
<div id="excol1"> 띄울 치수(mm) : </div>
|
|
<div id="excol2"> <input id="intervalnum" name="intervalnum" type="text" size="3" required> </div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
<br><br>
|
|
<div id="result1" name="result1" >
|
|
<textarea rows="3" cols="130" name="text2" id="text2"> </textarea>
|
|
</div>
|
|
|
|
|
|
</form>
|
|
</div>
|
|
<br>
|
|
<div class="clear"> </div>
|
|
<button id="calsize_exe" onclick="calsize_exe();"> 절단치수 계산 </button>
|
|
<button id="addline" onclick="addline();" > 행 추가 </button>
|
|
<!-- 일부분 부분-->
|
|
<button onclick="partShot();"> 이미지 저장 </button>
|
|
|
|
<button onclick="javascript:del('delete.php?num=all')" > DATA 전체삭제 </button>
|
|
<div class="clear"> </div><br><br>
|
|
|
|
<div id="containers" >
|
|
<div id="display_result" >
|
|
<div id="res1"> 번호 </div>
|
|
<div id="res2"> 부호 </div>
|
|
<div id="res3"> 세부 절단 사이즈 </div>
|
|
<div class="clear"> </div>
|
|
|
|
<?php
|
|
$counter=0;
|
|
while($row = $stmh->fetch(PDO::FETCH_ASSOC)) {
|
|
$counter++;
|
|
$num=$row["num"];
|
|
$text1=$row["text1"];
|
|
$text2=$row["text2"];
|
|
$text3=$row["text3"];
|
|
$text4=$row["text4"];
|
|
$text5=$row["text5"];
|
|
?>
|
|
<div id="res1"> <a href="javascript:del('delete.php?num=<?=$num?>')"> <?=$counter?> </a> </div>
|
|
<div id="res2"> <a href="javascript:del('delete.php?num=<?=$num?>')"> <?=$text1?> </a> </div>
|
|
<div id="res3"> <?=$text2?> </div>
|
|
<div class="clear"> </div>
|
|
<?php
|
|
$start_num--;
|
|
}
|
|
} catch (PDOException $Exception) {
|
|
print "오류: ".$Exception->getMessage();
|
|
}
|
|
// 페이지 구분 블럭의 첫 페이지 수 계산 ($start_page)
|
|
$start_page = ($current_page - 1) * $page_scale + 1;
|
|
// 페이지 구분 블럭의 마지막 페이지 수 계산 ($end_page)
|
|
$end_page = $start_page + $page_scale - 1;
|
|
?>
|
|
|
|
|
|
</div> <!-- end of display_result -->
|
|
</div> <!-- end of containers -->
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<br>
|
|
|
|
</div>
|
|
|
|
</body>
|
|
<script>
|
|
$(function(){
|
|
$("#exityesno").hide();
|
|
$("#exititem").change(function(){
|
|
$("#exityesno").hide();
|
|
|
|
if ( this.value == '0' ) {
|
|
return false;
|
|
}
|
|
if ( this.value == '1' ) {
|
|
exitcenter();
|
|
}
|
|
if ( this.value == '2' ) {
|
|
exitleft();
|
|
}
|
|
if ( this.value == '3' ) {
|
|
exitright();
|
|
}
|
|
});
|
|
});
|
|
|
|
function calsize_exe() {
|
|
var a = 0;
|
|
var totalheight = 0;
|
|
var screenheight = 0;
|
|
var width = 0;
|
|
var height = 0;
|
|
var mod = 0;
|
|
var b = 0;
|
|
var c = 0;
|
|
var d = 0;
|
|
var e = 0;
|
|
var f = 0;
|
|
var g = 0;
|
|
var h = 0;
|
|
var i = 0; //쪽바계산용
|
|
var midamount; // 중간판 수량
|
|
var upperheight; // 상판 높이
|
|
var upperrow; // 상판 매수(비상문 있을시)
|
|
var amount;
|
|
var dis_text;
|
|
|
|
if($("#intervalnum").val()=='' && $("#exititem").val()!='0') {
|
|
alert("띄울 치수를 입력해 주세요.");
|
|
return false;
|
|
}
|
|
width=Number($("#cutwidth").val());
|
|
height=Number($("#cutheight").val());
|
|
|
|
totalheight=Math.ceil((height+100)/1180);
|
|
|
|
a=Math.ceil(width +100) ;
|
|
|
|
g=Number($("#intervalnum").val()) ;
|
|
amount=$("#number").val() ;
|
|
midamount=totalheight-1 ; // 상판빼고 나머지
|
|
screenheight=(height+100+totalheight*40);
|
|
upperheight=screenheight-midamount*1220;
|
|
upperrow=totalheight-3;
|
|
if(upperrow<=0) {
|
|
upperrow=0;
|
|
upperrowtext="";
|
|
}
|
|
|
|
if($("#exititem").val()=='0') {
|
|
$("#text2").text(" (일반형) 중간판 : " + a + " X " + "1220 = " + midamount + "(매)," + " 상판 : " + a + " X " + upperheight + " = 1(매), 원단 높이합:" + screenheight + "");
|
|
}
|
|
if($("#exititem").val()=='1') {
|
|
dis_text=" 문중앙,";
|
|
rightcut=(width-900)/2; // 우측 비상문 천지
|
|
leftcut=(width-900)/2+100; // 좌측 비상문 천지
|
|
if(upperrow>1) // 3장 이상 높이가 올라갈때
|
|
{
|
|
dis_text= dis_text + "중간판 : " + a + " X 1220 = " + upperrow + "(매)," + " 상판 : " + a + " X " + upperheight + " = 1(매)," +
|
|
"비상문 좌측쪽판 : " + leftcut + " X 1220 = 2(매), 비상문 우측쪽판 : " + rightcut + " X 1220 = 2(매), " +
|
|
" 원단 높이합:" + screenheight + "";
|
|
}
|
|
else // 3장일때
|
|
{
|
|
dis_text= dis_text + " 상판 : " + a + " X " + upperheight + " = 1(매)," +
|
|
"비상문 좌측쪽판 : " + leftcut + " X 1220 = 2(매), 비상문 우측쪽판 : " + rightcut + " X 1220 = 2(매), " +
|
|
" 원단 높이합:" + screenheight + "";
|
|
|
|
}
|
|
$("#text2").text(dis_text);
|
|
}
|
|
if($("#exititem").val()=='2' ) { // 좌측에서 띄우기
|
|
dis_text="문 좌측 편심,";
|
|
rightcut=width-900-g+100; // 우측 비상문 천지
|
|
|
|
leftcut=g+10; // 좌측 비상문 천지
|
|
if(leftcut<500)
|
|
leftcut=leftcut-10;
|
|
if(upperrow>1) // 3장 이상 높이가 올라갈때
|
|
{
|
|
dis_text= dis_text + "중간판 : " + a + " X 1220 = " + upperrow + "(매)," + " 상판 : " + a + " X " + upperheight + " = 1(매)," +
|
|
"비상문 좌측쪽판 : " + leftcut + " X 1220 = 2(매), 비상문 우측쪽판 : " + rightcut + " X 1220 = 2(매), " +
|
|
" 원단 높이합:" + screenheight + "";
|
|
}
|
|
else // 3장일때
|
|
{
|
|
dis_text= dis_text + " 상판 : " + a + " X " + upperheight + " = 1(매)," +
|
|
"비상문 좌측쪽판 : " + leftcut + " X 1220 = 2(매), 비상문 우측쪽판 : " + rightcut + " X 1220 = 2(매), " +
|
|
" 원단 높이합:" + screenheight + "";
|
|
|
|
}
|
|
$("#text2").text(dis_text);
|
|
}
|
|
if($("#exititem").val()=='3' ) { // 우측에서 띄우기
|
|
dis_text="문 우측 편심,";
|
|
leftcut=width-900-g+100; // 좌측 비상문 천지
|
|
rightcut=g+10; // 우측 비상문 천지
|
|
if(rightcut<500)
|
|
rightcut=rightcut-10;
|
|
if(upperrow>1) // 3장 이상 높이가 올라갈때
|
|
{
|
|
dis_text= dis_text + "중간판 : " + a + " X 1220 = " + upperrow + "(매)," + " 상판 : " + a + " X " + upperheight + " = 1(매)," +
|
|
"비상문 좌측쪽판 : " + leftcut + " X 1220 = 2(매), 비상문 우측쪽판 : " + rightcut + " X 1220 = 2(매), " +
|
|
" 원단 높이합:" + screenheight + "";
|
|
}
|
|
else // 3장일때
|
|
{
|
|
dis_text= dis_text + " 상판 : " + a + " X " + upperheight + " = 1(매)," +
|
|
"비상문 좌측쪽판 : " + leftcut + " X 1220 = 2(매), 비상문 우측쪽판 : " + rightcut + " X 1220 = 2(매), " +
|
|
" 원단 높이합:" + screenheight + "";
|
|
|
|
}
|
|
$("#text2").text(dis_text);
|
|
}
|
|
} // end of function
|
|
|
|
function exitcenter() {
|
|
$("#exityesno").show();
|
|
$("#intervalnum").val("없음");
|
|
}
|
|
function exitleft() {
|
|
$("#exityesno").show();
|
|
$("#intervalnum").val("");
|
|
}
|
|
function exitright() {
|
|
$("#exityesno").show();
|
|
$("#intervalnum").val("");
|
|
}
|
|
|
|
|
|
function addline(){
|
|
calsize_exe();
|
|
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
|
|
}
|
|
function del(href)
|
|
{
|
|
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
|
|
document.location.href = href;
|
|
}
|
|
}
|
|
|
|
function partShot() {
|
|
//특정부분 스크린샷
|
|
html2canvas(document.getElementById("containers"))
|
|
//id container 부분만 스크린샷
|
|
.then(function (canvas) {
|
|
//jpg 결과값
|
|
drawImg(canvas.toDataURL('image/jpeg'));
|
|
//이미지 저장
|
|
saveAs(canvas.toDataURL(), 'screencut.jpg');
|
|
}).catch(function (err) {
|
|
console.log(err);
|
|
});
|
|
}
|
|
|
|
function drawImg(imgData) {
|
|
console.log(imgData);
|
|
//imgData의 결과값을 console 로그롤 보실 수 있습니다.
|
|
return new Promise(function reslove() {
|
|
//내가 결과 값을 그릴 canvas 부분 설정
|
|
var canvas = document.getElementById('canvas');
|
|
var ctx = canvas.getContext('2d');
|
|
//canvas의 뿌려진 부분 초기화
|
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
|
|
var imageObj = new Image();
|
|
imageObj.onload = function () {
|
|
ctx.drawImage(imageObj, 10, 10);
|
|
//canvas img를 그리겠다.
|
|
};
|
|
imageObj.src = imgData;
|
|
//그릴 image데이터를 넣어준다.
|
|
|
|
}, function reject() { });
|
|
|
|
}
|
|
function saveAs(uri, filename) {
|
|
var link = document.createElement('a');
|
|
if (typeof link.download === 'string') {
|
|
link.href = uri;
|
|
link.download = filename;
|
|
document.body.appendChild(link);
|
|
link.click();
|
|
document.body.removeChild(link);
|
|
} else {
|
|
window.open(uri);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
</html>
|
|
|
|
|
|
|