diff --git a/src/lang/es.js b/src/lang/es.js index 6724b63..3ebd51d 100644 --- a/src/lang/es.js +++ b/src/lang/es.js @@ -460,6 +460,7 @@ export default { sales: 'Ventas', returns: 'Devoluciones', clients: 'Clientes', + clientTiers: 'Niveles de Clientes', billingRequests: 'Solicitudes de Facturación' }, cashRegister: { @@ -566,5 +567,9 @@ export default { clients: { title: 'Clientes', description: 'Gestión de clientes', + }, + clientTiers: { + title: 'Niveles de Clientes', + description: 'Gestión de niveles de clientes', } } \ No newline at end of file diff --git a/src/layouts/AppLayout.vue b/src/layouts/AppLayout.vue index 7073b8b..aee2388 100644 --- a/src/layouts/AppLayout.vue +++ b/src/layouts/AppLayout.vue @@ -67,6 +67,11 @@ onMounted(() => { name="pos.clients" to="pos.clients.index" /> + { deletingClient.value = null; }; +const openStatsModal = (client) => { + statsClient.value = client; + showStatsModal.value = true; +}; + +const closeStatsModal = () => { + showStatsModal.value = false; + statsClient.value = null; +}; + const onClientSaved = () => { searcher.search(); }; @@ -130,6 +143,7 @@ onMounted(() => { > \ No newline at end of file diff --git a/src/pages/POS/Clients/Stats.vue b/src/pages/POS/Clients/Stats.vue new file mode 100644 index 0000000..96deed5 --- /dev/null +++ b/src/pages/POS/Clients/Stats.vue @@ -0,0 +1,226 @@ + + + diff --git a/src/pages/POS/Tiers/Create.vue b/src/pages/POS/Tiers/Create.vue new file mode 100644 index 0000000..b545408 --- /dev/null +++ b/src/pages/POS/Tiers/Create.vue @@ -0,0 +1,156 @@ + + + diff --git a/src/pages/POS/Tiers/Delete.vue b/src/pages/POS/Tiers/Delete.vue new file mode 100644 index 0000000..205f542 --- /dev/null +++ b/src/pages/POS/Tiers/Delete.vue @@ -0,0 +1,97 @@ + + + diff --git a/src/pages/POS/Tiers/Edit.vue b/src/pages/POS/Tiers/Edit.vue new file mode 100644 index 0000000..6b7f38e --- /dev/null +++ b/src/pages/POS/Tiers/Edit.vue @@ -0,0 +1,174 @@ + + + diff --git a/src/pages/POS/Tiers/Index.vue b/src/pages/POS/Tiers/Index.vue new file mode 100644 index 0000000..c182b56 --- /dev/null +++ b/src/pages/POS/Tiers/Index.vue @@ -0,0 +1,207 @@ + + + \ No newline at end of file diff --git a/src/pages/POS/Tiers/Module.js b/src/pages/POS/Tiers/Module.js new file mode 100644 index 0000000..1623b54 --- /dev/null +++ b/src/pages/POS/Tiers/Module.js @@ -0,0 +1,16 @@ +import { hasPermission } from '@Plugins/RolePermission.js'; + +// Ruta API +const apiTo = (name, params = {}) => route(`client-tiers.${name}`, params) + +// Ruta visual +const viewTo = ({ name = '', params = {}, query = {} }) => ({ name: `pos.client-tiers.${name}`, params, query }) + +// Determina si un usuario puede hacer algo en base a los permisos +const can = (permission) => hasPermission(`client-tiers.${permission}`) + +export { + can, + viewTo, + apiTo +} diff --git a/src/router/Index.js b/src/router/Index.js index cb2a3b9..23ae9d8 100644 --- a/src/router/Index.js +++ b/src/router/Index.js @@ -89,6 +89,11 @@ const router = createRouter({ name: 'pos.clients.index', component: () => import('@Pages/POS/Clients/Index.vue') }, + { + path: 'client-tiers', + name: 'pos.client-tiers.index', + component: () => import('@Pages/POS/Tiers/Index.vue') + }, { path: 'billing-requests', name: 'pos.billingRequests.index',