123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360 |
- BemsWebApplication.EquipReturnInfo2 = 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 equipments = ko.observableArray(),
- equipmentGridView,
- equipmentDataGridOptions = undefined;
- var equipmentRentDataSource = BWA.DataUtil.createDataSource({
- dataSourceOptions: {
- select: [
- 'SiteId',
- 'EquipmentHistoryId',
- 'EquipmentId',
- 'TotalStockCount',
- 'CurrentStockCount',
- 'RentCount',
- 'CurrentRentCount',
- 'ReturnCount',
- 'LossCount',
- 'StoredCount',
- 'EquipmentRentId',
- 'EquipmentStateTypeId',
- 'AddDate',
- 'UpdateDate',
- 'FmsEquipment/WarehouseId',
- 'FmsEquipment/Unit',
- 'FmsEquipment/Standard',
- 'FmsEquipment/Name',
- 'FmsEquipmentCodeStateType/Name',
- 'FmsEquipment/Standard',
- 'FmsEquipmentRentInfo/Title',
- 'FmsEquipmentRentInfo/RentUser', // 대여자
- 'FmsEquipmentRentInfo/RentDate',
- 'FmsEquipmentRentInfo/ReturnDueDate'
- ],
- expand: ['FmsEquipment',
- 'FmsEquipmentRentInfo',
- 'FmsEquipmentRentInfo/CmUser1',
- 'FmsEquipmentCodeStateType'],
- extendOptions: {
- forceOriginalField: true
- },
- filter: [
- ['SiteId', '=', BWA.UserInfo.SiteId()],
- 'and',
- ['IsReturned', '=', false]
- ],
- paginate: false, // 페이징을 하지 않음
- }
- }, 'FmsEquipmentHistory');
- var codeTypes = ko.observableArray(),
- codeStateTypes = ko.observableArray(),
- warehouses = ko.observableArray(),
- equipmentExs = ko.observableArray();
- 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: [
- 'FmsEquipment/FmsEquipmentCodeType',
- 'FmsEquipmentCodeStateType',
- 'FmsEquipment/CmUser',
- 'FmsEquipmentRentInfo',
- 'FmsEquipmentRentInfo/CmUser1',
- 'FmsEquipment/FmsMaterialWarehouse',
- ],
- extendOptions: {
- forceOriginalField: true
- },
- filter: [
- eq('SiteId', BWA.UserInfo.SiteId()),
- 'and',
- [['EquipmentStateTypeId', '>=', 3],
- 'and',
- ['EquipmentStateTypeId', '<=', 5]]
- ]
- },
- columns: [
- { dataField: 'EquipmentHistoryId', caption: $G('number'), width: '10%', alignment: 'center' },
- { dataField: 'FmsEquipmentCodeStateType/Name', caption: '구분', width: '10%', alignment: 'center' },
- { dataField: 'FmsEquipment/FmsEquipmentCodeType/Name', caption: '분류', width: '10%', alignment: 'center' },
- { dataField: 'FmsEquipment/Name', caption: '공기구명', width: '22%', alignment: 'center' },
- { dataField: 'FmsEquipment/Standard', caption: '규격', width: '22%', alignment: 'center' },
- { dataField: 'FmsEquipment/Unit', caption: '단위', width: '11%', alignment: 'center' },
- { dataField: 'ReturnCount', caption: '반납수량', width: '10%', alignment: 'center', format: 'fixedPoint' },
- { dataField: 'LossCount', caption: '손실수량', width: '10%', alignment: 'center', format: 'fixedPoint' },
- {
- dataField: 'UpdateDate', caption: '등록일', width: '20%', alignment: 'center', sortOrder: 'desc', dataType: "shortDate", format: "yyyy-MM-dd hh:mm:ss",
- customizeText: function (cellInfo) {
- return cellInfo.valueText;
- }
- },
- { dataField: 'FmsEquipmentRentInfo/RentUser', caption: '대여자', width: '15%', alignment: 'center' },
- { dataField: 'FmsEquipment/CmUser/Name', caption: '관리자', width: '10%', alignment: 'center', visible: false }
- ],
- 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);
- },
- 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: 'UpdateDate', type: 'dateRange', isOnlyDate: true },
- ],
- popupWidth: 950,
- 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) {
- // 저장 버튼
- dataViewModel.ReturnCount(0);
- dataViewModel.LossCount(0);
- dataViewModel.Title('');
- dataViewModel.RentUser('');
- dataViewModel.RentDate('');
- dataViewModel.ReturnDueDate('');
- dataViewModel.CurrentRentCount('');
- dataViewModel.EquipmentId(0);
- dataViewModel.EquipmentRentId(0);
- dataViewModel.SiteId(0);
- },
- handlePopupShown: function (isEditMode, isNew, dataViewModel) {
- $.when(
- equipmentRentDataSource.load()
- ).done(function (equipmentRentInfoResult) {
- equipments(equipmentRentInfoResult);
- });
- }
- });
- var equipPopupToolbarItems = [
- { location: 'before', text: '공기구 반납/손실' },
- {
- location: 'after', widget: 'button', options: {
- text: $G('save'), icon: 'save', visible: viewModel.isEditModeInPopup,
- clickAction: handlePopupButtonSave
- }
- },
- {
- location: 'after', widget: 'button', options: {
- text: $G('close'), icon: 'close',
- clickAction: equipPopupButtonClose
- }
- }
- ];
- function handlePopupButtonSave() {
- var dataViewModel = viewModel.dataModel;
- if (dataViewModel.LossCount() == null || dataViewModel.ReturnCount() == null) {
- utils.toast.show('반납/손실 수량을 확인하시기 바랍니다.2', 'warning');
- return;
- }
- if (dataViewModel.LossCount() == 0 && dataViewModel.ReturnCount() == 0) {
- utils.toast.show('반납/손실 수량을 확인하시기 바랍니다.', 'warning');
- return;
- }
- if (dataViewModel.CurrentRentCount() < (dataViewModel.LossCount() + dataViewModel.ReturnCount())) {
- utils.toast.show('현재 대여 수량보다 반납/손실 수량이 더 많습니다. 반납/손실 수량을 확인하시기 바랍니다.', 'warning');
- return;
- }
- var postData = dataViewModel.toJS();
- BWA.api.post('FmsEquipmentHistory/AddHistory', postData).done(
- function () {
- viewModel.gridView().refresh();
- utils.toast.show($G('successDatabaseProcessMsg'));
- viewModel.popupVisible(false);
- });
- }
- function equipPopupButtonClose() {
- viewModel.popupVisible(false);
- }
- function processValueChange(e) {
- }
- equipmentDataGridOptions = utils.datagrid.defaultOptions({
- width: 900,
- visible: true,
- pager: {
- showPageSizeSelector: false,
- allowedPageSizes: []
- },
- dataSource: equipments,
- columns: [
- { dataField: 'FmsEquipment/Name', caption: '공기구명', width: '27%', alignment: 'center' },
- { dataField: 'FmsEquipment/Standard', caption: '규격', width: '27%', alignment: 'center' },
- { dataField: 'FmsEquipment/Unit', caption: '단위', width: '13%', alignment: 'center' },
- { dataField: 'CurrentRentCount', caption: '대여수량', width: '13%', alignment: 'center' },
- { dataField: 'FmsEquipmentRentInfo/RentUser', caption: '대여자', width: '14%', alignment: 'center' },
- {
- dataField: 'FmsEquipmentRentInfo/RentDate', caption: '대여일', width: '18%', alignment: 'center', sortOrder: 'desc',
- customizeText: function (cellInfo) {
- return $G.date(cellInfo.value);
- }
- },
- {
- dataField: 'FmsEquipmentRentInfo/ReturnDueDate', caption: '반납예정일', width: '18%', alignment: 'center',
- customizeText: function (cellInfo) {
- return $G.date(cellInfo.value);
- }
- },
- ],
- paging: {
- pageSize: 8
- },
- contentReadyAction: function (e) {
- equipmentGridView = e.component;
- },
- rowClick: function (clickRow) {
- var data = clickRow.data;
- var dataModel = viewModel.dataModel;
- viewModel.dataModel.Title = $KoSet(viewModel.dataModel.Title, data['FmsEquipmentRentInfo/Title']());
- if (data['FmsEquipmentRentInfo/RentUser'] === undefined) {
- viewModel.dataModel.RentUser('');
- } else {
- viewModel.dataModel.RentUser(data['FmsEquipmentRentInfo/RentUser']());
- }
- if (data['FmsEquipmentRentInfo/RentDate'] === undefined) {
- viewModel.dataModel.RentDate('');
- } else {
- viewModel.dataModel.RentDate($G.date(moment(data['FmsEquipmentRentInfo/RentDate']())));
- }
- if (data['FmsEquipmentRentInfo/ReturnDueDate'] === undefined) {
- viewModel.dataModel.ReturnDueDate('');
- } else {
- viewModel.dataModel.ReturnDueDate($G.date(moment(data['FmsEquipmentRentInfo/ReturnDueDate']())));
- }
- viewModel.dataModel.ReturnCount(0);
- viewModel.dataModel.EqName(data['FmsEquipment/Name']());
- viewModel.dataModel.LossCount(0);
- viewModel.dataModel.CurrentRentCount(data['CurrentRentCount']());
- viewModel.dataModel.EquipmentId(data['EquipmentId']());
- viewModel.dataModel.EquipmentRentId(data['EquipmentRentId']());
- viewModel.dataModel.SiteId(data['SiteId']());
- }
- });
- viewModel.equipPopupToolbarItems = equipPopupToolbarItems;
- viewModel.dataModel.Title = ko.observable();
- viewModel.dataModel.RentUser = ko.observable();
- viewModel.dataModel.RentDate = ko.observable();
- viewModel.dataModel.ReturnDueDate = ko.observable();
- // hcLee 2016 01 14
- viewModel.dataModel.EqName = ko.observable();
- viewModel.equipmentDataGridOptions = equipmentDataGridOptions;
- viewModel.processValueChange = processValueChange;
- viewModel.equipmentExs = equipmentExs;
- viewModel.codeTypes = codeTypes;
- viewModel.codeStateTypes = codeStateTypes;
- viewModel.warehouses = warehouses;
- return viewModel;
- };
|