123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277 |
- BemsWebApplication.EquipHistory = function (params, viewInfo) {
- "use strict";
- var codeTypeDataSource = BemsWebApplication.db.createDataSource('FmsEquipmentCodeType', true, false, true),
- codeStateTypeDataSource = BemsWebApplication.db.createDataSource('FmsEquipmentCodeStateType', false, false, true),
- warehouseDataSource = BemsWebApplication.db.createDataSource('FmsMaterialWarehouse', true, false, true);
- var eq = BWA.DataUtil.constructEqualFilter, and = BWA.DataUtil.andFilter;
- var equipmentExDataSource = BWA.DataUtil.createDataSource({
- dataSourceOptions: {
- store: BemsWebApplication.odata.FmsEquipmentEx,
- map: function (item) {
- return new BemsWebApplication.FmsEquipmentExViewModel(item);
- }
- },
- filter: ([
- eq('SiteId', BWA.UserInfo.SiteId())
- ]),
- });
- var codeTypes = ko.observableArray(),
- codeStateTypes = ko.observableArray(),
- warehouses = ko.observableArray(),
- equipmentExs = ko.observableArray();
- var IsAdditionalEquipment = ko.observable(false);
- var codeTypesForSearch = ko.observableArray(),
- codeStateTypesForSearch = ko.observableArray(),
- warehousesForSearch = ko.observableArray();
- var deferredForSearch = new $.Deferred();
- var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsEquipmentHistory', {
- dataSourceOptions: {
- select: [
- 'SiteId',
- 'EquipmentHistoryId',
- 'EquipmentId',
- 'TotalStockCount',
- 'CurrentStockCount',
- 'RentCount',
- 'CurrentRentCount',
- 'ReturnCount',
- 'LossCount',
- 'StoredCount',
- 'EquipmentRentId',
- 'EquipmentStateTypeId',
- 'AddDate',
- 'UpdateDate',
- 'IsReturned',
- 'FmsEquipment/FmsEquipmentCodeType/Name',
- 'FmsEquipment/FmsEquipmentCodeType/EquipmentTypeId',
- 'FmsEquipment/Name',
- 'FmsEquipment/CmUser/Name',
- 'FmsEquipmentCodeStateType/Name',
- 'FmsEquipment/Standard',
- 'FmsEquipment/Unit',
- 'FmsEquipmentRentInfo/RentUser',
- 'FmsEquipmentRentInfo/RentDate',
- 'FmsEquipmentRentInfo/ReturnDueDate',
- 'FmsEquipmentRentInfo/ReturnFixDate',
- 'FmsEquipment/FmsMaterialWarehouse/Name'
- ],
- expand: [
- 'FmsEquipmentRentInfo/CmUser1',
- 'FmsEquipment/FmsEquipmentCodeType',
- 'FmsEquipmentCodeStateType',
- 'FmsEquipment/CmUser',
- 'FmsEquipmentRentInfo',
- 'FmsEquipmentRentInfo/CmUser1',
- 'FmsEquipment/FmsMaterialWarehouse',
- ],
- extendOptions: {
- forceOriginalField: true
- }
- },
- columns: [
- { dataField: 'EquipmentHistoryId', caption: $G('number'), width: '10%', alignment: 'center', sortOrder: 'desc' },
- { dataField: 'FmsEquipmentCodeStateType/Name', caption: '구분', width: '8%', alignment: 'center' },
- { dataField: 'FmsEquipment/FmsEquipmentCodeType/Name', caption: '분류', width: '8%', alignment: 'center' },
- { dataField: 'FmsEquipment/Name', caption: '공기구명', width: '22%', alignment: 'center' },
- { dataField: 'FmsEquipment/Standard', caption: '규격', width: '22%', alignment: 'center' },
- { dataField: 'TotalStockCount', caption: '전체수량', width: '10%', alignment: 'center', format: 'fixedPoint' },
- { dataField: 'StoredCount', caption: '입고수량', width: '10%', alignment: 'center', format: 'fixedPoint' },
- { dataField: 'CurrentRentCount', caption: '대여수량', width: '10%', alignment: 'center', format: 'fixedPoint' },
- { dataField: 'ReturnCount', caption: '반납수량', width: '10%', alignment: 'center', format: 'fixedPoint' },
- { dataField: 'LossCount', caption: '손실수량', width: '10%', alignment: 'center', format: 'fixedPoint' },
- { dataField: 'CurrentStockCount', caption: '보유수량', width: '10%', alignment: 'center', format: 'fixedPoint' },
- {
- dataField: 'AddDate', caption: '등록일', width: '15%', alignment: 'center', dataType: "shortDate", format: "yyyy-MM-dd",
- customizeText: function (cellInfo) {
- return cellInfo.valueText;
- }
- },
- {
- dataField: 'FmsEquipmentRentInfo/RentUser', caption: '대여자', width: '10%', alignment: 'center', dataType: "shortDate", format: "yyyy-MM-dd",
- customizeText: function (cellInfo) {
- return cellInfo.valueText;
- }
- },
- {
- dataField: 'FmsEquipmentRentInfo/RentDate', caption: '대여일', width: '14%', alignment: 'center', dataType: "shortDate", format: "yyyy-MM-dd",
- customizeText: function (cellInfo) {
- return cellInfo.valueText;
- }
- },
- {
- dataField: 'FmsEquipmentRentInfo/ReturnDueDate', caption: '반납예정일', width: '14%', alignment: 'center', dataType: "shortDate", format: "yyyy-MM-dd",
- customizeText: function (cellInfo) {
- return cellInfo.valueText;
- }
- },
- {
- dataField: 'FmsEquipmentRentInfo/ReturnFixDate', caption: '반납일', width: '14%', alignment: 'center', dataType: "shortDate", format: "yyyy-MM-dd",
- customizeText: function (cellInfo) {
- return cellInfo.valueText;
- }
- }
- ],
- paging: {
- pageSize: 18,
- enabled: true
- },
- pager: {},
- "export": {
- enabled: true,
- fileName: '공기구 이력 목록',
- },
- onExporting: function (e) {
- e.component.columnOption("EquipmentHistoryId", "visible", false);
- },
- onExported: function (e) {
- e.component.columnOption("EquipmentHistoryId", "visible", true);
- },
- cellPrepared: function (cellElement, cellInfo) {
- // 2 보다 큰 경우 대여수 0
- if (cellInfo.rowType == 'data') {
- if (cellInfo.data.EquipmentStateTypeId() > 2) {
- if (cellInfo.columnIndex == 7) {
- $(cellElement).text('0');
- }
- }
- }
- },
- sort: { field: "EquipmentHistoryId", desc: true },
- searchViewItems: [
- { id: 'FmsEquipment/Name' },
- { id: 'FmsEquipment/Standard' },
- { id: 'FmsEquipmentRentInfo/RentUser' },
- { id: 'EquipmentStateTypeId', ignoreValue: 0, defaultValue: 0, dataSource: codeStateTypesForSearch }, // 구분
- { id: 'FmsEquipment/FmsEquipmentCodeType/EquipmentTypeId', ignoreValue: 0, defaultValue: 0, dataSource: codeTypesForSearch }, // 분류
- { id: 'AddDate', type: 'dateRange', isOnlyDate: true },
- ],
- popupWidth: 400,
- handleViewShowing: function (dataModel) {
- $.when(
- codeStateTypeDataSource.load(),
- codeTypeDataSource.load(),
- warehouseDataSource.load()
- ).done(function (codeStateTypeResult, codeTypeResult, warehouseResult) {
- codeStateTypes(codeStateTypeResult[0]);
- codeTypes(codeTypeResult[0]);
- warehouses(warehouseResult[0]);
- codeStateTypesForSearch($SearchView.createArrayOfSelectBox('EquipmentStateTypeId', codeStateTypes()));
- codeTypesForSearch($SearchView.createArrayOfSelectBox('EquipmentTypeId', codeTypes()));
- warehousesForSearch($SearchView.createArrayOfSelectBox('WarehouseId', warehouses()));
- deferredForSearch.resolve();
- });
- },
- handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
- },
- handlePopupShowing: function (isNewInPopup, dataViewModel) {
- // 저장 버튼
- viewModel.toolbarItems[4].options.clickAction = this.handlePopupButtonSave;
- dataViewModel.RegisterUserId = $KoSet(dataViewModel.RegisterUserId, BWA.UserInfo.UserId());
- dataViewModel.EquipmentTypeId = ko.observable();
- dataViewModel.WarehouseId = ko.observable();
- dataViewModel.Unit = ko.observable();
- dataViewModel.Standard = ko.observable();
- dataViewModel.SupplierName = ko.observable();
- dataViewModel.SupplierPhoneNo = ko.observable();
- },
- handlePopupShown: function (isEditMode, isNew, dataViewModel) {
- $.when(
- equipmentExDataSource.load()
- ).done(function (equipmentExResult) {
- equipmentExs(equipmentExResult);
- });
- if (isNew) { // 신규등록인 경우
- dataViewModel.AddDate($G.date(new Date()));
- dataViewModel.UpdateDate($G.date(new Date()));
- dataViewModel.RegisterUserId(BWA.UserInfo.UserId());
- dataViewModel.StoredCount(1);
- }
- },
- handlePopupButtonSave: function () {
- var dataViewModel = viewModel.dataModel;
- if (IsAdditionalEquipment()) {
- if (dataViewModel.EquipmentId() == null) {
- utils.toast.show('추가입고할 공기구를 선택하세요.', 'error');
- return;
- }
- }
- else {
- if (dataViewModel.EquipmentTypeId() == null) {
- utils.toast.show('입고할 공기구 분류를 선택하세요.', 'error');
- return;
- }
- else if (dataViewModel.Name() == null) {
- utils.toast.show('입고할 공기구 이름을 입력하세요.', 'error');
- return;
- }
- }
- if (dataViewModel.WarehouseId() == null) {
- utils.toast.show('입고될 창고위치를 선택하세요.', 'error');
- return;
- }
- var parameters = {
- SiteId: dataViewModel.SiteId(),
- IsAdditionalEquipment: IsAdditionalEquipment()
- };
- var postData = dataViewModel.toJS();
- BWA.api.post('FmsEquipment', postData, parameters).done(
- function () {
- utils.toast.show($G('successDatabaseInsertionMsg'));
- viewModel.popupVisible(false);
- viewModel.gridView().refresh();
- });
- }
- });
- function processValueChange(e) {
- var foundModel = _.find(equipmentExs(), function (x) {
- return x.EquipmentId() === e.value;
- });
- if (foundModel !== undefined) {
- var dataViewModel = viewModel.dataModel;
- dataViewModel.EquipmentId(foundModel.EquipmentId());
- dataViewModel.EquipmentTypeId(foundModel.EquipmentTypeId());
- dataViewModel.WarehouseId(foundModel.WarehouseId());
- dataViewModel.Unit(foundModel.Unit());
- dataViewModel.Standard(foundModel.Standard());
- dataViewModel.UpdateDate(new Date());
- dataViewModel.SupplierName(foundModel.SupplierName());
- dataViewModel.SupplierPhoneNo(foundModel.SupplierPhoneNo());
- dataViewModel.TotalStockCount(foundModel.TotalStockCount());
- dataViewModel.CurrentStockCount(foundModel.CurrentStockCount());
- }
- }
- viewModel.processValueChange = processValueChange;
- viewModel.IsAdditionalEquipment = IsAdditionalEquipment;
- viewModel.equipmentExs = equipmentExs;
- viewModel.codeTypes = codeTypes;
- viewModel.codeStateTypes = codeStateTypes;
- viewModel.warehouses = warehouses;
- return viewModel;
- };
|