| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 | 
							- $(function() {
 
-     'use strict';
 
-     window.utils = window.utils || {};
 
-     $.extend(window.utils, {
 
-         datagrid: {
 
-             // dxNumberBox와 span으로 연결해 뒀다가, 
 
-             // cellClick 이벤트 클릭이 발생하면 dxNumberBox를 보여준다.
 
-             // 그러므로 cellClick 이벤트에서 cellClickEventForDataGridTemplate 함수를 반드시 호출해야 한다.
 
-             // purchase-request-popup.js 참조
 
-             getNumberBoxDataGridTemplateFunc: function(options) {
 
-                 options = options || {};
 
-                 var min = options.min || 0,
 
-                     max = options.max,
 
-                     step = options.step || 1,
 
-                     showSpinButtons = options.showSpinButtons || true,
 
-                     alignment = options.alignment || 'left',
 
-                     convertValueWhenValueChanged = options.convertValueWhenValueChanged || _.identity;
 
-                 return function(cellElement, cellInfo) {
 
-                     var data = cellInfo.data;
 
-                     var dataField = cellInfo.column.dataField,
 
-                         $dxNumberBox,
 
-                         $span;
 
-                     $dxNumberBox = $('<div>').dxNumberBox({
 
-                         min: min,
 
-                         max: max,
 
-                         step: step,
 
-                         showSpinButtons: showSpinButtons,
 
-                         visible: false,
 
-                         alignment: alignment,
 
-                         value: cellInfo.value,
 
-                         focusOutAction: function(e) {
 
-                             e.component.option('visible', false);
 
-                             cellElement.css('padding', '');
 
-                             $span.css('display', '');
 
-                             $span.text($NumberFormat(data[dataField]()));
 
-                         },
 
-                         valueChangeAction: function (e) {                           
 
-                             if (data.MaxMaterialCount !== undefined)
 
-                             {
 
-                                 if (e.value > (typeof (data.MaxMaterialCount) == "function" ? data.MaxMaterialCount() : data.MaxMaterialCount)) {
 
-                                     e.value = (typeof (data.MaxMaterialCount) == "function" ? data.MaxMaterialCount() : data.MaxMaterialCount);
 
-                                     utils.toast.show('입력 가능 수량이 초과되었습니다.', 'warning');
 
-                                 }
 
-                             }
 
-                             // 예산편성 화면 관련 자동 계산  수식
 
-                             if (dataField === 'YearlyBudget') {
 
-                                 data[dataField](e.value);
 
-                                 data[dataField](convertValueWhenValueChanged(data,  e.value));
 
-                             } else if (dataField === 'MonthlyBudget'){
 
-                                 data[dataField](e.value);
 
-                                 data[dataField](convertValueWhenValueChanged(data, e.value));
 
-                             }
 
-                             else if (dataField === 'MonthlyExecution') {
 
-                                 data[dataField](e.value);
 
-                                 data[dataField](convertValueWhenValueChanged(data, e.value));
 
-                             }
 
-                             else if (dataField === 'YearlyExecution') {
 
-                                 data[dataField](e.value);
 
-                                 data[dataField](convertValueWhenValueChanged(data, e.value));
 
-                             }
 
-                             else {
 
-                                 data[dataField](convertValueWhenValueChanged(e.value));
 
-                             }
 
-                             //data[dataField](convertValueWhenValueChanged(e.value));
 
-                         }
 
-                     });
 
-                     $dxNumberBox.appendTo(cellElement);
 
-                     $span = $('<span>')
 
-                         .text($NumberFormat(cellInfo.value))
 
-                         .appendTo(cellElement);
 
-                     data[dataField + 'NumberBox'] = $dxNumberBox.dxNumberBox('instance');
 
-                     data['$span' + dataField] = $span;
 
-                 };
 
-             },
 
-             cellClickEventForDataGridTemplate: function(e, dataField) {
 
-                 if (e.column.dataField === dataField) {
 
-                     var numberBoxName = [dataField, 'NumberBox'].join('');
 
-                     if (e.data[numberBoxName] !== undefined) {
 
-                         e.data[numberBoxName].option('visible', true);
 
-                         e.data[numberBoxName].focus();
 
-                         e.data['$span' + dataField].css('display', 'none');
 
-                         e.cellElement.css('padding', '0px');
 
-                     }
 
-                     return true;
 
-                 }
 
-                 return false;
 
-             },
 
-             getItems: function(datagrid) {
 
-                 return datagrid._controllers.data._dataSource._items;
 
-             },
 
-             dataSource: function(dataSource) {
 
-                 var dataSourceOptions = {
 
-                     store: dataSource._store,
 
-                     map: dataSource._mapFunc
 
-                 };
 
-                 var options = dataSource._storeLoadOptions;
 
-                 $.each(options, function(name, value) {
 
-                     var that = value;
 
-                     if (that === undefined) return true;
 
-                     dataSourceOptions[name] = value;
 
-                 });
 
-                 return dataSourceOptions;
 
-             },
 
-             getSelectedRowsData: function(id) {
 
-                 var dataGrid = $('#' + id).dxDataGrid('instance');
 
-                 return dataGrid.getSelectedRowsData();
 
-             },
 
-             getSelectedRowsDataWithFormatObject: function(id, objectFormat) {
 
-                 var dataGrid = $('#' + id).dxDataGrid('instance');
 
-                 var items = dataGrid.getSelectedRowsData();
 
-                 var array = [];
 
-                 $.each(items, function(i, item) {
 
-                     var obj = {};
 
-                     $.each(objectFormat, function(name, value) {
 
-                         obj[name] = value || $KoValue(item[name]);
 
-                     });
 
-                     array.push(obj);
 
-                 });
 
-                 return array;
 
-             },
 
-             columnIsUse: function(width) {
 
-                 return {
 
-                     dataField: 'IsUse',
 
-                     caption: $G("isUse"),
 
-                     alignment: 'center',
 
-                     width: width || '20%',
 
-                     customizeText: function(cellInfo) {
 
-                         return $G.isUse(cellInfo.value);
 
-                     }
 
-                 }
 
-             },
 
-             navigateView: function(data, view, tableNameOrIdsArray) {
 
-                 if (typeof tableNameOrIdsArray === 'string') {
 
-                     tableNameOrIdsArray = BemsWebApplication.db[tableNameOrIdsArray].key();
 
-                 }
 
-                 //            var data = selectedItems.selectedRowsData[0];
 
-                 var getter = DevExpress.data.utils.compileGetter(tableNameOrIdsArray);
 
-                 var idsObject = getter(data);
 
-                 //var ids = DevExpress.framework.Route.prototype.formatSegment(values);
 
-                 BemsWebApplication.app.navigate({ view: view, id: idsObject }, { target: "back" });
 
-                 //BemsWebApplication.app.navigate( [ view , '/' , keys ].join('') , { target: "back" });
 
-             },
 
-             customizeTextForDateTimeFunc: function(cellInfo) {
 
-                 return $G.dateTime(cellInfo.value);
 
-             },
 
-             setSelectedId: function(data, view, tableNameOrIdsArray, options) {
 
-                 if (options.selectedId === undefined) return;
 
-                 if (typeof tableNameOrIdsArray === 'string') {
 
-                     tableNameOrIdsArray = BemsWebApplication.db[tableNameOrIdsArray].key();
 
-                 }
 
-                 //            var data = selectedItems.selectedRowsData[0];
 
-                 var getter = DevExpress.data.utils.compileGetter(tableNameOrIdsArray);
 
-                 var idsObject = getter(data);
 
-                 if (_.isArray(tableNameOrIdsArray)) {
 
-                     $.each(idsObject, function(name, value) {
 
-                         options.selectedId[name] = value;
 
-                     });
 
-                 }
 
-                 else {
 
-                     options.selectedId[tableNameOrIdsArray] = idsObject;
 
-                 }
 
-             },
 
-             popupView: function(data, view, tableNameOrIdsArray, options) {
 
-                 options.popupVisible(true);
 
-             },
 
-             defaultOptions: function(options) {
 
-                 options = $.extend(options, {
 
-                     hoverStateEnabled: true
 
-                 });
 
-                 if (_.has(options, 'pager') === false) {
 
-                     options.paging = {
 
-                         pageSize: 20
 
-                     };
 
-                     options.pager = {
 
-                         visible: true,
 
-                         showPageSizeSelector: false,
 
-                         allowedPageSizes: [15, 20]
 
-                     };
 
-                 }
 
-                 if (_.has(options, 'selection') === false) {
 
-                     options.selection = {
 
-                         mode: 'single'
 
-                     };
 
-                 }
 
-                 if (typeof options.dxDataSource === "object") {
 
-                     options.dataSource = utils.datagrid.dataSource(options.dxDataSource);
 
-                     //delete options.dxDataSource;
 
-                 }
 
-                 if (typeof options.searchPanelPlaceHolder === 'string') {
 
-                     options.searchPanel = {
 
-                         visible: true,
 
-                         width: 250,
 
-                         placeholder: options.searchPanelPlaceHolder
 
-                     };
 
-                     //delete options.searchPanelPlaceHolder;
 
-                 }
 
-                 var numberCellPrepared = null;
 
-                 if (options.useNumberColumn === true) {
 
-                     if (typeof options.datagridId !== 'string') {
 
-                         throw Error("need the Id of datagrid");
 
-                     }
 
-                     var datagrid = null;
 
-                     // useNumberColumn 옵션이 true이면, 무조건 순서 번호로 보여준다. 
 
-                     // multple로 설정되어 있으면 체크박스 컬럼이 생기기 때문에 numberIndex를 1로 설정한다.
 
-                     // 컬럼 선택에 의한 소팅이 되려면 실제 테이블의 필드 ID로 dataField를 설정하는 것이 좋다.
 
-                     numberCellPrepared = function(cellElement, cellInfo) {
 
-                         var numberIndex = 0;
 
-                         if (options.selection && options.selection.mode === 'multiple') {
 
-                             numberIndex = 1;
 
-                         }
 
-                         //if (cellInfo.columnIndex === numberIndex) { // 2015 07 18 hcLee V14.1-V15.1
 
-                         if (cellInfo.columnIndex === numberIndex && cellInfo.rowType == 'data') { // // 2015 07 18 hcLee V14.1-V15.1
 
-                             var isAsc = cellInfo.column.sortOrder === 'asc';
 
-                             if (datagrid === null) {
 
-                                 datagrid = $('#' + options.datagridId).dxDataGrid('instance');
 
-                             }
 
-                             var number;
 
-                             if (cellInfo.column.sortOrder === 'asc') {
 
-                                 number = cellInfo.row.dataIndex + 1 + (datagrid.pageIndex() * datagrid.pageSize());
 
-                             }
 
-                             else {
 
-                                 // 2015 07 18 V15.1에서는 cellInfo.rowType == 'data'인 경우에만 row.dataIndex가 의미를 가짐 
 
-                                 number = datagrid.totalCount() - (datagrid.pageIndex() * datagrid.pageSize()) - cellInfo.row.dataIndex;
 
-                             }
 
-                             //cellInfo.value = cellInfo.displayValue = cellInfo.rowIndex + 1;
 
-                             //cellInfo.text = number;
 
-                             $(cellElement).text(number);
 
-                         }
 
-                     };
 
-                 }
 
-                 if (typeof options.cellPrepared === 'function') {
 
-                     var cellPrepared = options.cellPrepared;
 
-                     options.cellPrepared = function(cellElement, cellInfo) {
 
-                         if (numberCellPrepared != null) numberCellPrepared(cellElement, cellInfo);
 
-                         cellPrepared(cellElement, cellInfo);
 
-                     };
 
-                 }
 
-                 else if (numberCellPrepared != null) {
 
-                     options.cellPrepared = numberCellPrepared;
 
-                 }
 
-                 if (typeof options.datagridId === "string") {
 
-                     var self = this;
 
-                     options.rowClick = function(clickRow) {
 
-                         if (_.isFunction(options.selectedData)) {
 
-                             
 
-                             options.selectedData(clickRow.data);
 
-                         }
 
-                         self.setSelectedId(clickRow.data, options.viewId, options.dbId, options);
 
-                         var dataGridInstance = $(['#', options.datagridId].join('')).dxDataGrid('instance');
 
-                         if (typeof options.handleDataGridRowClick == 'function') {
 
-                             // handleShowPopup으로 팝업을 띄우도록 수정했는데, 
 
-                             // showPopup 라는 대행함수를 연결함
 
-                             var showPopup = function(show) {
 
-                                 if (show) {
 
-                                     options.handleShowPopup(clickRow.data);
 
-                                 }
 
-                                 else {
 
-                                     options.popupVisible(false);
 
-                                 }
 
-                             }
 
-                             options.handleDataGridRowClick(options.datagridId, dataGridInstance, clickRow, showPopup);
 
-                         }
 
-                         else {
 
-                             //hcLee 2016 02 19 추가
 
-                             if (_.isFunction(options.handleShowPopup)) {
 
-                                 //var dataGrid = $('#gridContainer').dxDataGrid('instance');
 
-                                 dataGridInstance.clearSelection();
 
-                                 options.handleShowPopup(clickRow.data);
 
-                             }
 
-                             //options.selectedSourceItem.fromJS(clickRow.data);
 
-                             //utils.datagrid.popupView(clickRow.data, options.viewId, options.dbId, options);
 
-                             //utils.datagrid.navigateView(clickRow.data, options.viewId, options.dbId);                                
 
-                         }
 
-                     };
 
-                 }
 
-                 return options;
 
-             }
 
-         }
 
-     });
 
- });
 
 
  |