Add pay button

This commit is contained in:
William Buezas 2024-06-25 12:54:21 -03:00
parent 8e538fb463
commit a57df459a6
3 changed files with 35 additions and 6 deletions

View File

@ -1,6 +1,6 @@
<script setup> <script setup>
import { ref, watch, computed } from 'vue'; import { ref, watch, computed } from 'vue';
import { useRoute } from 'vue-router'; import { useRoute, useRouter } from 'vue-router';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import CrudModel from 'components/CrudModel.vue'; import CrudModel from 'components/CrudModel.vue';
@ -8,17 +8,22 @@ import VnSelectDialog from 'src/components/common/VnSelectDialog.vue';
import FetchData from 'components/FetchData.vue'; import FetchData from 'components/FetchData.vue';
import TicketCreateServiceType from './TicketCreateServiceType.vue'; import TicketCreateServiceType from './TicketCreateServiceType.vue';
import VnInput from 'src/components/common/VnInput.vue'; import VnInput from 'src/components/common/VnInput.vue';
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
import { useArrayData } from 'src/composables/useArrayData'; import { useArrayData } from 'src/composables/useArrayData';
import { useStateStore } from 'stores/useStateStore';
import useNotify from 'src/composables/useNotify.js';
import axios from 'axios';
const stateStore = useStateStore();
const route = useRoute(); const route = useRoute();
const router = useRouter();
const { t } = useI18n(); const { t } = useI18n();
const ticketServiceTypeFetchRef = ref(null); const ticketServiceTypeFetchRef = ref(null);
const ticketServiceCrudRef = ref(null); const ticketServiceCrudRef = ref(null);
const ticketServiceOptions = ref([]); const ticketServiceOptions = ref([]);
const arrayData = useArrayData('TicketNotes'); const arrayData = useArrayData('TicketNotes');
const { store } = arrayData; const { store } = arrayData;
const { notify } = useNotify();
const selectedServices = ref(new Set()); const selectedServices = ref(new Set());
@ -40,6 +45,29 @@ watch(
await ticketServiceCrudRef.value.reload(); await ticketServiceCrudRef.value.reload();
} }
); );
const createRefund = async () => {
try {
if (!selectedServices.value.size) return;
const params = {
servicesIds: Array.from(selectedServices.value),
withWarehouse: false,
negative: true,
};
const { data } = await axios.post('Sales/clone', params);
const [refundTicket] = data;
notify(
t('service.createRefundSuccess', {
ticketId: refundTicket.id,
}),
'positive'
);
router.push({ name: 'TicketSale', params: { id: refundTicket.id } });
} catch (error) {
console.error(error);
}
};
</script> </script>
<template> <template>
@ -49,14 +77,14 @@ watch(
auto-load auto-load
url="TicketServiceTypes" url="TicketServiceTypes"
/> />
<!-- <Teleport v-if="" to="#st-actions"> <Teleport to="#st-actions" v-if="stateStore?.isSubToolbarShown()">
<QBtn <QBtn
color="primary" color="primary"
:label="t('service.pay')" :label="t('service.pay')"
:disabled="!selectedServices.size" :disabled="!selectedServices.size"
@click.stop="viewAddObservation(selected)" @click.stop="createRefund()"
/> />
</Teleport> --> </Teleport>
<CrudModel <CrudModel
ref="ticketServiceCrudRef" ref="ticketServiceCrudRef"
data-key="TicketService" data-key="TicketService"
@ -133,5 +161,4 @@ watch(
</QCard> </QCard>
</template> </template>
</CrudModel> </CrudModel>
<pre>checkeds: {{ selectedServices }}</pre>
</template> </template>

View File

@ -7,3 +7,4 @@ service:
newService: New service type newService: New service type
addService: Add service addService: Add service
quantityInfo: To create services with negative amounts mark the service on the source ticket and press the pay button. quantityInfo: To create services with negative amounts mark the service on the source ticket and press the pay button.
createRefundSuccess: 'The following refund ticket have been created: { ticketId }'

View File

@ -7,5 +7,6 @@ service:
newService: Nuevo tipo de servicio newService: Nuevo tipo de servicio
addService: Añadir servicio addService: Añadir servicio
quantityInfo: Para crear sevicios con cantidades negativas marcar servicio en el ticket origen y apretar el boton abonar. quantityInfo: Para crear sevicios con cantidades negativas marcar servicio en el ticket origen y apretar el boton abonar.
createRefundSuccess: 'Se ha creado siguiente ticket de abono: { ticketId }'
Search ticket: Buscar ticket Search ticket: Buscar ticket
You can search by ticket id or alias: Puedes buscar por id o alias del ticket You can search by ticket id or alias: Puedes buscar por id o alias del ticket