feature/InvoicesOutCorrections #232

Merged
jsegarra merged 25 commits from :feature/InvoicesOutCorrections into dev 2024-03-20 13:34:35 +00:00
3 changed files with 147 additions and 2 deletions
Showing only changes of commit 587baa645e - Show all commits

View File

@ -0,0 +1,93 @@
<script setup>
import { ref } from 'vue';
import { useI18n } from 'vue-i18n';
const emit = defineEmits(['onDataSaved']);
const $props = defineProps({
title: {
type: String,
default: '',
},
subtitle: {
type: String,
default: '',
},
defaultSaveButton: {
type: Boolean,
default: true,
},
defaultCancelButton: {
type: Boolean,
default: true,
},
});
const { t } = useI18n();
const closeButton = ref(null);
const isLoading = ref(false);
const onDataSaved = (dataSaved) => {
emit('onDataSaved', dataSaved);
closeForm();
};
const closeForm = () => {
if (closeButton.value) closeButton.value.click();
};
</script>
<template>
<QForm
@submit="onDataSaved($event)"
class="all-pointer-events full-width"
style="max-width: 800px"
>
<QCard class="q-pa-lg">
<span ref="closeButton" class="close-icon" v-close-popup>
<QIcon name="close" size="sm" />
</span>
<h1 class="title">{{ title }}</h1>
<p>{{ subtitle }}</p>
<slot name="form-inputs" />
<div class="q-mt-lg row justify-end">
<QBtn
v-if="defaultSaveButton"
:label="t('globals.save')"
type="submit"
color="primary"
:disabled="isLoading"
:loading="isLoading"
/>
<QBtn
v-if="defaultCancelButton"
:label="t('globals.cancel')"
type="reset"
color="primary"
flat
class="q-ml-sm"
:disabled="isLoading"
:loading="isLoading"
v-close-popup
/>
<slot name="customButtons" />
</div>
</QCard>
</QForm>
</template>
<style lang="scss" scoped>
.title {
font-size: 17px;
font-weight: bold;
line-height: 20px;
}
.close-icon {
position: absolute;
top: 20px;
right: 20px;
cursor: pointer;
}
</style>

View File

@ -3,6 +3,7 @@ import { ref } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import TransferInvoiceForm from 'src/components/TransferInvoiceForm.vue'; import TransferInvoiceForm from 'src/components/TransferInvoiceForm.vue';
import SendInvoiceForm from './SendInvoiceForm.vue';
import { useSession } from 'src/composables/useSession'; import { useSession } from 'src/composables/useSession';
import { usePrintService } from 'composables/usePrintService'; import { usePrintService } from 'composables/usePrintService';
@ -20,6 +21,8 @@ const { t } = useI18n();
const { openReport } = usePrintService(); const { openReport } = usePrintService();
const transferInvoiceDialogRef = ref(); const transferInvoiceDialogRef = ref();
const sendInvoiceFormRef = ref();
const invoiceFormType = ref(null);
const showInvoicePdf = () => { const showInvoicePdf = () => {
const url = `api/InvoiceOuts/${$props.invoiceOutData.id}/download?access_token=${token}`; const url = `api/InvoiceOuts/${$props.invoiceOutData.id}/download?access_token=${token}`;
@ -31,6 +34,11 @@ const showInvoiceCsv = () => {
recipientId: $props.invoiceOutData.client.id, recipientId: $props.invoiceOutData.client.id,
}); });
}; };
const showSendInvoiceForm = (type) => {
invoiceFormType.value = type;
sendInvoiceFormRef.value.show();
};
</script> </script>
<template> <template>
@ -60,10 +68,10 @@ const showInvoiceCsv = () => {
</QItemSection> </QItemSection>
<QMenu anchor="top end" self="top start"> <QMenu anchor="top end" self="top start">
<QList> <QList>
<QItem v-ripple clickable> <QItem v-ripple clickable @click="showSendInvoiceForm()">
<QItemSection>{{ t('Send PDF') }}</QItemSection> <QItemSection>{{ t('Send PDF') }}</QItemSection>
</QItem> </QItem>
<QItem v-ripple clickable> <QItem v-ripple clickable @click="showSendInvoiceForm()">
<QItemSection>{{ t('Send CSV') }}</QItemSection> <QItemSection>{{ t('Send CSV') }}</QItemSection>
</QItem> </QItem>
</QList> </QList>
@ -98,6 +106,9 @@ const showInvoiceCsv = () => {
<QDialog ref="transferInvoiceDialogRef"> <QDialog ref="transferInvoiceDialogRef">
<TransferInvoiceForm :invoice-out-data="invoiceOutData" /> <TransferInvoiceForm :invoice-out-data="invoiceOutData" />
</QDialog> </QDialog>
<QDialog ref="sendInvoiceFormRef">
<SendInvoiceForm />
</QDialog>
</template> </template>
<i18n> <i18n>

View File

@ -0,0 +1,41 @@
<script setup>
jsegarra marked this conversation as resolved Outdated

Si busco este archivo me salen 2 resultados, pero ninguno de ellos es de implementación o o donde se está usando. Es correcto?

Si busco este archivo me salen 2 resultados, pero ninguno de ellos es de implementación o o donde se está usando. Es correcto?

Como bien mencionas parece que no se usa, al parecer lo habia creado para la funcionalidad de Send invoice pero encontre un componente reutilizable que se adecuaba a esto y luego se me olvido de borrar el otro.

Commit: fff5e1849e

Como bien mencionas parece que no se usa, al parecer lo habia creado para la funcionalidad de `Send invoice` pero encontre un componente reutilizable que se adecuaba a esto y luego se me olvido de borrar el otro. Commit: https://gitea.verdnatura.es/verdnatura/salix-front/commit/fff5e1849eaea53bc72a174b3eb6f4c618f7a7c3

genial, cosas del dia a dia! jejej

genial, cosas del dia a dia! jejej
import { ref } from 'vue';
import { useI18n } from 'vue-i18n';
import VnRow from 'components/ui/VnRow.vue';
import VnInput from 'src/components/common/VnInput.vue';
import FormPopup from 'src/components/FormPopup.vue';
const emit = defineEmits(['onDataSaved']);
const { t } = useI18n();
const email = ref(null);
const onDataSaved = (dataSaved) => {
emit('onDataSaved', dataSaved);
};
</script>
<template>
<FormPopup
:title="t('New thermograph')"
:subtitle="t('Are you sure you want to send it?')"
@on-data-saved="onDataSaved($event)"
>
<template #form-inputs>
<VnRow class="row q-gutter-md q-mb-md">
<div class="col">
<VnInput :label="t('Email')" v-model="email" type="email" />
</div>
</VnRow>
</template>
</FormPopup>
</template>
<i18n>
es:
Email: Email
Confirm: Confirmar
Are you sure you want to send it?: ¿Seguro que quieres enviarlo?
</i18n>