123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 |
-
- $(function () {
- 'use strict';
- BemsWebApplication.Popup.WorkResultCheckItemMaterial = {
- create: function (viewInfo, viewModel) {
- var ex = 0;
- var eq = BWA.DataUtil.constructEqualFilter;
- var and = BWA.DataUtil.andFilter;
- var deletestate = false;
- var overlayVisible = ko.observable(false),
- position = ko.observable(),
- timer = null;
- var materialGridView2 = ko.observable();
- var materials2 = ko.observableArray();
- var materialFactory2 = BWA.Factory.Material;
- var materialColumns2 = materialFactory2.getColumns([
- { dataField: 'MaterialCode', width: '30%' },
- { dataField: 'Name', width: '40%' },
- { dataField: 'Standard', width: '40%' }
- ]);
- var materials2DataSource = BemsWebApplication.db.createDataSource('FmsWorkResultCheckItemMaterial', true, true, true);
- var fmsmaterialsDataSource = BemsWebApplication.db.createDataSource('FmsMaterial', true, true, true);
- //var modifiableMaterialDataGridOptions2 = null;
- overlayVisible.subscribe(function (value) {
- if (value) {
- if (timer !== null) {
- clearInterval(timer);
- }
- var top, left;
- //var element = $('#popupWorkContentsDetail').offsetParent();
- var element = $('#currentWorkpopupDetail').offsetParent();
- position({ my: 'left top', at: 'right top', of: element });
- timer = setInterval(function () {
- var offset = element.offset();
- if (top !== offset.top || left !== offset.left) {
- top = offset.top;
- left = offset.left;
- position({ my: 'left top', at: 'right top', of: element });
- }
- }, 100);
- }
- else {
- if (timer !== null) {
- clearInterval(timer);
- timer = null;
- }
- }
- });
- position.subscribe(function (value) {
- });
- viewModel.popupVisible.subscribe(function (value) {
- if (value === false) {
- overlayVisible(false);
- materials2([]);
- }
- //workProgressDataSource.load().done(function (result) {
- // progresses(result);
- //});
- });
- viewModel.workResultContentsViewOptions = {
- width: '530px',
- height: '682px',
- dragEnabled: false,
- position: position,
- visible: overlayVisible,
- showingAction: function () {
- $("#gridContainer2").dxDataGrid({
- paging: {
- pageSize: 14,
- enabled: true
- }
- });
- },
- closeOnOutsideClick: false,
- shading: false,
- animation: {
- show: { type: "slide", duration: 150, from: { left: '-=10', opacity: 0 }, to: { opacity: 1 } },
- hide: { type: "slide", duration: 150, from: { left: '-=10', opacity: 1 }, to: { opacity: 0 } }
- }
- };
- //var popup = e.component;
- viewModel.toolbarItemsInWorkResult = [
- { location: 'before', text: '자재사용내역' },
- //{
- // location: 'after', widget: 'button', options: {
- // text: $G('materialInsertion'), icon: 'search', visible: viewModel.isApprovalMode(), // !viewModel.isWorkHistory(),
- // clickAction: function () {
- // viewModel.isAddPopup(false);
- // viewModel.materialSearchPopup.show();
- // }
- // }
- //},
- //{
- // location: 'after', widget: 'button', options: {
- // text: $G('materialDeletion'), icon: 'remove', type: 'danger', visible: viewModel.isApprovalMode(),//!viewModel.isWorkHistory(),
- // clickAction: function () { handleDeleteSelectedMaterials(); }
- // }
- //},
- //{
- // location: 'after', widget: 'button', options: {
- // text: $G('save'), icon: 'save', visible: viewModel.isApprovalMode(),
- // clickAction: function () {
- // saveApprovalMaterials();
- // }
- // }
- //}
- ];
- viewModel.modifiableMaterialDataGridOptions2 = utils.datagrid.defaultOptions({
- width: 500,
- pager: {
- showPageSizeSelector: false,
- allowedPageSizes: []
- },
- // visible: viewModel.isEditModeInPopup,
- dataSource: materials2,
- selection: { mode: 'none', allowSelectAll: true },
- columns: materialColumns2.concat([{
- dataField: 'MaterialCount', width: '20%', type: 'number',
- caption: $G('materialCount'), alignment: 'center',
- //19.08.21 자재사용내역 수량 변경 금지
- //cellTemplate: utils.datagrid.getNumberBoxDataGridTemplateFunc({
- // min: 1,
- // max: 1000000,
- // dataField: 'MaterialCount',
- // convertValueWhenValueChanged: function (value) {
- // return Math.max(1, value);
- // }
- //})
- }]),
- cellClick: function (e) {
- utils.datagrid.cellClickEventForDataGridTemplate(e, 'MaterialCount');
- },
- contentReadyAction: function (e) {
- materialGridView2(e.component);
- },
- });
- function handleDeleteSelectedMaterials() {
- var rows = materialGridView2().getSelectedRowsData();
- if (_.isEmpty(rows)) {
- utils.toast.show('선택된 자재가 없습니다.', 'error');
- return;
- }
- _.each(rows, function (row) {
- var array = materials2();
- var length = array.length;
- var id = row.MaterialId();
- for (var i = 0 ; i < length ; i++) {
- if (id === array[i].MaterialId()) {
- materials2().splice(i, 1);
- break;
- }
- }
- });
- materialGridView2().refresh();
- }
- function saveApprovalMaterials() {
- var workCheckItem = new BemsWebApplication.FmsWorkResultCheckItemViewModel();
- workCheckItem.SiteId(viewModel.dataModel.SiteId());
- workCheckItem.WorkRequestId(viewModel.dataModel.WorkRequestId());
- // Warning: 다른 로직이 필요할 수 있음
- if (viewModel.dataModel.selectedItemCheckItemId() == 0) {
- var itemId = viewModel.workResultCheckItems()[viewModel.workResultCheckItems().length - 1].CheckItemId();
- workCheckItem.CheckItemId(itemId);
- }
- else {
- workCheckItem.CheckItemId(viewModel.dataModel.selectedItemCheckItemId());
- }
- workCheckItem.TextResult(viewModel.dataModel.selectedItemTextResult())
- var array = materials2();
- if (array.length != 0) {
- var postData;
- var parameters2 = {
- SiteId: workCheckItem.SiteId(),
- BusinessFieldId: viewModel.dataModel.BusinessFieldId(),
- WorkRequestId: workCheckItem.WorkRequestId(),
- CheckItemId: workCheckItem.CheckItemId()
- };
- postData = _.map(array, function (m) {
- return {
- SiteId: workCheckItem.SiteId(),
- WorkRequestId: workCheckItem.WorkRequestId(),
- MaterialId: m.MaterialId(),
- MaterialCount: m.MaterialCount(),
- CheckItemId: workCheckItem.CheckItemId(),
- MaterialCode: m.MaterialCode(),
- Name: m.Name()
- };
- });
- BWA.api.post('FmsWorkResultCheckItemMaterial/Approval', postData, parameters2).done(function () {
- refreshMaterialGrid();
- utils.toast.show($G('successDatabaseInsertionMsg'));
- });
- }
- else {
- var postData;
- var parameters2 = {
- SiteId: workCheckItem.SiteId(),
- BusinessFieldId: viewModel.dataModel.BusinessFieldId(),
- WorkRequestId: workCheckItem.WorkRequestId(),
- CheckItemId: workCheckItem.CheckItemId()
- };
- postData = _.map(array, function (m) {
- return null;
- });
- BWA.api.post('FmsWorkResultCheckItemMaterial/Approval', postData, parameters2).done(function () {
- refreshMaterialGrid();
- utils.toast.show($G('successDatabaseInsertionMsg'));
- });
- }
- }
- var fmsMaterialsdata;
- function refreshMaterialGrid() {
- //viewModel.workResultCheckItemMaterialPopup.materials2([]);
- materials2([]);
- //viewModel.workResultCheckItemMaterialPopup.materials2DataSource.filter([
- materials2DataSource.filter([
- eq('SiteId', viewModel.dataModel.SiteId()),
- and,
- eq('WorkRequestId', viewModel.dataModel.WorkRequestId())
- ]);
- fmsmaterialsDataSource.filter([
- eq('SiteId', viewModel.dataModel.SiteId())
- ]);
- fmsmaterialsDataSource.load().done(function (fmsMaterials) {
- fmsMaterialsdata = fmsMaterials;
- materials2DataSource.load().done(function (dbMaterials) {
- _.each(dbMaterials, function (sm) {
- var standard = "";
- for (var i = 0; i < fmsMaterialsdata.length ; i++) {
- if (sm.MaterialId() == fmsMaterialsdata[i].MaterialId()) {
- standard = fmsMaterialsdata[i].Standard();
- if (standard == null)
- standard = ""
- break;
- }
- }
- materials2.push({
- SiteId: sm.SiteId,
- MaterialId: sm.MaterialId,
- Name: sm.Name,
- Standard: standard,
- MaterialCode: sm.MaterialCode,
- MaterialCount: sm.MaterialCount
- //FinalPrice: sm.FinalPrice,
- });
- });
- //viewModel.workResultCheckItemMaterialPopup.materialGridView2().refresh();
- if (materialGridView2() != null)
- materialGridView2().refresh();
- });
- });
- }
-
- return {
- refreshMaterialGrid: refreshMaterialGrid,
- visible: overlayVisible,
- materials2: materials2,
- materialGridView2: materialGridView2,
- //materials2DataSource : materials2DataSource,
- //modifiableMaterialDataGridOptions2: modifiableMaterialDataGridOptions2
- };
- }
- }
- });
|