OutEstmWrite.jsp 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984
  1. <%--
  2. - Author(s) : Hyung min Son
  3. - Date : 2014.07.02
  4. - Description: 견적서작성
  5. --%>
  6. <%@ page contentType="text/html; charset=utf-8" %>
  7. <%@ page import="java.text.SimpleDateFormat" %>
  8. <%@ page import="java.util.Date" %>
  9. <%@ page import="com.udapsoft.waf.system.HandlerStorage" %>
  10. <%@ page import="com.udapsoft.waf.common.ui.*" %>
  11. <%@ page import="com.udapsoft.waf.common.util.StringUtils" %>
  12. <%@ page import="kr.co.udapsoft.common.code.*" %>
  13. <%@ page import="kr.co.hsnc.common.util.*"%>
  14. <%@ page import="kr.co.hsnc.common.sql.*" %>
  15. <%@ include file="/jsp/work/taglib.jsp" %>
  16. <jsp:useBean id="ctx" class="com.udapsoft.waf.system.context.SessionContext" scope="session" />
  17. <%
  18. ctx.init(request, response);
  19. HandlerStorage storage = ctx.getHandlerStorage();
  20. ValueObject params = storage.getParams();
  21. ValueObject user = storage.getUser();
  22. ValueObject Order = storage.getValueObject("Order");
  23. ValueObject file = storage.getValueObject(Order.get("FILE_GB"));
  24. SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
  25. SimpleDateFormat sd2 = new SimpleDateFormat("yyyyMMddHHmm");
  26. String nowTime = sd.format(new Date());
  27. String to_yyyy = Order.get("BID_TO_DT").substring(0, 4);
  28. String to_MM = Order.get("BID_TO_DT").substring(5, 7);
  29. String to_dd = Order.get("BID_TO_DT").substring(8, 10);
  30. String to_hh = Order.get("BID_TO_DT").substring(11, 13);
  31. String to_mi = Order.get("BID_TO_DT").substring(14, 16);
  32. String nowTime_yyyy = nowTime.substring(0, 4);
  33. String nowTime_MM = nowTime.substring(4, 6);
  34. String nowTime_dd = nowTime.substring(6, 8);
  35. SimpleDateFormat SeverTime = new SimpleDateFormat("yyyy-MM-dd");
  36. String str = SeverTime.format(new Date());
  37. %>
  38. <SCRIPT language="JavaScript">
  39. /*예약함수*/
  40. var sheet1 = new ibsheetObject();
  41. var sheet1Row;
  42. var sheet1PageNo = 1;
  43. var pageLastRowIndex = 1;
  44. var validationResult = false;
  45. var filterShow = false;
  46. var must_msg = "(은)는 필수 입력 항목입니다.";
  47. var cost_point = <%=Order.get("PointCount")%>;
  48. function _onReady(){
  49. gridInit(sheet1);
  50. autoResize();
  51. var info = [{StdCol:"DEPTH1" , SumCols:"7|8|9|10|11",CaptionText:"[소 계]",CaptionCol:3}];
  52. sheet1.ShowSubSum (info);
  53. sheet1.SetSumValue(3,"총 공 사 비 계");
  54. /**
  55. * Application Initialize
  56. */
  57. $("#btn_back").click(function() {
  58. $("#fevent").val("FORM_SELECT");
  59. $("#form1").attr("action", "/portal/bid/QuotRequest.screen");
  60. $("#form1").attr("target", "_self");
  61. $("#form1").attr("method", "post");
  62. $("#form1").submit();
  63. });
  64. $("#btn_signdata").click(function() {
  65. fMakeItemInfo();
  66. });
  67. jQuery("#btnExcel").click(function(){
  68. var params = { FileName : "(<%=Order.get("BID_NO")%>-<%=Order.get("BID_DEG")%>)견적서.xls", SheetName : "(<%=Order.get("BID_NO")%>-<%=Order.get("BID_DEG")%>)견적서", SheetDesign:1 , DownCols:"DEPTH1|DEPTH2|DEPTH2|ITEM_NAME|UNIT_COST|BASIS_CALCU|NOTI" } ;
  69. sheet1.Down2Excel(params);
  70. });
  71. doSearchSheet();
  72. }
  73. function doSearchSheet(){
  74. $("#fevent").val("GET_ITEM_LIST");
  75. var url = Modular.model.PageContext.CONTEXT_ROOT + "/portal/bid/OutEstmWrite_sheet.screen";
  76. Modular.view.IBSheet7.doSearch(sheet1, url, jQuery("#form1"), 30, "");
  77. }
  78. function gridInit(sheetName){
  79. var init_sheet = {};
  80. init_sheet.Cfg = {SearchMode:0 , MergeSheet:msHeaderOnly+msPrevColumnMerge};
  81. init_sheet.Cols = [
  82. {Header:'Del', Type:"DelCheck", SaveName:"DEL_CHECK", Width:0, Align:"Center", Hidden:"True"},
  83. {Header:'Status', Type:"Status", SaveName:"STATUS", Width:0, Align:"Center", Hidden:"True"},
  84. {Header:'구분', Type:"Text", SaveName:"DEPTH1", Width:70, Align:"Center", Edit:false , Wrap:true},
  85. {Header:'내역', Type:"Text", SaveName:"ITEM_NAME", Width:70, Align:"left", Edit:false},
  86. {Header:'No.', Type:"Seq", SaveName:"NO", Width:0, Align:"Center", Hidden:"True"},
  87. {Header:'MATERIAL_CD', Type:"Text", SaveName:"MATERIAL_CD", Width:0, Align:"Center", Hidden:"True"},
  88. {Header:'PARENT_LEVEL', Type:"Text", SaveName:"PARENT_LEVEL", Width:80, Align:"left", Hidden:"True"},
  89. {Header:'수량/규격', Type:"Text", SaveName:"ITEMS", Width:80, Align:"Center", Hidden:"True"},
  90. {Header:'재료비', Type:"AutoSum", SaveName:"MAT_COST", Width:80, Align:"right", PointCount:<%=Order.get("PointCount")%>},
  91. {Header:'노무비', Type:"AutoSum", SaveName:"LAB_COST", Width:80, Align:"right", PointCount:<%=Order.get("PointCount")%>},
  92. {Header:'경비', Type:"AutoSum", SaveName:"UNIT_COST", Width:80, Align:"right", PointCount:<%=Order.get("PointCount")%>},
  93. {Header:'합계', Type:"AutoSum", SaveName:"SUM_COST", Width:80, Align:"right", CalcLogic:"|MAT_COST|+|LAB_COST|+|UNIT_COST|", PointCount:<%=Order.get("PointCount")%>},
  94. {Header:'산출근거', Type:"Text", SaveName:"BASIS_CALCU", Width:140, Align:"left", Edit:false},
  95. {Header:'비고', Type:"Text", SaveName:"NOTI", Width:80, Align:"left"},
  96. {Header:'수량', Type:"Text", SaveName:"QTY", Width:80, Align:"left", Hidden:"True"},
  97. {Header:'합계', Type:"Text", SaveName:"ROW_SUM_AMT", Width:80, Align:"left", Hidden:"True"}
  98. ];
  99. init_sheet.HeaderMode = {Sort:1};
  100. IBS_InitSheet(sheetName, init_sheet);
  101. sheetName.SetDataAutoTrim(0);
  102. sheetName.SetFocusEditMode(1);
  103. sheetName.SetEditEnterBehavior("down");
  104. setGridSize();
  105. }
  106. /**
  107. * IBSheet Event: Search End(IBSheet 데이터 조회 CallBack)
  108. */
  109. function sheet1_OnSearchEnd(code, message) {
  110. if(code == 0) {
  111. var row = sheet1.RowCount();
  112. sheet1.RowDelete(row);
  113. sheet1.RowDelete(row-2);
  114. sheet1.RowDelete(row-4);
  115. sheet1.SetMergeCell(row-3,2,1,2);//타이틀 머지
  116. sheet1.SetMergeCell(row-4,2,1,2);
  117. sheet1.SetMergeCell(row-5,2,1,2);
  118. row = 0;
  119. for (var i = 2; i <= sheet1.RowCount()+1; i ++){
  120. if (sheet1.GetCellValue(i, "DEPTH1") =="간접비"){
  121. row = i;
  122. break;
  123. }
  124. }
  125. var ingise_yn = "N";
  126. for (var i = 2; i <= sheet1.RowCount()+1; i ++){
  127. if (sheet1.GetCellValue(i, "ITEM_NAME") =="인지세"){
  128. ingise_yn = "Y";
  129. }
  130. }
  131. //여기
  132. rowEditYN(row,"<%=Order.get("OBC_EMP_YN")%>");
  133. rowEditYN(row+1,"<%=Order.get("OBC_PENSION_YN")%>");
  134. rowEditYN(row+2,"<%=Order.get("OBC_HEALTH_YN")%>");
  135. rowEditYN(row+3,"<%=Order.get("OBC_ELDER_YN")%>");
  136. rowEditYN(row+4,"<%=Order.get("OBC_WORK_YN")%>");
  137. rowEditYN(row+5,"<%=Order.get("OBC_RESIGN_YN")%>");
  138. rowEditYN(row+6,"<%=Order.get("OBC_SAFE_YN")%>");
  139. rowEditYN(row+7,"<%=Order.get("OBC_ENV_YN")%>");
  140. rowEditYN(row+8,"<%=Order.get("OBC_SITE_YN")%>");
  141. rowEditYN(row+9,"<%=Order.get("OBC_DUTY_YN")%>");
  142. rowEditYN(row+10,"<%=Order.get("OBC_WARR_YN")%>");//건설기계 수수료
  143. if(ingise_yn=="Y"){
  144. rowEditYN(row+11,"Y");//인지세
  145. rowEditYN(row+13,"Y");//일반관리비
  146. rowEditYN(row+14,"Y");//이윤
  147. rowEditYN(row+15,"Y");//단수정리
  148. //sheet1.SetCellValue(row+11,"NOTI","원사업자 부담분 (50%)");
  149. }else{
  150. rowEditYN(row+12,"Y");//일반관리비
  151. rowEditYN(row+13,"Y");//이윤
  152. rowEditYN(row+14,"Y");//단수정리
  153. $("#btnhelp").hide();
  154. }
  155. var GrowCount = sheet1.LastRow();
  156. for(var i=1; i < GrowCount+1; i++)
  157. {
  158. if(sheet1.GetCellEditable(i, "UNIT_COST") == "1"){
  159. if (row > i){
  160. sheet1.SetCellBackColor(i, "MAT_COST", "#ccff99");
  161. sheet1.SetCellBackColor(i, "LAB_COST", "#ccff99");
  162. }
  163. sheet1.SetCellBackColor(i, "UNIT_COST", "#ccff99");
  164. }
  165. if(sheet1.GetCellEditable(i, "NOTI") == "1"){
  166. sheet1.SetCellBackColor(i, "NOTI", "#ccff99");
  167. }
  168. }
  169. sheet1.FitColWidth();
  170. //크롬 문제
  171. if(sheet1.GetSheetWidth() > 450){
  172. sheet1.SetSheetWidth(450);
  173. sheet1.SetSheetWidth($("#sheettable").width());
  174. sheet1.FitColWidth();
  175. }
  176. }else {
  177. //조회 에러 수행
  178. alert(message);
  179. }
  180. }
  181. /**
  182. * IBSheet Event: Click
  183. */
  184. function sheet1_OnClick(Row, Col, Value, CellX, CellY, CellW, CellH) {
  185. //alert("Row :" + Row + " Col : " +Col);
  186. if(Row == 1){
  187. // exceldown();
  188. }
  189. }
  190. /**
  191. * IBSheet size setting
  192. */
  193. function setGridSize() {
  194. sheet1.FitColWidth();
  195. }
  196. function sheet1_OnChange(Row, Col, Value) {
  197. var GrowCount = sheet1.LastRow();
  198. var amt = sheet1.GetCellValue(GrowCount,"SUM_COST");
  199. if(amt != ""){
  200. $("#TOT_AMT_CK").val(amt);
  201. var arrAmt = $("#TOT_AMT_CK").val().split(".");
  202. if(arrAmt.length > 1){
  203. $("#TOT_AMT").val(formatComma(amt,cost_point));
  204. }else{
  205. $("#TOT_AMT").val(amt);
  206. $("#TOT_AMT").val($("#TOT_AMT").val().split(/(?=(?:\d{3})+(?:\.|$))/g).join(','));
  207. }
  208. }
  209. var i = 0;//간접비 시작위치 확인
  210. for (var a = 2; a <= sheet1.RowCount()+1; a ++){
  211. if (sheet1.GetCellValue(a, "DEPTH1") =="간접비"){
  212. i = a;
  213. break;
  214. }
  215. }
  216. var ingise_yn = "N";
  217. for (var b = 2; b <= sheet1.RowCount()+1; b ++){
  218. if (sheet1.GetCellValue(b, "ITEM_NAME") =="인지세"){
  219. ingise_yn = "Y";
  220. }
  221. }
  222. if(Col == 9 || Row == i){ //고용보험료
  223. if(sheet1.GetCellValue(i-1,"LAB_COST") > 0 && sheet1.GetCellValue(i,"UNIT_COST") > 0){
  224. var data = sheet1.GetCellValue(i,"UNIT_COST") / sheet1.GetCellValue(i-1,"LAB_COST") * 100;
  225. sheet1.SetCellValue(i,"BASIS_CALCU","노무비 * ("+data.toFixed(3)+")%");
  226. }
  227. }
  228. if(Row == i+2 || Row == i+3){//노인장기보험료
  229. if(sheet1.GetCellValue(i+2,"UNIT_COST") > 0 && sheet1.GetCellValue(i+3,"UNIT_COST") > 0){
  230. var data = sheet1.GetCellValue(i+3,"UNIT_COST") / sheet1.GetCellValue(i+2,"UNIT_COST") * 100;
  231. sheet1.SetCellValue(i+3,"BASIS_CALCU","건강 보험료 * ("+data.toFixed(3)+")%");
  232. }
  233. }
  234. if(Col == 9 || Row == i+4){//산재보험료
  235. if(sheet1.GetCellValue(i-1,"LAB_COST") > 0 && sheet1.GetCellValue(i+4,"UNIT_COST") > 0){
  236. var data = sheet1.GetCellValue(i+4,"UNIT_COST") / sheet1.GetCellValue(i-1,"LAB_COST") * 100;
  237. sheet1.SetCellValue(i+4,"BASIS_CALCU","노무비 * ("+data.toFixed(3)+")%");
  238. }
  239. }
  240. if(Col == 9 || Row == i+5){//퇴직공제부금
  241. if(sheet1.GetCellValue(i-1,"LAB_COST") > 0 && sheet1.GetCellValue(i+5,"UNIT_COST") > 0){
  242. var data = sheet1.GetCellValue(i+5,"UNIT_COST") / sheet1.GetCellValue(i-1,"LAB_COST") * 100;
  243. sheet1.SetCellValue(i+5,"BASIS_CALCU","노무비 * ("+data.toFixed(3)+")%");
  244. }
  245. }
  246. if(Row == i-1 || Row == i+6){//안전관리비
  247. if(sheet1.GetCellValue(i-1,"SUM_COST") > 0 && sheet1.GetCellValue(i+6,"UNIT_COST") > 0){
  248. var data = sheet1.GetCellValue(i+6,"UNIT_COST") / sheet1.GetCellValue(i-1,"SUM_COST") * 100;
  249. sheet1.SetCellValue(i+6,"BASIS_CALCU","노무비 * ("+data.toFixed(3)+")%");
  250. }
  251. }
  252. if(Col == 8 || Row == i+7){//환경관리비
  253. if(sheet1.GetCellValue(i-1,"MAT_COST") > 0 && sheet1.GetCellValue(i+7,"UNIT_COST") > 0){
  254. var data = sheet1.GetCellValue(i+7,"UNIT_COST") / sheet1.GetCellValue(i-1,"MAT_COST") * 100;
  255. sheet1.SetCellValue(i+7,"BASIS_CALCU","재료비 * ("+data.toFixed(3)+")%");
  256. }
  257. }
  258. if(Row == i-1 || Row == i+8){//현장관리비
  259. if(sheet1.GetCellValue(i-1,"SUM_COST") > 0 && sheet1.GetCellValue(i+8,"UNIT_COST") > 0){
  260. var data = sheet1.GetCellValue(i+8,"UNIT_COST") / sheet1.GetCellValue(i-1,"SUM_COST") * 100;
  261. sheet1.SetCellValue(i+8,"BASIS_CALCU","직접비 * ("+data.toFixed(3)+")%");
  262. }
  263. }
  264. if(Col == 8){//매입부가세
  265. var data = Number("<%=Order.get("OBC_DUTY_RATE")%>");
  266. var dataYN = "<%=Order.get("OBC_DUTY_YN")%>";
  267. if(sheet1.GetCellValue(i-1,"MAT_COST") > 0 && data > 0){
  268. if(dataYN == "Y"){
  269. sheet1.SetCellValue(i+9,"BASIS_CALCU","재료비 * 매입세율 ("+data+")% * 10%");
  270. var data2 = ((data/100) * sheet1.GetCellValue(i-1,"MAT_COST")) *0.1;
  271. sheet1.SetCellValue(i+9,"UNIT_COST",Math.floor(data2));
  272. }
  273. }
  274. }
  275. if(ingise_yn=="Y"){
  276. /** 금액 변동있을경우 무조건 변경 **/
  277. if(Col == 9 || Row == i+11){//인지세
  278. sheet1.SetCellValue(i+11,"BASIS_CALCU","계약금액별 납부금액 100%");
  279. }
  280. if(sheet1.GetCellValue(i+13,"UNIT_COST") > 0){ //일반관리비
  281. var sum = sheet1.GetCellValue(i-1,"SUM_COST") + sheet1.GetCellValue(i+12,"UNIT_COST");
  282. var data = sheet1.GetCellValue(i+13,"UNIT_COST") / sum * 100;
  283. sheet1.SetCellValue(i+13,"BASIS_CALCU","순공사비 * ("+data.toFixed(3)+")%");
  284. }
  285. if(sheet1.GetCellValue(i+14,"UNIT_COST") > 0){ //이윤
  286. var sum = sheet1.GetCellValue(i-1,"SUM_COST") + sheet1.GetCellValue(i+12,"UNIT_COST");
  287. var data = sheet1.GetCellValue(i+14,"UNIT_COST") / sum * 100;
  288. sheet1.SetCellValue(i+14,"BASIS_CALCU","순공사비 * ("+data.toFixed(3)+")%");
  289. }
  290. }else{
  291. /** 금액 변동있을경우 무조건 변경 **/
  292. if(sheet1.GetCellValue(i+12,"UNIT_COST") > 0){ //일반관리비
  293. var sum = sheet1.GetCellValue(i-1,"SUM_COST") + sheet1.GetCellValue(i+11,"UNIT_COST");
  294. var data = sheet1.GetCellValue(i+12,"UNIT_COST") / sum * 100;
  295. sheet1.SetCellValue(i+12,"BASIS_CALCU","순공사비 * ("+data.toFixed(3)+")%");
  296. }
  297. if(sheet1.GetCellValue(i+13,"UNIT_COST") > 0){ //이윤
  298. var sum = sheet1.GetCellValue(i-1,"SUM_COST") + sheet1.GetCellValue(i+11,"UNIT_COST");
  299. var data = sheet1.GetCellValue(i+13,"UNIT_COST") / sum * 100;
  300. sheet1.SetCellValue(i+13,"BASIS_CALCU","순공사비 * ("+data.toFixed(3)+")%");
  301. }
  302. }
  303. }
  304. function numberFormat(num) {
  305. var pattern = /(-?[0-9]+)([0-9]{3})/;
  306. while(pattern.test(num)) {
  307. num = num.replace(pattern,"$1,$2");
  308. }
  309. return num;
  310. }
  311. function rowEditYN(Row,YN){
  312. if(YN != "Y"){
  313. sheet1.SetCellValue(Row,"NOTI","견적제외");
  314. sheet1.SetRowEditable(Row, false);
  315. }else{
  316. sheet1.SetCellEditable(Row,"MAT_COST",false);
  317. sheet1.SetCellEditable(Row,"LAB_COST",false);
  318. }
  319. }
  320. //첨부파일
  321. function doAttachFile(obj) {
  322. if(obj==''){
  323. alert("After you have saved, you can attach a file.");
  324. }
  325. else if(obj != ''){
  326. viewFileListNew("<%=Order.get("FILE_GB")%>", obj.value, document.form1.p_AttachFile, "Y", "bid/outside/<%=Order.get("BID_NO")%>/<%=Order.get("VENDOR_CD")%>/");
  327. }
  328. }
  329. function doResult(resultObj) {
  330. try {
  331. if( resultObj.getRequestEvent() == "FORM_UPDATE") {
  332. if( resultObj.getSuccess() ) {
  333. alert("저장 되었습니다.");
  334. history.back();
  335. }
  336. else {
  337. dlgErrorMsg(resultObj);
  338. }
  339. }
  340. if( resultObj.getRequestEvent() == "FORM_DELETE") {
  341. if( resultObj.getSuccess() ) {
  342. alert("삭제 되었습니다.");
  343. $("#btn_list").click();
  344. }
  345. else {
  346. dlgErrorMsg(resultObj);
  347. }
  348. }
  349. } catch(errorObject) {
  350. showErrorDlg("doResult()", errorObject);
  351. }
  352. }
  353. function sheet1_OnSmartResize(Width, Height) {
  354. sheet1.FitColWidth();
  355. autoResize();
  356. }
  357. function autoResize(){
  358. sheet1.SetSheetHeight(560); //515 2017.07.18
  359. }
  360. function AddZero(str){
  361. if((str+"").length==1){
  362. return "0"+str;
  363. }
  364. return str;
  365. }
  366. function fMakeItemInfo(){
  367. var sColumDelimiter = "┃";
  368. var sRowDelimiter = "↕";
  369. var sSumDelimiter = "╂";
  370. var sEncDelimiter = "⇔";
  371. var isNull = "NULL";
  372. var sItemInfo = "";
  373. var sBidNo = "<%=Order.get("BID_NO")%>"; // 공고번호
  374. var sBidDeg = "<%=Order.get("BID_DEG")%>"; // 입찰차수 var sMainVendcd = "<%=Order.get("VENDOR_CD")%>"; // 원사업자번호
  375. var sMainVendcd = $("#VENDOR_CD").val(); // 원사업자번호
  376. var pTotSum = ""; // 견적제출금액
  377. var GrowCount = sheet1.LastRow();
  378. var cost_point = <%=Order.get("PointCount")%>;
  379. var sfileGB = $("#FILE_GB").val();
  380. var bid_to_dt = "<%=Order.get("BID_TO_DT")%>";
  381. var today = "<%=str%>";
  382. var now = new Date();
  383. hours = now.getHours();
  384. if (hours < 10)
  385. hours = "0" + hours;
  386. minutes = now.getMinutes();
  387. now = today + " " + hours + ":" + minutes;
  388. var time = false;
  389. if(bid_to_dt <= now){
  390. time = true;
  391. }
  392. if ($("#p_AttachFile").val() == null || $("#p_AttachFile").val() == ""){
  393. alert("견적서(엑셀)를 첨부하십시요.");
  394. return ;
  395. }
  396. //2018.10.26 수정
  397. if(sheet1.GetCellValue(GrowCount,"SUM_COST") == "0" || sheet1.GetCellValue(GrowCount,"SUM_COST") == "" || time){
  398. if((sheet1.GetCellValue(GrowCount,"SUM_COST") == "0" || sheet1.GetCellValue(GrowCount,"SUM_COST") == "") && time){
  399. alert("다음과 같은 사유로 견적을\n 제출하실수 없습니다.\n* 견적마감시간 초과\n* 견적금액 0원");
  400. }else if(time){
  401. alert("다음과 같은 사유로 견적을\n 제출하실수 없습니다.\n* 견적마감시간 초과");
  402. }else if(sheet1.GetCellValue(GrowCount,"SUM_COST") == "0" || sheet1.GetCellValue(GrowCount,"SUM_COST") == ""){
  403. alert("다음과 같은 사유로 견적을\n 제출하실수 없습니다.\n* 견적금액 0원");
  404. }
  405. return;
  406. }
  407. for(var i=1; i < GrowCount+1; i++)
  408. {
  409. var pMaterial_cd = ""; // 아이템코드
  410. var pQty = ""; // 수량
  411. var PMat_cost = ""; // 2018.10.26 재노경
  412. var PlAT_cost = ""; // 단가
  413. var PUnit_cost = ""; // 단가
  414. var pRow_sum_amt = ""; // 합계
  415. var pBasis_calcu = ""; // 산출근거
  416. var pNoti = ""; // 비고
  417. pMaterial_cd = sheet1.GetCellValue(i,"MATERIAL_CD");
  418. if(pMaterial_cd.length > 0){
  419. pQty = sheet1.GetCellValue(i,"QTY");
  420. if(isEmptyVal(pQty))
  421. pQty = isNull;
  422. PMat_cost = sheet1.GetCellValue(i,"MAT_COST"); //2018.10.26 재노경 추가
  423. if(isEmptyVal(PMat_cost)) PMat_cost = isNull;
  424. else PMat_cost = PMat_cost.toFixed(Number(cost_point));
  425. PLab_cost = sheet1.GetCellValue(i,"LAB_COST");
  426. if(isEmptyVal(PLab_cost)) PLab_cost = isNull;
  427. else PLab_cost = PLab_cost.toFixed(Number(cost_point));
  428. PUnit_cost = sheet1.GetCellValue(i,"UNIT_COST");
  429. if(isEmptyVal(PUnit_cost)) PUnit_cost = isNull;
  430. else PUnit_cost = PUnit_cost.toFixed(Number(cost_point));
  431. pRow_sum_amt = sheet1.GetCellValue(i,"ROW_SUM_AMT");
  432. if(isEmptyVal(pRow_sum_amt)) pRow_sum_amt = isNull;
  433. else pRow_sum_amt = pRow_sum_amt.toFixed(Number(cost_point));
  434. pNoti = sheet1.GetCellValue(i,"NOTI");
  435. if(isEmptyVal(pNoti))
  436. pNoti = isNull;
  437. pBasis_calcu = sheet1.GetCellValue(i,"BASIS_CALCU");
  438. if(isEmptyVal(pBasis_calcu))
  439. pBasis_calcu = isNull;
  440. sItemInfo = sItemInfo
  441. + sBidNo + sColumDelimiter
  442. + sBidDeg + sColumDelimiter
  443. + sMainVendcd + sColumDelimiter
  444. + pMaterial_cd + sColumDelimiter
  445. + pQty + sColumDelimiter
  446. + PMat_cost + sColumDelimiter
  447. + PLab_cost + sColumDelimiter
  448. + PUnit_cost + sColumDelimiter
  449. + pTotSum + sColumDelimiter
  450. + pBasis_calcu + sColumDelimiter
  451. + pNoti + sRowDelimiter
  452. }
  453. }
  454. sItemInfo = sItemInfo + sSumDelimiter + sheet1.GetCellValue(GrowCount,"SUM_COST").toFixed(Number(cost_point)) + sSumDelimiter + sfileGB;
  455. $("#sItemInfo").val(sItemInfo);
  456. var tot_amt = formatComma(sheet1.GetCellValue(GrowCount,"SUM_COST"),0);
  457. //tot_amt = tot_amt.replace(".00","");
  458. tot_amt = $("#TOT_AMT").val();
  459. if(confirm("견적총금액은 "+tot_amt+" (VAT별도)입니다.\n\n견적서를 제출하시겠습니까?")){
  460. SignData();
  461. }
  462. }
  463. function sheet1_OnSaveEnd(code, msg)
  464. {
  465. var event = $("#fevent").val();
  466. if(event == "FORM_SAVE"){
  467. if(code >= "0"){
  468. alert("견적서를 제출하였습니다.\n견적서 제출마감시간까지 여러번 제출이 가능합니다.\n마지막으로 제출한 견적내역이 최종견적으로 반영됩니다.");
  469. historyback();
  470. }else{
  471. alert(msg);
  472. }
  473. }
  474. }
  475. function historyback(){
  476. $("#fevent").val("FORM_SELECT");
  477. $("#form1").attr("action", "/portal/bid/QuotRequest.screen");
  478. $("#form1").attr("target", "_self");
  479. $("#form1").attr("method", "post");
  480. $("#form1").submit();
  481. }
  482. function isEmptyVal( value ) {
  483. if(value.length == 0){
  484. return true;
  485. }
  486. if( value == "" ) {
  487. return true;
  488. }
  489. return false;
  490. }
  491. function dpTime2(){
  492. var now = new Date();
  493. hours = now.getHours();
  494. minutes = now.getMinutes();
  495. seconds = now.getSeconds();
  496. /* if (hours > 12){
  497. hours -= 12;
  498. ampm = "오후 ";
  499. }else{
  500. ampm = "오전 ";
  501. }
  502. if (hours < 10)
  503. hours = "0" + hours;
  504. if (minutes < 10)
  505. minutes = "0" + minutes;
  506. if (seconds < 10)
  507. seconds = "0" + seconds; */
  508. // document.getElementById("dpTime").innerHTML = ampm + hours + ":" + minutes + ":" + seconds;
  509. // 2010 년 6월 1일 (월은 0 ~ 11 월까지로 현재월 -1 값)
  510. // 오후 6시 32분 35초 (시는 12 시간을 초과할 경우 12를 뺀 후 오후표시)
  511. var day2= new Date(<%=to_yyyy%>,<%=to_MM%>,<%=to_dd%>,<%=to_hh%>,<%=to_mi%>,00);
  512. // 2011 년 3월 1일 (월은 0 ~ 11 월까지로 현재월 -1 값)
  513. // 오전 10시 15분 43초
  514. var day1= new Date(<%=nowTime_yyyy%>,<%=nowTime_MM%>,<%=nowTime_dd%>,hours,minutes,seconds);
  515. // 첫번째 날짜를 1/1000 값으로 환산
  516. var ms1 = Date.parse(day1);
  517. // alert(ms1);
  518. // 두번째 날짜를 1/1000 값으로 환산
  519. var ms2 = Date.parse(day2);
  520. // alert(ms2);
  521. var sep = (ms2-ms1)/1000; // 두 날짜간의 시간차 (1/1000 초 이므로 초로 환산)
  522. // alert(sep);
  523. var min = 60;
  524. var hour= min * 60;
  525. var day = hour * 24;
  526. var sd = parseInt(sep/day);
  527. var sh = parseInt((sep%day)/hour);
  528. var sm = parseInt((sep%hour)/min);
  529. var ss = sep%min+1;
  530. var msg = "";
  531. if(sd > 0){
  532. msg = sd+'일 '+sh+'시간 '+sm+'분 '+ss+'초 남았습니다. / 입찰진행중';
  533. }else if(sd <= 0){
  534. if(sh <= 0){
  535. if(sm <= 0){
  536. msg = "입찰마감";
  537. }else{
  538. msg = sm+'분 '+ss+'초 남았습니다. / 입찰진행중';
  539. }
  540. }else{
  541. msg = sh+'시간 '+sm+'분 '+ss+'초 남았습니다. / 입찰진행중';
  542. }
  543. }else{
  544. msg = "입찰마감";
  545. }
  546. document.getElementById('dpTime').innerHTML = msg;
  547. }
  548. function stampDesc()
  549. {
  550. var win_id = "_stampPopup";
  551. var link = "/cont/purchase/stampDescPopup.screen";
  552. link += "?pop_win_id="+win_id;
  553. fLayerPop(win_id, link, 400,210, '', '', 'NO');
  554. }
  555. setInterval("dpTime2()",1000);
  556. </SCRIPT>
  557. <SCRIPT LANGUAGE="JavaScript">
  558. <!--
  559. function SignData()
  560. {
  561. var VendorCd = "<%=user.get("CORP_REG_NO")%>";
  562. var enc_cert = "<%=Order.get("KEY")%>";
  563. var sOrgnData = $("#sItemInfo").val();
  564. sOrgnData = encodeURI(sOrgnData);
  565. if( $("#sItemInfo").val() == null || $("#sItemInfo").val() == "" )
  566. {
  567. alert("서명할 데이타를 넣어주십시요");
  568. return;
  569. }
  570. if(enc_cert == "" || enc_cert == null) // 서버인증서를 못 받은 경우
  571. {
  572. alert("견적서 제출을 할수 없습니다.\n\n관리자에게 문의하세요");
  573. return;
  574. }
  575. unisign.EncryptDataWithCert( sOrgnData, enc_cert, function( resultObj ) {
  576. if( !resultObj || resultObj.resultCode != 0 ){
  577. alert( resultObj.resultMessage );
  578. return;
  579. }
  580. $("#signeddata").val(resultObj.encryptedData);
  581. unisign.SignDataNVerifyVID( resultObj.encryptedData, null, VendorCd, function( resultObject ) {
  582. if( !resultObject || resultObject.resultCode != 0 ){
  583. if( resultObject.resultCode == '14208'){
  584. alert("선택하신 인증서가 로그인한 사업자의 인증서가 아닙니다.\n[사업자번호 불일치]");
  585. } else if( resultObject.resultCode == '999'){
  586. alert("사용자 DN 선택이 취소 되었습니다.");
  587. } else {
  588. alert( resultObject.resultMessage);
  589. }
  590. return;
  591. }
  592. var signeddata = resultObject.signedData;
  593. var userdn = resultObject.certAttrs.subjectName;
  594. $("#ESTI_SIGNDATA").val(signeddata);
  595. $("#fevent").val("FORM_SAVE");
  596. var url = Modular.model.PageContext.CONTEXT_ROOT + "/portal/bid/OutEstmWrite_sheet.screen";
  597. var result = Modular.view.IBSheet7.doSave(sheet1, url, $("#form1"), false);
  598. //submitXmlRequest("/portal/bid/OutEstmWrite_form.screen", "FORM_SAVE", f);
  599. });
  600. });
  601. }
  602. //-->
  603. </SCRIPT>
  604. <modular:search id="form1">
  605. <modular:key id="fevent" />
  606. </modular:search>
  607. <form id="form1" name="form1" method="post" modular:type="search">
  608. <INPUT type='hidden' name="fevent" id="fevent" value="">
  609. <INPUT type='hidden' name="DEMANDED_ID" value="<%=Order.get("DEMANDED_ID")%>">
  610. <INPUT type='hidden' name="DEMANDED_KIND" value="<%=Order.get("DEMANDED_KIND")%>">
  611. <INPUT type='hidden' name="BID_NO" value="<%=Order.get("BID_NO")%>">
  612. <INPUT type='hidden' name="BID_DEG" value="<%=Order.get("BID_DEG")%>">
  613. <INPUT type='hidden' name="STATUS_CD" value="<%=Order.get("STATUS_CD")%>">
  614. <INPUT type='hidden' name="VENDOR_CD" value="<%=user.get("CORP_ID")%>">
  615. <INPUT type='hidden' name="FILE_GB" value="<%=Order.get("FILE_GB")%>">
  616. <INPUT type='hidden' name="ATT_ID" value="<%=Order.get("ATT_ID")%>">
  617. <INPUT type='hidden' name="TOT_AMT_CK" value="">
  618. <INPUT type='hidden' name="ESTI_SIGNDATA" value="">
  619. <INPUT type='hidden' name="sItemInfo" value="">
  620. <INPUT type='hidden' name="signeddata" value="">
  621. <INPUT type='hidden' name="signEnddt" value="">
  622. <table width="100%">
  623. <colgroup>
  624. <col width="*" />
  625. <col width="130" />
  626. </colgroup>
  627. <tr>
  628. <th>
  629. <div align="left" id="title" >
  630. <ul><li>견적서작성</li></ul>
  631. </div>
  632. </th>
  633. <td align="right">
  634. <span class="btnSearch center" id="btn_back"><a href="javascript:void(0);">이전</a></span>
  635. <span class="btnSearch center" id="btn_signdata"><a href="javascript:void(0);">견적서제출</a></span>
  636. </td>
  637. </tr>
  638. </table>
  639. <div class="application-info magT10">
  640. <div class="application-sub-title">
  641. <span class="title">입찰정보</span>
  642. </div>
  643. </div>
  644. <TABLE class="form-table">
  645. <colgroup>
  646. <col width="145"/>
  647. <col width="145"/>
  648. <col width="29%"/>
  649. <col width="145"/>
  650. <col/>
  651. </colgroup>
  652. <TR height="25">
  653. <TH style="text-align:left"> 입찰번호-차수</TH>
  654. <TD colspan="2">
  655. <%=Order.get("bid_no") %> - <%=Order.get("bid_deg") %>
  656. </TD>
  657. <TH style="text-align:left"> 온라인입찰여부</TH>
  658. <TD>
  659. <%=Order.get("ONBID_YN")%>
  660. </TD>
  661. </TR>
  662. <TR height="25">
  663. <TH style="text-align:left"> 입찰명</TH>
  664. <TD colspan="4">
  665. <%=Order.get("BID_MASTER_NM")%>
  666. </TD>
  667. </TR>
  668. <TR height="25">
  669. <TH style="text-align:left"> 견적제출기간</TH>
  670. <TD colspan="4">
  671. <%=Order.get("BID_FROM_DT")%> ~<%=Order.get("BID_TO_DT")%> <font color='red'><b> (<span id="dpTime"></span>)</b></font>
  672. </TD>
  673. </TR>
  674. <TR height="25">
  675. <TH style="text-align:left">통화구분</TH>
  676. <TD colspan="4"> <%=Order.get("CURRENCY_GB_NM") %>
  677. </TD>
  678. </TR>
  679. <TR height="25">
  680. <TH style="text-align:left">계약형태</TH>
  681. <TD colspan="4">
  682. <%=Order.get("OBC_CONT_TYPE_NM") %>
  683. </TD>
  684. </TR>
  685. <TR height="50">
  686. <TH rowspan="2" style="text-align:left">공사대금</TH>
  687. <TH style="text-align:left">선급금</TH>
  688. <TD><% if(!Order.get("OBC_FRST_CONT_RATE").isEmpty()){%> 계약금액의 : <%= Order.get("OBC_FRST_CONT_RATE") %>%<br><%}%>
  689. <%= Order.get("OBC_FRST_CONDI") %> <br>
  690. <%= Order.get("OBC_FRST_CNT_CONDI") %></TD>
  691. <TH style="text-align:left">기성금</TH>
  692. <TD><% if(!Order.get("CPC_MID_RATE").isEmpty()){%> 계약금액의 :<%= Order.get("CPC_MID_RATE")%>% ,<%}%><% if(!Order.get("OBC_MID_CASH_RATE").isEmpty()){%> 현금 : <%= Order.get("OBC_MID_CASH_RATE")%>% <%}%> <% if(!Order.get("OBC_MID_BILL_RATE").isEmpty()){%>어음 : <%= Order.get("OBC_MID_BILL_RATE")%>%<%}%><br>
  693. <% if(!Order.get("OBC_MID_PAYDAY").isEmpty()){%>세금계산서 발행일로부터 <%=Order.get("OBC_MID_PAYDAY")%> 일 내 지급<br>
  694. <%=Order.get("OBC_MID_REQ_MONTH")%> 개월 당 <%=Order.get("OBC_MID_CNT")%> 회 말일에 청구<%}%>
  695. </TD>
  696. </TR>
  697. <TR height="25">
  698. <TH style="text-align:left">준공금</TH>
  699. <TD colspan="3" style="text-align:left"><% if(!Order.get("PBC_REST_RATE").isEmpty()){%> 계약금액의 : <%=Order.get("PBC_REST_RATE")%>%, <%}%><% if(!Order.get("OBC_FIN_CASH_RATE").isEmpty()){%> 현금 : <%=Order.get("OBC_FIN_CASH_RATE")%>% <%}%><% if(!Order.get("OBC_FIN_BILL_RATE").isEmpty()){%> 어음 : <%=Order.get("OBC_FIN_BILL_RATE")%>%<%}%>
  700. <%-- <br><% if(!Order.get("OBC_FIN_PAYDAY").isEmpty()){%>세금계산서 발행일로부터 <%=Order.get("OBC_FIN_PAYDAY")%> 일 내 지급<%}%><br>
  701. <%=Order.get("OBC_FIN_CONDI") %></TD> --%>
  702. </TR>
  703. <TR height="25">
  704. <TH rowspan="2" style="text-align:left">보증조건</TH>
  705. <TH style="text-align:left">선급금보증</TH>
  706. <TD><% if(!Order.get("CBC_FIRST_RATE").isEmpty()){%>계약금액의 <%=Order.get("CBC_FIRST_RATE")%>%<%}%></TD>
  707. <TH style="text-align:left">계약이행 보증</TH>
  708. <TD><% if(!Order.get("CONTFUL_RATE").isEmpty()){%>계약금액의 <%= Order.get("CONTFUL_RATE") %>%<%}%></TD>
  709. </TR>
  710. <TR height="25">
  711. <TH style="text-align:left">하자이행 보증</TH>
  712. <TD><% if(!Order.get("WARR_RATE").isEmpty()){%>준공금액의 <%= Order.get("WARR_RATE")%>%<%}%></TD>
  713. <TH style="text-align:left">하자담보기간</TH>
  714. <TD><% if(!Order.get("CBC_DEFECT_DAY").isEmpty()){%>준공일로부터 <%= Order.get("CBC_DEFECT_DAY")%> 개월<%}%></TD>
  715. </TR>
  716. <TR height="35">
  717. <TH style="text-align:left">기타조건</TH>
  718. <TH style="text-align:left">하도급대금<br>연동 기준비율</TH>
  719. <TD><% if(!Order.get("PAY_CON_RATE").isEmpty()){%> <%= Order.get("PAY_CON_RATE")%>%<%}%></TD>
  720. <TH style="text-align:left">지체상금</TH>
  721. <TD><% if(!Order.get("CBC_DAMAGE_RATE").isEmpty()){%>일당 계약금액의 <%= Order.get("CBC_DAMAGE_RATE")%>%,<%}%><% if(!Order.get("CBC_DAMAGE_MAXRATE").isEmpty()){%> 최대 <%= Order.get("CBC_DAMAGE_MAXRATE")%>%<%}%></TD>
  722. </TR>
  723. <TR height="25">
  724. <TH rowspan="6" style="text-align:left">간접비 견적조건</TH>
  725. <TH style="text-align:left">고용보험료</TH>
  726. <TD><% if(!Order.get("OBC_EMP_RATE").isEmpty()){%>노무비 * <%= Order.get("OBC_EMP_RATE")%> % &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp
  727. <%}%><%=Order.get("OBC_EMP_YN").equals("Y") ? "<font color='blue'>[견적포함]</font>" : "<font color='red'>[견적미포함]</font>" %></TD>
  728. <TH style="text-align:left">연금보험료</TH>
  729. <TD><% if(!Order.get("OBC_PENSION_RATE").isEmpty()){%>직접노무비 <%=Order.get("OBC_PENSION_RATE")%> % &nbsp &nbsp &nbsp&nbsp &nbsp &nbsp
  730. <%}%><%=Order.get("OBC_PENSION_YN").equals("Y") ? "<font color='blue'>[견적포함]</font>" : "<font color='red'>[견적미포함]</font>" %></TD>
  731. </TR>
  732. <TR height="25">
  733. <TH style="text-align:left">건강보험료</TH>
  734. <TD><% if(!Order.get("OBC_HEALTH_RATE").isEmpty()){%>직접노무비 * <%=Order.get("OBC_HEALTH_RATE")%> % &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp
  735. <%}%><%=Order.get("OBC_HEALTH_YN").equals("Y") ? "<font color='blue'>[견적포함]</font>" : "<font color='red'>[견적미포함]</font>" %></TD>
  736. <TH style="text-align:left">노인장기보험료</TH>
  737. <TD><% if(!Order.get("OBC_ELDER_RATE").isEmpty()){%>건강보험료 * <%=Order.get("OBC_ELDER_RATE")%> % &nbsp &nbsp&nbsp &nbsp &nbsp
  738. <%}%><%=Order.get("OBC_ELDER_YN").equals("Y") ? "<font color='blue'>[견적포함]</font>" : "<font color='red'>[견적미포함]</font>" %></TD>
  739. </TR>
  740. <TR height="25">
  741. <TH style="text-align:left">산재보험료</TH>
  742. <TD><% if(!Order.get("OBC_WORK_RATE").isEmpty()){%>노무비 * <%=Order.get("OBC_WORK_RATE")%> % &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp
  743. <%}%><%=Order.get("OBC_WORK_YN").equals("Y") ? "<font color='blue'>[견적포함]</font>" : "<font color='red'>[견적미포함]</font>" %></TD>
  744. <TH style="text-align:left">퇴직공제부금</TH>
  745. <TD><% if(!Order.get("OBC_RESIGN_RATE").isEmpty()){%>노무비 * <%=Order.get("OBC_RESIGN_RATE")%> % &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp&nbsp &nbsp
  746. <%}%><%=Order.get("OBC_RESIGN_YN").equals("Y") ? "<font color='blue'>[견적포함]</font>" : "<font color='red'>[견적미포함]</font>" %></TD>
  747. </TR>
  748. <TR height="25">
  749. <TH style="text-align:left">안전관리비</TH>
  750. <TD><% if(!Order.get("OBC_SAFE_RATE").isEmpty()){%>노무비 * <%= Order.get("OBC_SAFE_RATE")%> % &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp
  751. <%}%><%=Order.get("OBC_SAFE_YN").equals("Y") ? "<font color='blue'>[견적포함]</font>" : "<font color='red'>[견적미포함]</font>" %></TD>
  752. <TH style="text-align:left">환경관리비</TH>
  753. <TD><% if(!Order.get("OBC_ENV_RATE").isEmpty()){%>재료비 * <%= Order.get("OBC_ENV_RATE")%> % &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp&nbsp &nbsp
  754. <%}%><%=Order.get("OBC_ENV_YN").equals("Y") ? "<font color='blue'>[견적포함]</font>" : "<font color='red'>[견적미포함]</font>" %></TD>
  755. </TR>
  756. <TR height="25">
  757. <TH style="text-align:left">현장관리비</TH>
  758. <TD><% if(!Order.get("OBC_SITE_RATE").isEmpty()){%>직접비 * <%=Order.get("OBC_SITE_RATE")%> % &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp
  759. <%}%><%=Order.get("OBC_SITE_YN").equals("Y") ? "<font color='blue'>[견적포함]</font>" : "<font color='red'>[견적미포함]</font>" %></TD>
  760. <TH style="text-align:left">매입부가세</TH>
  761. <TD><% if(!Order.get("OBC_DUTY_RATE").isEmpty()){%>재료비 * 매입세율 <%= Order.get("OBC_DUTY_RATE")%> % &nbsp
  762. <%}%><%=Order.get("OBC_DUTY_YN").equals("Y") ? "<font color='blue'>[견적포함]</font>" : "<font color='red'>[견적미포함]</font>" %></TD>
  763. </TR>
  764. <TR height="25">
  765. <TH style="text-align:left">간접비 정산조건</TH>
  766. <TD><%=Order.get("OBC_IND_YN").equals("Y") ? "<font color='blue'>[실적정산]</font>" : "<font color='red'>[비례정산]</font>" %></TD>
  767. <TH style="text-align:left">건설기계 수수료</TH>
  768. <TD><%=Order.get("OBC_WARR_YN").equals("Y") ? "<font color='blue'>[견적포함]</font>" : "<font color='red'>[견적미포함]</font>" %></TD>
  769. </TR>
  770. </table>
  771. <TABLE width="100%">
  772. <colgroup>
  773. <col width="40%">
  774. <col width="60%"/>
  775. </colgroup>
  776. <tr height="100px"><td style="vertical-align: top;">
  777. <div class="application-info">
  778. <div class="application-sub-title">
  779. <span class="title">견적정보</span>
  780. </div>
  781. </div>
  782. <TABLE class="form-table">
  783. <colgroup>
  784. <col width="145">
  785. <col/>
  786. </colgroup>
  787. <TR height="25">
  788. <TH style="text-align:left">사업자번호</TH>
  789. <TD><%=StringUtils.getBizNo(user.get("CORP_REG_NO")) %></TD>
  790. </TR>
  791. <TR height="25">
  792. <TH style="text-align:left"> 업체명</TH>
  793. <TD><%=user.get("CORP_KOR")%></TD>
  794. </TR>
  795. <TR height="25">
  796. <TH style="text-align:left"> 견적합계금액</TH>
  797. <TD><%= InputText.get("TOT_AMT", "", 50, 300, "class=input_blank,desc=견적합계금액,readOnly=white") %></TD>
  798. </TR>
  799. </table>
  800. </TD>
  801. <TD rowspan="2" style="padding-left:5px;vertical-align: top;">
  802. <table id="sheettable" style="width:100%;height:25px;">
  803. <colgroup>
  804. <col width="*" />
  805. <col width="130" />
  806. </colgroup>
  807. <tr heigth="25">
  808. <th>
  809. <div class="application-info">
  810. <div class="application-sub-title">
  811. <span class="title">견적내역(부가세별도) </span>
  812. <span class="btnSearch center" id="btnhelp" ><a href="javascript:stampDesc()">인지세 안내</a></span>
  813. </div>
  814. </div>
  815. </th>
  816. <td align="right">
  817. <!-- <span class="btnSearch center" id="btnExcel"><a href="javascript:void(0);">Excel Down</a></span> 2016.11.28-->
  818. </td>
  819. </tr>
  820. </table>
  821. <div id="sheet1_div" style="height: auto; min-height: 200px;width:100%; overflow: auto;height:100%">
  822. <script>createIBSheet('sheet1','100%', '560px');</script>
  823. </div>
  824. </TD>
  825. </TR>
  826. <TR style="height:500px"><TD align="top" width="*" style="vertical-align: top">
  827. <div class="application-info">
  828. <div class="application-sub-title">
  829. <span class="title">첨부파일</span>
  830. </div>
  831. </div>
  832. <TABLE class="form-table">
  833. <colgroup>
  834. <col width="145">
  835. <col/>
  836. </colgroup>
  837. <TR height="100">
  838. <TH style="text-align:left"> 첨부파일</TD>
  839. <TD>
  840. <TEXTAREA name="p_AttachFile" id="p_AttachFile" style="width:85%;height:80px" rows="1" class="input" readOnly><%=file.get(Order.get("FILE_GB")) %></TEXTAREA>
  841. <IMG id='search_spot_button' onClick="doAttachFile(document.form1.DEMANDED_ID);" src='/img/buyer/button/bt_change.gif' border='0' align="top" align='absmiddle' alt='[Attach File]' style='cursor:pointer;'>
  842. </TD>
  843. </TR>
  844. </TABLE>
  845. <br>
  846. 1. 첨부파일에는 견적서를 첨부하시기 바랍니다. (Excel, PDF 등)<br>
  847. <br>
  848. 2. 견적내역에는 항목별 견적 금액을 입력하시고 입력가능한 항목이 없는 경우에는<br>
  849. &nbsp;&nbsp;일반관리비 또는 이윤에 입력하신 후 비고란에 내용을 기입하시기 바랍니다.<br>
  850. &nbsp;&nbsp;(총공사비 계는 견적서상 총 견적금액과 동일해야 합니다)<br>
  851. <br>
  852. 3. 설계/인허가 용역은 견적금액을 직접노무비로 일괄 입력하시기 바랍니다.<br>
  853. </TD>
  854. </TR>
  855. </TABLE>
  856. </form>
  857. <div id="CONTROL_LAYER" style="position:absolute; z-index:10; visibility:hidden;">
  858. <script>
  859. </script>
  860. </div>
  861. <!-- 전자인증 모듈 설정 //-->
  862. <link rel="stylesheet" type="text/css" href="/CrossCert/CC_WSTD_home/unisignweb/rsrc/css/certcommon.css?v=1" />
  863. <script type="text/javascript" src="/CrossCert/CC_WSTD_home/unisignweb/js/unisignwebclient.js?v=1"></script>
  864. <script type="text/javascript" src="/CrossCert/UniSignWeb_Multi_Init_Nim.js?v=1"></script>
  865. <!-- 전자인증 모듈 설정 //-->