View | Details | Raw Unified | Return to bug 38010
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/Main.vue (-52 / +20 lines)
Lines 32-47 import LeftMenu from "../LeftMenu.vue"; Link Here
32
import Dialog from "../Dialog.vue";
32
import Dialog from "../Dialog.vue";
33
import "vue-select/dist/vue-select.css";
33
import "vue-select/dist/vue-select.css";
34
import { storeToRefs } from "pinia";
34
import { storeToRefs } from "pinia";
35
import { APIClient } from "../../fetch/api-client";
36
35
37
export default {
36
export default {
38
    setup() {
37
    setup() {
39
        const vendorStore = inject("vendorStore");
38
        const vendorStore = inject("vendorStore");
40
        const { config } = storeToRefs(vendorStore);
39
        const { config, authorisedValues } = storeToRefs(vendorStore);
40
        const { loadAuthorisedValues } = vendorStore;
41
41
42
        const mainStore = inject("mainStore");
42
        const mainStore = inject("mainStore");
43
        const { loading, loaded, setError } = mainStore;
43
        const { loading, loaded, setError } = mainStore;
44
        const AVStore = inject("AVStore");
45
44
46
        const permissionsStore = inject("permissionsStore");
45
        const permissionsStore = inject("permissionsStore");
47
        const { userPermissions } = storeToRefs(permissionsStore);
46
        const { userPermissions } = storeToRefs(permissionsStore);
Lines 52-112 export default { Link Here
52
            loading,
51
            loading,
53
            loaded,
52
            loaded,
54
            userPermissions,
53
            userPermissions,
55
            AVStore,
56
            config,
54
            config,
55
            loadAuthorisedValues,
56
            authorisedValues,
57
        };
57
        };
58
    },
58
    },
59
    beforeCreate() {
59
    beforeCreate() {
60
        this.loading();
60
        this.loading();
61
61
62
        const fetchConfig = () => {
62
        this.loadAuthorisedValues(this.authorisedValues, this.vendorStore).then(
63
            let promises = [];
63
            () => {
64
64
                this.userPermissions = userPermissions;
65
            const av_client = APIClient.authorised_values;
65
                this.config.settings.edifact = edifact;
66
            const authorised_values = {
66
                this.config.settings.marcOrderAutomation = marcOrderAutomation;
67
                av_vendor_types: "VENDOR_TYPE",
67
                this.vendorStore.currencies = currencies;
68
                av_vendor_interface_types: "VENDOR_INTERFACE_TYPE",
68
                this.vendorStore.gstValues = gstValues.map(gv => {
69
            };
69
                    return {
70
70
                        label: `${Number(gv.option * 100).format_price()}%`,
71
            let av_cat_array = Object.keys(authorised_values).map(
71
                        value: gv.option,
72
                function (av_cat) {
72
                    };
73
                    return '"' + authorised_values[av_cat] + '"';
73
                });
74
                }
74
                this.loaded();
75
            );
75
                this.initialized = true;
76
76
            }
77
            promises.push(
77
        );
78
                av_client.values
79
                    .getCategoriesWithValues(av_cat_array)
80
                    .then(av_categories => {
81
                        Object.entries(authorised_values).forEach(
82
                            ([av_var, av_cat]) => {
83
                                const av_match = av_categories.find(
84
                                    element => element.category_name == av_cat
85
                                );
86
                                this.AVStore[av_var] =
87
                                    av_match.authorised_values;
88
                            }
89
                        );
90
                    })
91
            );
92
93
            return Promise.all(promises);
94
        };
95
96
        fetchConfig().then(() => {
97
            this.loaded();
98
            this.userPermissions = userPermissions;
99
            this.config.settings.edifact = edifact;
100
            this.config.settings.marcOrderAutomation = marcOrderAutomation;
101
            this.vendorStore.currencies = currencies;
102
            this.vendorStore.gstValues = gstValues.map(gv => {
103
                return {
104
                    label: `${Number(gv.option * 100).format_price()}%`,
105
                    value: gv.option,
106
                };
107
            });
108
            this.initialized = true;
109
        });
110
    },
78
    },
111
    data() {
79
    data() {
112
        return {
80
        return {
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorDetails.vue (-5 / +5 lines)
Lines 132-143 Link Here
132
            <li>
132
            <li>
133
                <label for="vendor_type">{{ $__("Vendor type") }}:</label>
133
                <label for="vendor_type">{{ $__("Vendor type") }}:</label>
134
                <v-select
134
                <v-select
135
                    v-if="av_vendor_types.length"
135
                    v-if="authorisedValues['av_vendor_types'].length"
136
                    id="vendor_type"
136
                    id="vendor_type"
137
                    v-model="vendor.type"
137
                    v-model="vendor.type"
138
                    label="description"
138
                    label="description"
139
                    :reduce="av => av.value"
139
                    :reduce="av => av.value"
140
                    :options="av_vendor_types"
140
                    :options="authorisedValues['av_vendor_types']"
141
                />
141
                />
142
                <input v-else id="vendor_type" v-model="vendor.type" />
142
                <input v-else id="vendor_type" v-model="vendor.type" />
143
            </li>
143
            </li>
Lines 178-188 export default { Link Here
178
        display: Boolean,
178
        display: Boolean,
179
    },
179
    },
180
    setup() {
180
    setup() {
181
        const AVStore = inject("AVStore");
181
        const vendorStore = inject("vendorStore");
182
        const { get_lib_from_av, av_vendor_types } = AVStore;
182
        const { get_lib_from_av, authorisedValues } = vendorStore;
183
        return {
183
        return {
184
            get_lib_from_av,
184
            get_lib_from_av,
185
            av_vendor_types,
185
            authorisedValues,
186
        };
186
        };
187
    },
187
    },
188
    data() {
188
    data() {
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorInterfaces.vue (-4 / +4 lines)
Lines 76-82 Link Here
76
                        v-model="vendorInterface.type"
76
                        v-model="vendorInterface.type"
77
                        label="description"
77
                        label="description"
78
                        :reduce="av => av.value"
78
                        :reduce="av => av.value"
79
                        :options="av_vendor_interface_types"
79
                        :options="authorisedValues['av_vendor_interface_types']"
80
                    />
80
                    />
81
                </li>
81
                </li>
82
                <li>
82
                <li>
Lines 150-160 export default { Link Here
150
        display: Boolean,
150
        display: Boolean,
151
    },
151
    },
152
    setup() {
152
    setup() {
153
        const AVStore = inject("AVStore");
153
        const vendorStore = inject("vendorStore");
154
        const { get_lib_from_av, av_vendor_interface_types } = AVStore;
154
        const { get_lib_from_av, authorisedValues } = vendorStore;
155
        return {
155
        return {
156
            get_lib_from_av,
156
            get_lib_from_av,
157
            av_vendor_interface_types,
157
            authorisedValues,
158
        };
158
        };
159
    },
159
    },
160
    methods: {
160
    methods: {
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorList.vue (-2 / +1 lines)
Lines 38-48 export default { Link Here
38
    setup() {
38
    setup() {
39
        const vendorStore = inject("vendorStore");
39
        const vendorStore = inject("vendorStore");
40
        const { vendors } = storeToRefs(vendorStore);
40
        const { vendors } = storeToRefs(vendorStore);
41
        const { get_lib_from_av, map_av_dt_filter } = vendorStore;
41
42
42
        const { setConfirmationDialog, setMessage } = inject("mainStore");
43
        const { setConfirmationDialog, setMessage } = inject("mainStore");
43
44
44
        const { get_lib_from_av, map_av_dt_filter } = inject("AVStore");
45
46
        const table = ref();
45
        const table = ref();
47
46
48
        const permissionsStore = inject("permissionsStore");
47
        const permissionsStore = inject("permissionsStore");
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorOrderingInformation.vue (-3 lines)
Lines 233-241 export default { Link Here
233
        const vendorStore = inject("vendorStore");
233
        const vendorStore = inject("vendorStore");
234
        const { currencies, gstValues } = storeToRefs(vendorStore);
234
        const { currencies, gstValues } = storeToRefs(vendorStore);
235
235
236
        const AVStore = inject("AVStore");
237
        const { get_lib_from_av } = AVStore;
238
239
        return {
236
        return {
240
            currencies,
237
            currencies,
241
            gstValues,
238
            gstValues,
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/modules/acquisitions.ts (-3 / +1 lines)
Lines 24-30 import { useMainStore } from "../stores/main"; Link Here
24
import { useVendorStore } from "../stores/vendors";
24
import { useVendorStore } from "../stores/vendors";
25
import { useNavigationStore } from "../stores/navigation";
25
import { useNavigationStore } from "../stores/navigation";
26
import { usePermissionsStore } from "../stores/permissions";
26
import { usePermissionsStore } from "../stores/permissions";
27
import { useAVStore } from "../stores/authorised-values";
28
import i18n from "../i18n";
27
import i18n from "../i18n";
29
28
30
const pinia = createPinia();
29
const pinia = createPinia();
Lines 32-38 const pinia = createPinia(); Link Here
32
const mainStore = useMainStore(pinia);
31
const mainStore = useMainStore(pinia);
33
const navigationStore = useNavigationStore(pinia);
32
const navigationStore = useNavigationStore(pinia);
34
const permissionsStore = usePermissionsStore(pinia);
33
const permissionsStore = usePermissionsStore(pinia);
35
const AVStore = useAVStore(pinia);
34
36
const routes = navigationStore.setRoutes(routesDef);
35
const routes = navigationStore.setRoutes(routesDef);
37
36
38
const router = createRouter({
37
const router = createRouter({
Lines 55-61 app.provide("vendorStore", useVendorStore(pinia)); Link Here
55
app.provide("mainStore", mainStore);
54
app.provide("mainStore", mainStore);
56
app.provide("navigationStore", navigationStore);
55
app.provide("navigationStore", navigationStore);
57
app.provide("permissionsStore", permissionsStore);
56
app.provide("permissionsStore", permissionsStore);
58
app.provide("AVStore", AVStore);
59
57
60
app.mount("#__vendors");
58
app.mount("#__vendors");
61
59
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/stores/vendors.js (-1 / +18 lines)
Lines 1-4 Link Here
1
import { defineStore } from "pinia";
1
import { defineStore } from "pinia";
2
import {
3
    loadAuthorisedValues,
4
    get_lib_from_av_handler,
5
    map_av_dt_filter_handler,
6
} from "../composables/authorisedValues";
2
7
3
export const useVendorStore = defineStore("vendors", {
8
export const useVendorStore = defineStore("vendors", {
4
    state: () => ({
9
    state: () => ({
Lines 10-14 export const useVendorStore = defineStore("vendors", { Link Here
10
                edifact: false,
15
                edifact: false,
11
            },
16
            },
12
        },
17
        },
18
        authorisedValues: {
19
            av_vendor_types: "VENDOR_TYPE",
20
            av_vendor_interface_types: "VENDOR_INTERFACE_TYPE",
21
        },
13
    }),
22
    }),
23
    actions: {
24
        loadAuthorisedValues,
25
        get_lib_from_av(arr_name, av) {
26
            return get_lib_from_av_handler(arr_name, av, this);
27
        },
28
        map_av_dt_filter(arr_name) {
29
            return map_av_dt_filter_handler(arr_name, this);
30
        },
31
    },
14
});
32
});
15
- 

Return to bug 38010