Skip to content
This repository has been archived by the owner on Nov 25, 2024. It is now read-only.

Commit

Permalink
fix: Report with AD_Table_ID and Record_ID context. (#2977)
Browse files Browse the repository at this point in the history
  • Loading branch information
EdwinBetanc0urt authored Nov 13, 2024
1 parent ea314aa commit b73f407
Show file tree
Hide file tree
Showing 6 changed files with 115 additions and 14 deletions.
12 changes: 6 additions & 6 deletions src/components/ADempiere/FieldDefinition/FieldButton.vue
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ import fieldMixinDisplayColumn from '@/components/ADempiere/FieldDefinition/mixi
import {
TRUE_STRING, FALSE_STRING
} from '@/utils/ADempiere/formatValue/booleanFormat'
import { COLUMNNAME_RECORD_ID } from '@/utils/ADempiere/constants/systemColumns'
import { COLUMNNAME_Record_ID } from '@/utils/ADempiere/constants/systemColumns'
import { IDENTIFIER_COLUMN_SUFFIX } from '@/utils/ADempiere/dictionaryUtils'

// Utils and Helpers Methods
Expand Down Expand Up @@ -105,7 +105,7 @@ export default {

computed: {
isDisabledButton() {
return (this.metadata.readonly || this.isDisableAction) && !['Posted', COLUMNNAME_RECORD_ID].includes(this.metadata.columnName)
return (this.metadata.readonly || this.isDisableAction) && !['Posted', COLUMNNAME_Record_ID].includes(this.metadata.columnName)
},
isDisableAction() {
return this.actionAssociated.isEnabled && !this.actionAssociated.isEnabled()
Expand Down Expand Up @@ -169,7 +169,7 @@ export default {
return isShowAcct
}
}
} else if (this.metadata.columnName === COLUMNNAME_RECORD_ID) {
} else if (this.metadata.columnName === COLUMNNAME_Record_ID) {
return {
// is: 'svg-icon',
// 'icon-class': 'zoom-in',
Expand Down Expand Up @@ -327,7 +327,7 @@ export default {
},

currentTableId() {
if (this.metadata.displayed && this.metadata.columnName === COLUMNNAME_RECORD_ID) {
if (this.metadata.displayed && this.metadata.columnName === COLUMNNAME_Record_ID) {
const { containerUuid, inTable } = this.metadata
// table records values
if (inTable) {
Expand All @@ -353,7 +353,7 @@ export default {

watch: {
contextAttributes(newValue, oldValue) {
if (this.metadata.columnName === COLUMNNAME_RECORD_ID && !isSameValues(newValue, oldValue)) {
if (this.metadata.columnName === COLUMNNAME_Record_ID && !isSameValues(newValue, oldValue)) {
if (!isEmptyValue(newValue)) {
this.setDefaultValue()
}
Expand All @@ -369,7 +369,7 @@ export default {
},

beforeMount() {
if (this.metadata.displayed && this.metadata.columnName === COLUMNNAME_RECORD_ID) {
if (this.metadata.displayed && this.metadata.columnName === COLUMNNAME_Record_ID) {
if (!this.emptyValue && typeof this.value === 'number') {
if (isEmptyValue(this.displayedValue)) {
// request lookup
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,20 +88,28 @@ import language from '@/lang'
import store from '@/store'

// Constants
import {
COLUMNNAME_AD_Table_ID, COLUMNNAME_Record_ID
} from '@/utils/ADempiere/constants/systemColumns'
import {
FINANCIAL_REPORT_TABLE_NAME
} from '@/utils/ADempiere/dictionary/report/financialReport.ts'

// Utils and Helper Methods
import { isEmptyValue } from '@/utils/ADempiere/valueUtils'
import { showNotification } from '@/utils/ADempiere/notification.js'
import { getContextAttributes } from '@/utils/ADempiere/contextUtils/contextAttributes'

// Components and Mixins
import DialogLegacy from '@/components/ADempiere/Report/Data/Dialog.vue'

export default defineComponent({
name: 'PrintProcess',

components: {
DialogLegacy
},

props: {
parentUuid: {
type: [String, Number],
Expand Down Expand Up @@ -132,9 +140,27 @@ export default defineComponent({
/**
* Computed
*/
const relatedColumsNames = computed(() => {
let relatedColumns = []
const parentColumns = props.tabAttributes.fieldsList
.filter(fieldItem => {
return fieldItem.is_parent || fieldItem.is_key || fieldItem.is_mandatory
})
.map(fieldItem => {
return fieldItem.columnName
})

if (!isEmptyValue(props.tabAttributes.parent_column_name)) {
relatedColumns = relatedColumns.push(props.tabAttributes.parent_column_name)
}
relatedColumns = relatedColumns.concat(parentColumns).sort()
return relatedColumns
})

const currentTableName = computed(() => {
if (isEmptyValue(props.tabAttributes.table) || isEmptyValue(props.tabAttributes.table.table_name)) return props.tabAttributes.table_name
if (isEmptyValue(props.tabAttributes.table) || isEmptyValue(props.tabAttributes.table.table_name)) {
return props.tabAttributes.table_name
}
return props.tabAttributes.table.table_name
})
const recordId = computed(() => {
Expand Down Expand Up @@ -171,6 +197,26 @@ export default defineComponent({
})
function printProcess() {
store.commit('setIsLoadingDialog', false)

// set context values
const parentValues = getContextAttributes({
parentUuid: props.parentUuid,
containerUuid: containerUuid,
contextColumnNames: relatedColumsNames.value
})
parentValues.push({
columnName: COLUMNNAME_AD_Table_ID,
value: props.tabAttributes.table.internal_id
})
parentValues.push({
columnName: COLUMNNAME_Record_ID,
value: recordId.value
})
store.dispatch('updateValuesOfContainer', {
containerUuid: process.uuid,
attributes: parentValues
})

if (!isEmptyValue(selectionsList) && !isEmptyValue(selectionsList.value) && selectionsList.value.length > 1) {
store.commit('setViewDialog', true)
} else {
Expand All @@ -186,8 +232,9 @@ export default defineComponent({
isLoading.value = true
store.dispatch('runReport', {
containerUuid: process.uuid,
recordId: recordId.value,
reportId: process.internal_id,
//
recordId: recordId.value,
tableName: currentTableName.value
})
.finally(() => {
Expand Down
3 changes: 2 additions & 1 deletion src/store/modules/ADempiere/dictionary/process/getters.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

// Constants
import { FIELDS_DATE, FIELDS_DECIMALS } from '@/utils/ADempiere/references.js'
import { COLUMNNAME_Record_ID } from '@/utils/ADempiere/constants/systemColumns'

// Utils and Helper Methods
import { isEmptyValue } from '@/utils/ADempiere/valueUtils'
Expand Down Expand Up @@ -159,7 +160,7 @@ export default {
type: 'date',
value: value
}
} else if (isDecimalField) {
} else if (isDecimalField && ![COLUMNNAME_Record_ID].includes(columnName)) {
processParameters[columnName] = {
type: 'decimal',
value: value
Expand Down
3 changes: 2 additions & 1 deletion src/store/modules/ADempiere/dictionary/report/getters.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

// Constants
import { FIELDS_DATE, FIELDS_DECIMALS } from '@/utils/ADempiere/references.js'
import { COLUMNNAME_Record_ID } from '@/utils/ADempiere/constants/systemColumns'

// Utils and Helper Methods
import { isEmptyValue } from '@/utils/ADempiere/valueUtils.js'
Expand Down Expand Up @@ -170,7 +171,7 @@ export default {
type: 'date',
value: value
}
} else if (isDecimalField) {
} else if (isDecimalField && ![COLUMNNAME_Record_ID].includes(columnName)) {
reportParameters[columnName] = {
type: 'decimal',
value: value
Expand Down
58 changes: 55 additions & 3 deletions src/store/modules/ADempiere/dictionary/window/actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ import store from '@/store'
import { requestWindowMetadata } from '@/api/ADempiere/dictionary/window.ts'

// Constants
import { CLIENT, DOCUMENT_ACTION, DOCUMENT_STATUS } from '@/utils/ADempiere/constants/systemColumns'
import {
CLIENT, DOCUMENT_ACTION, DOCUMENT_STATUS,
COLUMNNAME_AD_Table_ID, COLUMNNAME_Record_ID
} from '@/utils/ADempiere/constants/systemColumns'
import { DISPLAY_COLUMN_PREFIX, IS_ADVANCED_QUERY } from '@/utils/ADempiere/dictionaryUtils'
import { ROW_ATTRIBUTES } from '@/utils/ADempiere/tableUtils'
import { ACTION_None } from '@/utils/ADempiere/dictionary/workflow'
Expand Down Expand Up @@ -176,10 +179,15 @@ export default {
return
}

const recordUuid = rootGetters.getUuidOfContainer(tabAssociatedUuid)

const storedTab = rootGetters.getStoredTab(windowUuid, tabAssociatedUuid)
const { table_name } = storedTab

const recordUuid = rootGetters.getUuidOfContainer(tabAssociatedUuid)
const recordId = rootGetters.getIdOfContainer({
containerUuid: tabAssociatedUuid,
tableName: table_name
})

const { code } = rootGetters.getStoredReport(process.uuid)
if (code === FINANCIAL_REPORT_CODE) {
dispatch('startReport', {
Expand All @@ -194,6 +202,7 @@ export default {
parentUuid: tabUuid,
containerUuid: process.uuid,
recordUuid,
recordId,
tableName: table_name
})
}
Expand All @@ -205,12 +214,26 @@ export default {
containerManager: containerManagerReport,
doneMethod: doneMethodByReport,
beforeOpen: ({ parentUuid: tabAssociatedUuid, containerUuid }) => {
const storedTab = rootGetters.getStoredTab(windowUuid, tabAssociatedUuid)
const recordId = rootGetters.getIdOfContainer({
containerUuid: tabAssociatedUuid,
tableName: storedTab.table_name
})

// set context values
const parentValues = getContextAttributes({
parentUuid: windowUuid,
containerUuid: tabAssociatedUuid,
contextColumnNames: relatedColumns
})
parentValues.push({
columnName: COLUMNNAME_AD_Table_ID,
value: storedTab.table.internal_id
})
parentValues.push({
columnName: COLUMNNAME_Record_ID,
value: recordId
})

dispatch('updateValuesOfContainer', {
containerUuid: process.uuid,
Expand Down Expand Up @@ -344,12 +367,27 @@ export default {
})
},
beforeOpen: ({ parentUuid: tabAssociatedUuid, containerUuid }) => {
const storedTab = rootGetters.getStoredTab(windowUuid, tabAssociatedUuid)
const recordId = rootGetters.getIdOfContainer({
containerUuid: tabAssociatedUuid,
tableName: storedTab.table_name
})

// set context values
const parentValues = getContextAttributes({
parentUuid: windowUuid,
containerUuid: tabAssociatedUuid,
contextColumnNames: relatedColumns
})
parentValues.push({
columnName: COLUMNNAME_AD_Table_ID,
value: storedTab.table.internal_id
})
parentValues.push({
columnName: COLUMNNAME_Record_ID,
value: recordId
})

let documentAction = getContext({
parentUuid: windowUuid,
containerUuid: tabAssociatedUuid,
Expand Down Expand Up @@ -448,12 +486,26 @@ export default {
})
},
beforeOpen: ({ parentUuid: tabAssociatedUuid, containerUuid }) => {
const storedTab = rootGetters.getStoredTab(windowUuid, tabAssociatedUuid)
const recordId = rootGetters.getIdOfContainer({
containerUuid: tabAssociatedUuid,
tableName: storedTab.table_name
})

// set context values
const parentValues = getContextAttributes({
parentUuid: windowUuid,
containerUuid: tabAssociatedUuid,
contextColumnNames: relatedColumns
})
parentValues.push({
columnName: COLUMNNAME_AD_Table_ID,
value: storedTab.table.internal_id
})
parentValues.push({
columnName: COLUMNNAME_Record_ID,
value: recordId
})

dispatch('updateValuesOfContainer', {
containerUuid: process.uuid,
Expand Down
2 changes: 1 addition & 1 deletion src/utils/ADempiere/constants/systemColumns.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ export const COLUMNNAME_AD_Table_ID = 'AD_Table_ID'
* @deprecated
*/
export const RECORD_ID = 'Record_ID'
export const COLUMNNAME_RECORD_ID = 'Record_ID'
export const COLUMNNAME_Record_ID = 'Record_ID'

export const COUNTRY = 'C_Country_ID'

Expand Down

0 comments on commit b73f407

Please sign in to comment.