number_format($weight_kg, 2) ]; } function getSLengthCode($length, $category) { switch ($category) { case '연기차단재50': switch ($length) { case '3000': return '53'; case '4000': return '54'; default: return null; // 해당하는 값이 없을 경우 } case '연기차단재80': switch ($length) { case '3000': return '83'; case '4000': return '84'; default: return null; // 해당하는 값이 없을 경우 } case '기타': switch ($length) { case '1219': return '12'; case '2438': return '24'; case '3000': return '30'; case '3500': return '35'; case '4000': return '40'; case '4150': return '41'; case '4200': return '42'; case '4300': return '43'; default: return null; // 해당하는 값이 없을 경우 } default: return null; // 카테고리가 없는 경우 } } require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php"); //require_once($_SERVER['DOCUMENT_ROOT'] . "/estimate/fetch_unitprice.php"); $pdo = db_connect(); try { $sql = "select * from {$DB}.{$tablename} where num = ? "; $stmh = $pdo->prepare($sql); $stmh->bindValue(1, $num, PDO::PARAM_STR); $stmh->execute(); $count = $stmh->rowCount(); if ($count < 1) { print "검색결과가 없습니다.
"; } else { $row = $stmh->fetch(PDO::FETCH_ASSOC); include "_row.php"; // output_extra 테이블에서 데이터 불러오기 require_once $_SERVER['DOCUMENT_ROOT'] . '/output/load_output_extraTable.php'; // $prodCode 값에 따라 $prodItem 값 설정 if ($prodCode === "KSE01" || $prodCode === "KSS01" || $prodCode === "KSS02" ) { $prodItem = "실리카"; } else { $prodItem = "와이어"; } } } catch (PDOException $Exception) { print "오류: " . $Exception->getMessage(); } // JSON 문자열을 PHP 배열로 디코딩합니다. //스크린발주서 읽기 $eList = json_decode($estimateList, true); // 행의 수는 배열의 크기와 동일하므로, count() 함수를 사용하여 구합니다. $surang = count($eList); // 데이터베이스에서 recordbending 컬럼 값을 가져온 후 디코딩 $recordbending = isset($recordbending) ? json_decode($recordbending, true) : []; // print_r($recordbending); // JSON 데이터를 JavaScript 변수로 변환 echo ""; // 행의 수를 출력하거나 활용할 수 있습니다. // echo "행의 수: " . $surang . "
"; $THscreenSu = $surang + 2 ; // 디코딩된 데이터가 배열인지 확인합니다. if (!is_array($eList)) { echo "데이터가 정상적이지 않습니다. 확인바랍니다."; exit; } else { foreach ($eList as $item) { $prodcode = $item['col4']; $GuiderailType = $item['col6']; $FinishMat = $item['col7']; $items1 = ['KSS01','KSE01','KSS02']; $items2 = ['KWE01']; // $prodcode가 $items1 배열에 있는 경우 if (in_array($prodcode, $items1)) { $prodname = '국민방화 스크린 셔터'; } // $prodcode가 $items2 배열에 있는 경우 elseif (in_array($prodcode, $items2)) { $prodname = '국민방화 스크린 플러스 셔터'; } else { $prodname = 'Unknown'; // $prodcode가 어느 배열에도 없는 경우 } } } $indateStr = date("m/d", strtotime($indate)); $todayStr = date("m/d"); ?>
 

경동기업
  작   업   일   지

절곡 생산부서
결 재 작성 검토 승인

판매/ 생산 품질
신 청 업 체 신 청 내 용
발주일 현 장 명
업체명 작업일자
담당자 제품 LOT NO
연락처 생산담당자
제품명 마감유형
  ■ 작업내역 - 절곡 상세도면 참조
2438, 'wall_sum' => 0, 'side_sum' => 0, 'wall_basesize' => null , 'side_basesize' => null], ['length' => 3000, 'wall_sum' => 0, 'side_sum' => 0, 'wall_basesize' => null , 'side_basesize' => null], ['length' => 3500, 'wall_sum' => 0, 'side_sum' => 0, 'wall_basesize' => null , 'side_basesize' => null], ['length' => 4000, 'wall_sum' => 0, 'side_sum' => 0, 'wall_basesize' => null , 'side_basesize' => null], ['length' => 4300, 'wall_sum' => 0, 'side_sum' => 0, 'wall_basesize' => null , 'side_basesize' => null], ]; foreach ($eList as $item) { $validLength = floatval($item['col23']); // 유효 길이 $railType = trim($item['col6']); // 레일 타입 (혼합형, 벽면형, 측면형) foreach ($row3_data as &$row) { if ($validLength <= $row['length']) { if ($railType == '혼합형(120*70)(120*120)') { $row['wall_sum'] += 1; $row['side_sum'] += 1; $row['wall_basesize'] = '125*75'; $row['side_basesize'] = '125*125'; } elseif ($railType == '벽면형(120*70)') { $row['wall_sum'] += 2; $row['wall_basesize'] = '125*75'; } elseif ($railType == '측면형(120*120)') { $row['side_sum'] += 2; $row['side_basesize'] = '125*125'; } break; } } } unset($row); // 참조 제거 // 벽면형 테이블 출력 if (array_sum(array_column($row3_data, 'wall_sum')) > 0) { echo '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
1.1 벽면형[120*70]입고 & 생산 LOT NO.
벽면형
'; echo '
'; echo '
'; echo '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; if ($prodCode == 'KSS01') { $itemPrefixes = [ '①마감재' => 'RS', '②본체' => 'RM', '③C형' => 'RC', '④D형' => 'RD', ]; } else if ( $prodCode == 'KSS02') { // D형 삭제됨. $itemPrefixes = [ '①마감재' => 'RS', '②본체' => 'RM', '③C형' => 'RC' ]; } else if (($prodCode == 'KSE01' or $prodCode == 'KWE01') and $FinishMat == 'EGI마감') { $itemPrefixes = [ '①마감재' => 'RE', '②본체' => 'RM', '③C형' => 'RC', '④D형' => 'RD', ]; } else if (($prodCode == 'KSE01' or $prodCode == 'KWE01') and $FinishMat == 'SUS마감') { $itemPrefixes = [ // 별도마감부분 추가 '①마감재' => 'RE', '②본체' => 'RM', '③C형' => 'RC', '④D형' => 'RD', '⑤별도마감' => 'YY', ]; } foreach ($itemPrefixes as $key => $prefix) { $material = (strpos($key, '마감') !== false) ? $GuidrailFinish : $bodyMaterial; $material = (strpos($key, '별도') !== false ) ? $GuidrailExtraFinish : $material; echo ''; if($prefix =='RS' || $prefix =='YY') { // YY sus 1.2T echo ''; echo ''; } else { echo ''; echo ''; } echo ''; echo ''; } // 하부BASE 데이터 출력 echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
세부품명재질길이(규격) / 수량 / 입고 & 생산 LOT NO.
' . $key . '' . $material . '' . $key . '' . $material . ''; echo '
'; echo ''; echo ''; foreach ($row3_data as $row) { if ($row['wall_sum'] > 0) { $weightResult = calWeight($material, 412, intval($row['length'])); $weightText = (is_array($weightResult) && isset($weightResult['current_weight'])) ? $weightResult['current_weight'] : 'N/A'; $code = getSLengthCode($row['length'], '기타'); echo ''; echo ''; echo ''; echo ''; echo ''; } } echo ''; echo '
' . $row['length'] . '' . $row['wall_sum'] . '
'; echo '
'; echo '
하부BASEEGI 1.55T'; echo '
'; echo ''; echo ''; $weightResult_sum = 0; $BaseCount = 0; foreach ($row3_data as $row) { if ($row['wall_sum'] > 0) { $weightResult = calWeight('EGI 1.55T', 125, 75); $weightResult_sum += $EGI_total ; $BaseCount += $row['wall_sum']; $code = $row['wall_basesize']; $basesize = $row['wall_basesize']; } } echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
' . $basesize . '' . $BaseCount . '
'; echo '
'; echo '
'; echo '
'; echo '
'; } // 측면형 테이블 출력 if (array_sum(array_column($row3_data, 'side_sum')) > 0) { echo '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
1.2 측면형[120*120]입고 & 생산 LOT NO.
측면형
'; echo '
'; echo '
'; echo '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; if ($prodCode == 'KSS01') { $itemPrefixes = [ '①②마감재' => 'SS', '③본체' => 'SM', '④본체디딤' => 'SC', '⑤C형' => 'SD', '⑥D형' => 'SM', ]; } else if ($prodCode == 'KSS02') { $itemPrefixes = [ '①②마감재' => 'SS', '③본체' => 'SM', '④본체디딤' => 'SC', '⑤C형' => 'SD' ]; } else if (($prodCode == 'KSE01' or $prodCode == 'KWE01') and $FinishMat == 'EGI마감') { $itemPrefixes = [ '①②마감재' => 'SE', '③본체' => 'SM', '④본체디딤' => 'SC', '⑤C형' => 'SD', '⑥D형' => 'SM', ]; } else if (($prodCode == 'KSE01' or $prodCode == 'KWE01') and $FinishMat == 'SUS마감') { // 별도마감부분 추가 $itemPrefixes = [ '①②마감재' => 'SE', '③본체' => 'SM', '④본체디딤' => 'SC', '⑤C형' => 'SD', '⑥D형' => 'SM', '⑦⑧별도마감' => 'YY', ]; } foreach ($itemPrefixes as $key => $prefix) { $material = (strpos($key, '마감재') !== false) ? $GuidrailFinish : $bodyMaterial; $material = (strpos($key, '별도') !== false ) ? $GuidrailExtraFinish : $material; echo ''; if($prefix =='SS' || $prefix =='YY') { // YY sus 1.2T echo ''; echo ''; } else { echo ''; echo ''; } echo ''; echo ''; } // 하부BASE 데이터 출력 1행으로 출력가능 echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
세부품명재질길이(규격) / 수량 / 입고 & 생산 LOT NO.
' . $key . '' . $material . '' . $key . '' . $material . ''; echo '
'; echo ''; echo ''; foreach ($row3_data as $row) { if ($row['side_sum'] > 0) { $weightResult = calWeight($material, 462, intval($row['length'])); $code = getSLengthCode($row['length'], '기타'); echo ''; echo ''; echo ''; echo ''; echo ''; } } echo ''; echo '
' . $row['length'] . '' . $row['side_sum'] . '
'; echo '
'; echo '
하부BASEEGI 1.55T'; echo '
'; echo ''; echo ''; $weightResult_sum = 0; $BaseCount = 0; $side_sum = 0; foreach ($row3_data as $row) { if ($row['side_sum'] > 0) { $weightResult = calWeight('EGI 1.55T', 135, 130); $weightResult_sum += $EGI_total ; $BaseCount += $row['side_sum']; $code = $row['side_basesize']; $basesize = $row['side_basesize']; echo ''; echo ''; echo ''; echo ''; echo ''; } } echo ''; echo '
' . $basesize . '' . $BaseCount . '
'; echo '
'; echo '
'; echo '
'; echo '
'; } } ?>
[ 'size' => '(60*40)', 'length_3000' => 0, 'length_4000' => 0 ], '하단보강엘바' => [ 'size' => '(60*17)', 'length_3000' => 0, 'length_4000' => 0 ], '하단보강평철' => [ 'size' => '', 'length_3000' => 0, 'length_4000' => 0 ] ]; if($GuidrailFinish == 'EGI 1.55T') $BTmat = 'BE'; else $BTmat = 'BS'; // 데이터를 누적하여 합산 foreach ($eList as $item) { $item_data['하단마감재']['length_3000'] += intval($item['col49']); $item_data['하단마감재']['length_4000'] += intval($item['col50']); $item_data['하단보강엘바']['length_3000'] += intval($item['col52']); $item_data['하단보강엘바']['length_4000'] += intval($item['col53']); $item_data['하단보강평철']['length_3000'] += intval($item['col55']); $item_data['하단보강평철']['length_4000'] += intval($item['col56']); } $LbarFinish = 'EGI 1.55T'; $FlatbarFinish = 'EGI 1.15T'; echo '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
2. 하단마감재입고 & 생산 LOT NO.
하단마감재
'; echo '
'; echo '
'; echo '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; //if($FinishMat == 'SUS마감') { // YY sus 1.2T if($prodcode == 'KSS01' or $prodcode == 'KSS02') { // YY sus 1.2T echo ''; echo ''; } else { echo ''; echo ''; } echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; if(!empty($GuidrailExtraFinish)) { echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
세부품명재질길이(규격) / 수량 / 입고 & 생산 LOT NO.
①하단마감재 ' . $GuidrailFinish . '①하단마감재 ' . $GuidrailFinish . ''; echo '
'; echo ''; echo ''; if( $item_data['하단마감재']['length_4000'] > 0) { $length_4000 = 4000 ; $weightResult = calWeight($GuidrailFinish, 184 , $length_4000 ); echo ''; echo ''; echo ''; $code = getSLengthCode(4000, '기타'); echo ''; echo ''; } if( $item_data['하단마감재']['length_3000'] > 0) { $length_3000 = 3000 ; $weightResult = calWeight($GuidrailFinish, 184 , $length_3000 ); echo ''; echo ''; echo ''; $code = getSLengthCode(3000, '기타'); echo ''; echo ''; } echo ''; echo '
' . $length_4000 . '' . $item_data['하단마감재']['length_4000'] . '
' . $length_3000 . '' . $item_data['하단마감재']['length_3000'] . '
'; echo '
'; echo '
②하단보강엘바 ' . $LbarFinish . ''; echo '
'; echo ''; echo ''; if( $item_data['하단보강엘바']['length_4000'] > 0) { $length_4000 = 4000 ; $weightResult = calWeight($LbarFinish, 77 , $length_4000 ); echo ''; echo ''; echo ''; $code = getSLengthCode(4000, '기타'); echo ''; echo ''; } if( $item_data['하단보강엘바']['length_3000'] > 0) { $length_3000 = 3000 ; $weightResult = calWeight($LbarFinish, 77 , $length_3000 ); echo ''; echo ''; echo ''; $code = getSLengthCode(3000, '기타'); echo ''; echo ''; } echo ''; echo '
' . $length_4000 . '' . $item_data['하단보강엘바']['length_4000'] . '
' . $length_3000 . '' . $item_data['하단보강엘바']['length_3000'] . '
'; echo '
'; echo '
③하단보강평철 ' . $FlatbarFinish . ''; echo '
'; echo ''; echo ''; if( $item_data['하단보강평철']['length_4000'] > 0) { $length_4000 = 4000 ; $weightResult = calWeight($FlatbarFinish, 50 , $length_4000 ); echo ''; echo ''; echo ''; $code = getSLengthCode(4000, '기타'); // HH는 EGI1.15T 찾기 echo ''; echo ''; } if( $item_data['하단보강평철']['length_3000'] > 0) { $length_3000 = 3000 ; $weightResult = calWeight($FlatbarFinish, 50 , $length_3000 ); echo ''; echo ''; echo ''; $code = getSLengthCode(3000, '기타'); echo ''; echo ''; } echo ''; echo '
' . $length_4000 . '' . $item_data['하단보강평철']['length_4000'] . '
' . $length_3000 . '' . $item_data['하단보강평철']['length_3000'] . '
'; echo '
'; echo '
④별도마감재 ' . $GuidrailExtraFinish . ''; echo '
'; echo ''; echo ''; if( $item_data['하단마감재']['length_4000'] > 0 && !empty($GuidrailExtraFinish ) ) { $length_4000 = 4000 ; $weightResult = calWeight($GuidrailExtraFinish , 238 , $length_4000 ); echo ''; echo ''; echo ''; $code = getSLengthCode($row['length'], '기타'); echo ''; echo ''; } if( $item_data['하단마감재']['length_3000'] > 0 && !empty($GuidrailExtraFinish ) ) { $length_3000 = 3000 ; $weightResult = calWeight($GuidrailExtraFinish , 238 , $length_3000 ); echo ''; echo ''; echo ''; $code = getSLengthCode($row['length'], '기타'); echo ''; echo ''; } } if(empty($GuidrailExtraFinish )) { echo ''; echo ''; echo ''; } echo ''; echo '
' . $length_4000 . '' . $item_data['하단마감재']['length_4000'] . '
' . $length_3000 . '' . $item_data['하단마감재']['length_3000'] . '
없음
'; echo '
'; echo '
'; echo '
'; echo '
'; } ?> 문구, 'x' => X 좌표, 'y' => Y 좌표]) * @param int $fontSize 텍스트 폰트 크기 (모든 문구에 동일한 크기 적용) * @return bool 성공 여부 */ function drawImage($sourcePath, $savePath, $textData, $fontSize = 3) { // 디버그 로그 파일 경로 $debugLog = './debug_log.txt'; // 로그 기록 함수 $log = function ($message) use ($debugLog) { file_put_contents($debugLog, date('[Y-m-d H:i:s] ') . $message . "\n", FILE_APPEND); }; try { // GD 라이브러리 활성화 확인 if (!function_exists('imagecreatefromjpeg')) { $log("GD 라이브러리가 활성화되지 않음"); return false; } // 원본 이미지 로드 $image = imagecreatefromjpeg($sourcePath); if (!$image) { $log("이미지 로드 실패: {$sourcePath}"); return false; } $log("이미지 로드 성공: {$sourcePath}"); // 텍스트 추가 $textColor = imagecolorallocate($image, 255, 0, 0); // 빨간색 foreach ($textData as $textItem) { if (isset($textItem['text'], $textItem['x'], $textItem['y'])) { imagestring( $image, $fontSize, intval($textItem['x']), intval($textItem['y']), $textItem['text'], $textColor ); $log("텍스트 추가: '{$textItem['text']}' at ({$textItem['x']}, {$textItem['y']})"); } else { $log("잘못된 텍스트 데이터: " . json_encode($textItem)); } } // 이미지 저장 $result = imagejpeg($image, $savePath); if (!$result) { $log("이미지 저장 실패: {$savePath}"); return false; } $log("이미지 저장 성공: {$savePath}"); // 메모리 해제 imagedestroy($image); $log("메모리 해제 완료"); return true; // 성공 } catch (Exception $e) { $log("예외 발생: " . $e->getMessage()); return false; } } // $box_data = [ // ['size' => '500*350', 'sum' => 0, 'cover' => 0, 'fincover' => 0 ], // ['size' => '500*380', 'sum' => 0, 'cover' => 0, 'fincover' => 0 ] // ]; $box_data = []; // $eList를 순회하며 데이터 생성 foreach ($eList as $item) { $boxSize = trim($item['col36']); // `col37`에서 셔터박스 크기 추출 if ($boxSize == 'custom') { $boxSize = trim($item['col36_custom']); } $railwidth = trim($item['col36_railwidth']); $frontbottom = trim($item['col36_frontbottom']); $boxdirection = trim($item['col36_boxdirection']); // 박스방향 양면 밑면 후면 $cover = intval($item['col44']); // `col44`에서 상부덮개 값 추출 $fincover = intval($item['col46']); // `col46`에서 마구리 수량 값 추출 $boxLengths = [ ['length' => '1219', 'quantity' => intval($item['col38'])], ['length' => '2438', 'quantity' => intval($item['col39'])], ['length' => '3000', 'quantity' => intval($item['col40'])], ['length' => '3500', 'quantity' => intval($item['col41'])], ['length' => '4000', 'quantity' => intval($item['col42'])], ['length' => '4150', 'quantity' => intval($item['col43'])] ]; // `size`와 `boxdirection` 조합으로 기존 데이터 확인 $existingKey = array_search(true, array_map(function ($data) use ($boxSize, $boxdirection) { return $data['size'] === $boxSize && $data['boxdirection'] === $boxdirection; }, $box_data)); if ($existingKey === false) { // 새로운 사이즈 및 박스 방향 추가 $box_data[] = [ 'size' => $boxSize, 'sum' => 1, // 기본 값 설정 'cover' => $cover, 'fincover' => $fincover, 'railwidth' => $railwidth, 'frontbottom' => $frontbottom, 'boxdirection' => $boxdirection, 'length_data' => array_map(function ($length) { return ['length' => $length['length'], 'sum' => $length['quantity']]; }, $boxLengths) ]; } else { // 기존 데이터에 값 누적 $box_data[$existingKey]['sum'] += 1; $box_data[$existingKey]['cover'] += $cover; $box_data[$existingKey]['fincover'] += $fincover; // 길이 데이터 누적 foreach ($boxLengths as $index => $length) { $box_data[$existingKey]['length_data'][$index]['sum'] += $length['quantity']; } } } // 결과 확인 // print_r($box_data); ?>
'; // print_r($box); // echo ''; // 입력 데이터 설정 if ($box['boxdirection'] == '양면') { $suffix = 'both'; } else if ($box['boxdirection'] == '밑면') { $suffix = 'bottom'; } else if ($box['boxdirection'] == '후면') { $suffix = 'rear'; } // 주의 사항 : image생성시는 https:// 이것은 금지된다. 안된다. 그래서 폴더는 ../ 이렇게 상대적 주소를 사용해야 한다. 중요함 $sourcePath = '../img/box/source/box_' . $suffix . '.jpg'; $saveName = 'box_' . str_replace('*', 'x', $box['size']) . '_' . $suffix . '.jpg'; $savePath = '../img/box/' . $saveName; list($boxwidth, $boxheight) = explode('*', $box['size']); // 셔터박스 크기 분리 $TopcoverSize = $boxwidth - 111; // 텍스트로 추가할 값 // 입력 데이터 설정 if ($box['boxdirection'] == '양면') { $textData = [ ['text' => $boxheight , 'x' => 15, 'y' => 85], ['text' => $TopcoverSize, 'x' => 100, 'y' => 5], ['text' => $box['frontbottom'] , 'x' => 25, 'y' => 170], ['text' => $box['railwidth'] , 'x' => 55, 'y' => 210], ['text' => ($boxwidth-$box['frontbottom']-$box['railwidth']-140) , 'x' => 120, 'y' => 175], ['text' => ($boxheight-140) , 'x' => 200, 'y' => 90], ['text' => ($boxwidth+5) , 'x' => 100, 'y' => 225], ['text' => ($boxheight+5) , 'x' => 135, 'y' => 250], ]; } else if ($box['boxdirection'] == '밑면') { $textData = [ ['text' => $boxheight , 'x' => 15, 'y' => 85], ['text' => $TopcoverSize, 'x' => 100, 'y' => 5], ['text' => $box['frontbottom'] , 'x' => 25, 'y' => 170], ['text' => $box['railwidth'] , 'x' => 55, 'y' => 210], ['text' => ($boxwidth-$box['frontbottom']-$box['railwidth']-140) , 'x' => 120, 'y' => 175], // 점검구 140 빼기 ['text' => ($boxheight) , 'x' => 200, 'y' => 90], ['text' => ($boxwidth+5) , 'x' => 100, 'y' => 225], ['text' => ($boxheight+5) , 'x' => 135, 'y' => 250], ]; } else if ($box['boxdirection'] == '후면') { $textData = [ ['text' => $boxheight , 'x' => 15, 'y' => 85], ['text' => $TopcoverSize, 'x' => 100, 'y' => 5], ['text' => $box['frontbottom'] , 'x' => 25, 'y' => 170], ['text' => $box['railwidth'] , 'x' => 55, 'y' => 210], ['text' => ($boxwidth-$box['frontbottom']-$box['railwidth']) , 'x' => 120, 'y' => 175], ['text' => ($boxheight-140) , 'x' => 200, 'y' => 90], ['text' => ($boxwidth+5) , 'x' => 100, 'y' => 225], ['text' => ($boxheight+5) , 'x' => 135, 'y' => 250], ]; } // 이미지 그리기 함수 호출 drawImage($sourcePath, $savePath, $textData, 3); $BoxFinish = 'EGI 1.55T'; $boxCover = intval($box['cover']); // 상부덮개 수량 $boxFinCover = intval($box['fincover']); // 마구리 수량 echo '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
3. 케이스 [' . $box['size'] . '] 점검구: ' . $box['boxdirection'] . '
'; echo '
'; echo '
'; echo '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; // 로트번호 표준사이즈는 포밍기로 재고생성 구성 요소 정의 if($box['size'] == '500*380') { if($box['boxdirection'] == '양면') { $components = [ '①전면부' => ['prefix' => 'CF', 'dimension' => $boxheight + 122], '②린텔부' => ['prefix' => 'CL', 'dimension' => $boxwidth - 330], '③⑤점검구' => ['prefix' => 'CP', 'dimension' => $boxwidth - 200], '④후면코너부' => ['prefix' => 'CB', 'dimension' => 170], ]; } if($box['boxdirection'] == '밑면') { $components = [ '①전면부' => ['prefix' => 'CF', 'dimension' => $boxheight + 122], '②린텔부' => ['prefix' => 'CL', 'dimension' => $boxwidth - 330], '③점검구' => ['prefix' => 'CP', 'dimension' => $boxwidth - 200], '④후면부' => ['prefix' => 'CB', 'dimension' => $boxheight + 85*2], ]; } if($box['boxdirection'] == '후면') { $components = [ '①전면부' => ['prefix' => 'CF', 'dimension' => $boxheight + 122], '②린텔부' => ['prefix' => 'CL', 'dimension' => $boxwidth + 85*2], '③점검구' => ['prefix' => 'CP', 'dimension' => $boxheight - 200], '④후면코너부' => ['prefix' => 'CB', 'dimension' => 170 ], ]; } } else { if($box['boxdirection'] == '양면') { $components = [ '①전면부' => ['prefix' => 'XX', 'dimension' => $boxheight + 122], '②린텔부' => ['prefix' => 'CL', 'dimension' => $boxwidth - 330], '③점검구' => ['prefix' => 'XX', 'dimension' => $boxwidth - 200], '④후면코너부' => ['prefix' => 'CB', 'dimension' => 170], '⑤점검구' => ['prefix' => 'XX', 'dimension' => $boxheight - 100], ]; } if($box['boxdirection'] == '밑면') { $components = [ '①전면부' => ['prefix' => 'XX', 'dimension' => $boxheight + 122], '②린텔부' => ['prefix' => 'CL', 'dimension' => $boxwidth - 330], '③점검구' => ['prefix' => 'XX', 'dimension' => $boxwidth - 200], '④후면부' => ['prefix' => 'CB', 'dimension' => $boxheight + 85*2], ]; } if($box['boxdirection'] == '후면') { $components = [ '①전면부' => ['prefix' => 'XX', 'dimension' => $boxheight + 122], '②린텔부' => ['prefix' => 'CL', 'dimension' => $boxwidth + 85*2], '③점검구' => ['prefix' => 'XX', 'dimension' => $boxheight - 200], '④후면코너부' => ['prefix' => 'CB', 'dimension' => $boxheight + 85*2], ]; } } // 각 구성 요소 출력 foreach ($components as $name => $data) { echo ''; echo ''; echo ''; echo ''; echo ''; } // 상부덮개 출력 echo ''; if($box['boxdirection'] == '양면') echo ''; else echo ''; echo ''; echo ''; echo ''; // 측면부 (마구리) 출력 echo ''; if($box['boxdirection'] == '양면') echo ''; else echo ''; echo ''; echo ''; echo ''; echo ''; echo '
세부품명재질길이(규격) / 수량 / 입고 & 생산 LOT NO.
' . $name . '' . $BoxFinish . ''; echo '
'; echo ''; echo ''; foreach ($box['length_data'] as $row) { if (intval($row['sum']) > 0) { $weightResult = calWeight($BoxFinish, $data['dimension'], intval($row['length'])); $code = getSLengthCode($row['length'], '기타'); echo ''; echo ''; echo ''; echo ''; echo ''; } } echo ''; echo '
' . $row['length'] . '' . $row['sum'] . '
'; echo '
'; echo '
⑥상부덮개⑤상부덮개' . $BoxFinish . ''; echo '
'; echo ''; echo ''; $calculateWidth = ($boxwidth-111) ; $topSize = '1219*'. $calculateWidth ; $topWeight = calWeight($BoxFinish, $calculateWidth, 1219); echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
' . $topSize . '' . $boxCover . '
'; echo '
'; echo '
⑦측면부
(마구리)
⑥측면부
(마구리)
' . $BoxFinish . ''; echo '
'; echo ''; echo ''; list($boxwidthFin, $boxheightFin) = explode('*', $box['size']); $sideWeight = calWeight($BoxFinish, $boxwidthFin, $boxheightFin); echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
' . ($boxwidthFin+5) . '*' . ($boxheightFin+5) . '' . $boxFinCover . '
'; echo '
'; echo '
'; echo '
'; echo '
'; } } ?>
2438, 'sum' => 0], ['length' => 3000, 'sum' => 0], ['length' => 3500, 'sum' => 0], ['length' => 4000, 'sum' => 0], ['length' => 4300, 'sum' => 0] ]; foreach ($eList as $item) { $smoke_data[0]['sum'] += floatval($item['col31']); // length 2438 $smoke_data[1]['sum'] += floatval($item['col32']); // length 3000 $smoke_data[2]['sum'] += floatval($item['col33']); // length 3500 $smoke_data[3]['sum'] += floatval($item['col34']); // length 4000 $smoke_data[4]['sum'] += floatval($item['col35']); // length 4300 } // 연기차단재 데이터가 있는 경우만 출력 $smoke_rows = []; foreach ($smoke_data as $row) { if ($row['sum'] > 0) { $smoke_rows[] = [ 'length' => $row['length'], 'sum' => $row['sum'] ]; } } $smoke_rowspan = count($smoke_rows); // W80 기준 숫자 찾기 $smokeban80 = 0; foreach ($eList as $item) { $smokeban80 += floatval($item['col47']); } echo '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
4. 연기차단재
연기차단재
'; echo '
'; echo '
'; echo '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
재질세부품명길이(규격) / 수량 / 입고 & 생산 LOT NO.
EGI 0.8T
+ 화이바
글라스
코팅직물
레일용
[W50]
'; echo '
'; echo ''; echo ''; $side_sum = 0; foreach ($smoke_rows as $row) { $side_sum += $row['sum']; if(intval($row['sum'])>0) { $weightResult = calWeight('EGI 0.8T', 26 , intval($row['length']) ); echo ''; echo ''; echo ''; $code = getSLengthCode($row['length'], '기타'); // 연기차단재 80만 특별히 계산하고 50은 기타로 분류함 echo ''; echo ''; $side_sum += $row['sum']; } } echo ''; echo '
' . $row['length'] . '' . $row['sum'] . '
'; echo '
'; echo '
케이스용
[W80]
'; echo '
'; echo ''; echo ''; if(intval($smokeban80)>0) { $length = 3000; $weightResult = calWeight('EGI 0.8T', 26 , $length ); echo ''; echo ''; echo ''; $code = getSLengthCode(3000, '연기차단재80'); echo ''; echo ''; } echo ''; echo '
' . $length . '' . $smokeban80 . '
'; echo '
'; echo '
'; echo '
'; echo '
'; ?> '; echo '
'; echo '
'; echo ''; echo ''; // 1180과 400 라인 출력 echo ''; echo ''; echo ''; echo ''; echo ''; // 900과 300 라인 출력 echo ''; echo ''; echo ''; echo ''; // 600 라인 출력 echo ''; echo ''; echo ''; echo ''; echo '
생산량 합계(KG) SUSEGI
' . number_format($SUS_total, 2) . ' ' . number_format($EGI_total, 2) . '
' . number_format($SUS_total + $EGI_total, 2) . '
'; echo '
'; echo '
'; echo '
'; ?>
절곡 체크 안됨.