diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index c8d31f85..cbb602a9 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -9,10 +9,6 @@ ## ROUGH SCHEDULE - CSR text to display to customer - - CSR V8Migrate - GetLastReport is not implemented anywhere but is useful adn key new testing cases Schedule form diff --git a/ayanova/src/components/report-selector-control.vue b/ayanova/src/components/report-selector-control.vue index 532dc64e..73892e66 100644 --- a/ayanova/src/components/report-selector-control.vue +++ b/ayanova/src/components/report-selector-control.vue @@ -21,7 +21,7 @@ {{ item.name }} @@ -72,7 +72,8 @@ export default { }, reportList: [], selectedReport: null, - rendering: false + rendering: false, + preSelectReportId: null }), methods: { editReport(reportid) { @@ -86,7 +87,7 @@ export default { } }); }, - async renderReport(reportId) { + async renderReport(reportId, reportName) { let vm = this; if (vm.$route.params.recordid == 0) { return; @@ -115,9 +116,13 @@ export default { } } this.isVisible = false; - this.resolve(null); + if (reportName != null) { + this.resolve({ name: reportName, id: reportId }); + } else { + this.resolve(null); + } }, - async open(reportDataOptions) { + async open(reportDataOptions, preSelectReportId) { let vm = this; if (reportDataOptions == null) { throw new Error("report-selector:Open missing reportDataOptions"); @@ -127,18 +132,22 @@ export default { } this.reportDataOptions = reportDataOptions; - //get report list from server - let res = await window.$gz.api.get( - `report/list/${reportDataOptions.AType}` - ); - if (res.error) { - // throw new Error(res.error); - throw new Error(window.$gz.errorHandler.errorToString(res, vm)); + this.preSelectReportId = preSelectReportId; + if (!preSelectReportId) { + //get report list from server + let res = await window.$gz.api.get( + `report/list/${reportDataOptions.AType}` + ); + if (res.error) { + // throw new Error(res.error); + throw new Error(window.$gz.errorHandler.errorToString(res, vm)); + } else { + this.reportList = res.data; + } + this.isVisible = true; } else { - this.reportList = res.data; + this.renderReport(this.preSelectReportId); } - - this.isVisible = true; return new Promise((resolve, reject) => { this.resolve = resolve; this.reject = reject; diff --git a/ayanova/src/views/svc-workorder.vue b/ayanova/src/views/svc-workorder.vue index 456937d1..39d67fd4 100644 --- a/ayanova/src/views/svc-workorder.vue +++ b/ayanova/src/views/svc-workorder.vue @@ -1875,35 +1875,52 @@ async function clickHandler(menuItem) { m.vm.duplicateTo = "pm"; m.vm.duplicateDlg = true; break; - case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.WorkOrder } - }); - } else { - //general report selector chosen + // case "report": + // if (m.id != null) { + // //last report selected is in m.id + // m.vm.$router.push({ + // name: "ay-report", + // params: { recordid: m.id, ayatype: window.$gz.type.WorkOrder } + // }); + // } else { + // //general report selector chosen + // console.log("At report"); + // let res = await m.vm.$refs.reportSelector.open({ + // AType: window.$gz.type.WorkOrder, + // selectedRowIds: [m.vm.obj.id] + // }); + // console.log("RESPONSE:", res); + // //if null for no selection + // //just bail out + // if (res == null) { + // return; + // } + // console.log("svc-workorder:report, calling setLastReport:", { + // formkey: FORM_KEY, + // res: res + // }); + // //persist last report selected + // window.$gz.form.setLastReport(FORM_KEY, res); - let res = await m.vm.$refs.reportSelector.open({ + // //Now open the report viewer... + // m.vm.$router.push({ + // name: "ay-report", + // params: { recordid: res.id, ayatype: window.$gz.type.WorkOrder } + // }); + // } + // break; + case "report": + let res = await m.vm.$refs.reportSelector.open( + { AType: window.$gz.type.WorkOrder, selectedRowIds: [m.vm.obj.id] - }); - - //if null for no selection - //just bail out - if (res == null) { - return; - } - //persist last report selected - window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.WorkOrder } - }); + }, + m.id + ); + if (res == null) { + return; } + window.$gz.form.setLastReport(FORM_KEY, res); break; case "statuslist": m.vm.$router.push({ diff --git a/ayanova/src/views/svc-workorders.vue b/ayanova/src/views/svc-workorders.vue index d3cc8703..ba60eea3 100644 --- a/ayanova/src/views/svc-workorders.vue +++ b/ayanova/src/views/svc-workorders.vue @@ -169,35 +169,49 @@ async function clickHandler(menuItem) { m.vm.reload = !m.vm.reload; } break; - case "report": - if (m.id != null) { - //last report selected is in m.id - m.vm.$router.push({ - name: "ay-report", - params: { recordid: m.id, ayatype: window.$gz.type.WorkOrder } - }); - } else { - //general report selector chosen + // case "report": + // if (m.id != null) { + // //last report selected is in m.id + // m.vm.$router.push({ + // name: "ay-report", + // params: { recordid: m.id, ayatype: window.$gz.type.WorkOrder } + // }); + // } else { + // //general report selector chosen + // let res = await m.vm.$refs.reportSelector.open( + // m.vm.$refs.gzdatatable.getDataListSelection( + // window.$gz.type.WorkOrder + // ) + // ); + + // //if null for no selection + // //just bail out + // if (res == null) { + // return; + // } + // //persist last report selected + // window.$gz.form.setLastReport(FORM_KEY, res); + + // //Now open the report viewer... + // m.vm.$router.push({ + // name: "ay-report", + // params: { recordid: res.id, ayatype: window.$gz.type.WorkOrder } + // }); + // } + // break; + case "report": + { let res = await m.vm.$refs.reportSelector.open( m.vm.$refs.gzdatatable.getDataListSelection( window.$gz.type.WorkOrder - ) + ), + m.id ); - - //if null for no selection - //just bail out if (res == null) { return; } - //persist last report selected window.$gz.form.setLastReport(FORM_KEY, res); - - //Now open the report viewer... - m.vm.$router.push({ - name: "ay-report", - params: { recordid: res.id, ayatype: window.$gz.type.WorkOrder } - }); } break; case "WorkOrderItemList":